diff options
Diffstat (limited to 'internal/event.go')
| -rw-r--r-- | internal/event.go | 26 |
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() } |
