summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-03-25 00:35:17 +0200
committerPaul Buetow <paul@buetow.org>2025-03-25 00:35:17 +0200
commit88c0f60d92df9c80247c0c714dcfbb53c02f382e (patch)
tree609aa9f107aa7aba6ffb91502c1b135cca57d5ec
parentac08d63568b0b5c66e91f9459280a856bf6dd2f9 (diff)
more on this
-rw-r--r--internal/c/Makefile1
-rw-r--r--internal/eventloop.go17
2 files changed, 10 insertions, 8 deletions
diff --git a/internal/c/Makefile b/internal/c/Makefile
index 1e1393b..18fa4a3 100644
--- a/internal/c/Makefile
+++ b/internal/c/Makefile
@@ -27,7 +27,6 @@ generate: generate_tracepoints
generate_tracepoints:
sudo sh -c 'cat /sys/kernel/tracing/events/syscalls/sys_{enter,exit}_*/format' \
| raku generate_tracepoints_c.raku > ./generated_tracepoints.c
- grep '^/ is a' ./generated_tracepoints.c
.PHONY: generate_tracepoints_stdout
generate_tracepoints_stdout:
diff --git a/internal/eventloop.go b/internal/eventloop.go
index b35e519..34e4d7f 100644
--- a/internal/eventloop.go
+++ b/internal/eventloop.go
@@ -201,6 +201,11 @@ func (e *eventLoop) syscallExit(exitEv event.Event, ch chan<- *event.Pair) {
fd := int32(ev.ExitEv.(*RetEvent).Ret)
file := file.NewFd(fd, openEv.Filename[:], v.Flags)
+ if file.Flags == -1 {
+ // Issue here is that some open_event's aren't really open_event's
+ // need to double check all tracepoints
+ fmt.Println("DEBUG with -1 flags", openEv, file)
+ }
if fd >= 0 {
e.files[fd] = file
}
@@ -287,7 +292,6 @@ func (e *eventLoop) syscallExit(exitEv event.Event, ch chan<- *event.Pair) {
default:
panic(fmt.Sprintf("unknown type: %v", v))
}
- // TODO: implement flock syscall
// TODO: implement dup syscall
// TODO: implement dup2 syscall
// TODO: implement dup3 syscall
@@ -302,11 +306,10 @@ func (e *eventLoop) comm(tid uint32) string {
if comm, ok := e.comms[tid]; ok {
return comm
}
- linkName, err := os.Readlink(fmt.Sprintf("/proc/%d/exe", tid))
- if err != nil {
- return "U:comm"
+ if linkName, err := os.Readlink(fmt.Sprintf("/proc/%d/exe", tid)); err == nil {
+ linkName = filepath.Base(linkName)
+ e.comms[tid] = linkName
+ return linkName
}
- linkName = filepath.Base(linkName)
- e.comms[tid] = linkName
- return linkName
+ return ""
}