summaryrefslogtreecommitdiff
path: root/internal/event.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/event.go')
-rw-r--r--internal/event.go26
1 files changed, 20 insertions, 6 deletions
diff --git a/internal/event.go b/internal/event.go
index e05a048..6a867b7 100644
--- a/internal/event.go
+++ b/internal/event.go
@@ -3,6 +3,7 @@ package internal
import (
"fmt"
. "ioriotng/internal/generated/types"
+ "strconv"
"strings"
)
@@ -12,13 +13,17 @@ type event interface {
GetPid() uint32
GetTid() uint32
GetTime() uint32
- GetRet() (int64, bool)
Recycle()
}
type enterExitEvent struct {
enterEv, exitEv event
- filePath string
+ comm string
+ file file
+}
+
+func (e enterExitEvent) is(enterId, exitId SyscallId) bool {
+ return enterId == e.enterEv.GetSyscallId() && exitId == e.exitEv.GetSyscallId()
}
func (e enterExitEvent) String() string {
@@ -27,15 +32,24 @@ func (e enterExitEvent) String() string {
duration := e.exitEv.GetTime() - e.enterEv.GetTime()
sb.WriteString(fmt.Sprintf("%08d µs", duration))
- sb.WriteString(fmt.Sprintf(" %v.%v", e.enterEv.GetPid(), e.enterEv.GetTid()))
+ sb.WriteString(" ")
+ sb.WriteString(e.comm)
sb.WriteString(" ")
- sb.WriteString(e.enterEv.GetSyscallId().Name())
+ sb.WriteString(strconv.FormatInt(int64(e.enterEv.GetPid()), 10))
+ sb.WriteString(".")
+ sb.WriteString(strconv.FormatInt(int64(e.enterEv.GetTid()), 10))
- if ret, ok := e.exitEv.GetRet(); ok {
- sb.WriteString(fmt.Sprintf(" => %v", ret))
+ sb.WriteString(" ")
+ sb.WriteString(e.enterEv.GetSyscallId().Name())
+ if retEv, ok := e.exitEv.(*RetEvent); ok {
+ sb.WriteString(":")
+ sb.WriteString(strconv.FormatInt(int64(retEv.Ret), 10))
}
+ sb.WriteString(" ")
+ sb.WriteString(e.file.String())
+
return sb.String()
}