diff options
| author | Paul Buetow <paul@buetow.org> | 2026-02-23 10:34:37 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-02-23 10:34:37 +0200 |
| commit | a1eb580aa5b80e913dc722ccf97e42c6987152e8 (patch) | |
| tree | 845b3da7d8d6a0d11e28dea1b82bbf39e0e401b4 /internal/eventloop.go | |
| parent | 9e7b820cfacb50299720b9d391de907d6f3fbdec (diff) | |
Add getcwd tracing support and stabilize comm propagation test
Diffstat (limited to 'internal/eventloop.go')
| -rw-r--r-- | internal/eventloop.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/internal/eventloop.go b/internal/eventloop.go index c9151d6..f4f7a7c 100644 --- a/internal/eventloop.go +++ b/internal/eventloop.go @@ -393,6 +393,17 @@ func (e *eventLoop) tracepointExited(exitEv event.Event, ch chan<- *event.Pair) ep.File = fdFile } } + if ep.Is(SYS_ENTER_GETCWD) { + retEvent, ok := ep.ExitEv.(*types.RetEvent) + if !ok { + panic("expected *types.RetEvent") + } + if retEvent.Ret > 0 { + if cwd, err := os.Readlink(fmt.Sprintf("/proc/%d/cwd", ep.EnterEv.GetTid())); err == nil { + ep.File = file.NewPathname([]byte(cwd)) + } + } + } ep.Comm = e.comm(ep.EnterEv.GetTid()) if !e.filter.eventPair(ep) { ep.Recycle() |
