Replies: 3 comments 5 replies
-
Symbolication is based off the symbol table of the target application. It doesn't look like you're doing anything wrong to me, but you could double check that symbols exist in your
If the symbols are fine then another thing to check is whether your process is still running when bpftrace is printing out the stack traces. bpftrace uses the PID to find the correct process to symbolicate against, so if the process no longer exists we won't find the symbol table. |
Beta Was this translation helpful? Give feedback.
-
Is bpftrace running in the container too? That'll be the problem if so, as the bpftrace userland will see the namespaced PID while the BPF kernel program will get the PID as seen from the init namespace. I'm actually working on a patch this week which will fix PID collection and symbolication for this case - will update you here when I submit it |
Beta Was this translation helpful? Give feedback.
-
I have some findings. When I put |
Beta Was this translation helpful? Give feedback.
-
I tried:
bpftrace -e "profile:hz:99 {@stacks[comm,pid,ustack] = count();}"
and got:
a.out is a simple c++ demo program compiled with
bpftrace version: v0.13.0
os: centos8 linux 4.18
Expect:
ustack print the function name instead of address.
Question:
Did I missed any compilation parameters or packeges?
Thansk!
Beta Was this translation helpful? Give feedback.
All reactions