-
Bug
-
Resolution: Duplicate
-
Undefined
-
None
-
rhel-9.3.0
-
None
-
None
-
None
-
rhel-sst-pt-perf-debug
-
ssg_platform_tools
-
None
-
False
-
-
None
-
Red Hat Enterprise Linux
-
None
-
None
-
None
-
None
What were you trying to do that didn't work?
When troubleshooting userspace programs, I very often use systemtap to reconstruct the call stack of a given function or syscall to easily spot the source code, e.g.:
# debuginfo-install -y glibc coreutils [...] # stap -d kernel -d /usr/bin/sleep --ldd -c "/usr/bin/sleep 1" -e 'probe syscall.clock_nanosleep { if (pid() != target()) next; print_ubacktrace() }' 0x7f335171393a : clock_nanosleep@@GLIBC_2.17+0x2a/0x90 [/usr/lib64/libc.so.6] 0x7f3351718527 : nanosleep+0x17/0x40 [/usr/lib64/libc.so.6] 0x559e8322ca00 : main+0x400/0x590 [/usr/bin/sleep] 0x7f335163feb0 : __libc_start_call_main+0x80/0xb0 [/usr/lib64/libc.so.6] 0x7f335163ff60 : __libc_start_main@GLIBC_2.2.5+0x80/0x150 [/usr/lib64/libc.so.6] 0x559e8322cbb5 : _start+0x25/0x30 [/usr/bin/sleep]
Above only symbols with offset are printed, which is of great help but still requires from me to disassemble the function (e.g. main() above) to spot the exact source code location.
I just found there was even better theoretically (print_ubacktrace_fileline()) which would print file and line numbers. Unfortunately this doesn't help, I get exact same output as print_ubacktrace():
# stap -d kernel -d /usr/bin/sleep --ldd -c "/usr/bin/sleep 1" -e 'probe syscall.clock_nanosleep { if (pid() != target()) next; print_ubacktrace_fileline() }' 0x7f642a91393a : clock_nanosleep@@GLIBC_2.17+0x2a/0x90 [/usr/lib64/libc.so.6] 0x7f642a918527 : nanosleep+0x17/0x40 [/usr/lib64/libc.so.6] 0x559f5819da00 : main+0x400/0x590 [/usr/bin/sleep] 0x7f642a83feb0 : __libc_start_call_main+0x80/0xb0 [/usr/lib64/libc.so.6] 0x7f642a83ff60 : __libc_start_main@GLIBC_2.2.5+0x80/0x150 [/usr/lib64/libc.so.6] 0x559f5819dbb5 : _start+0x25/0x30 [/usr/bin/sleep]
Please provide the package NVR for which bug is seen:
systemtap-4.9-3.el9.x86_64
How reproducible:
Always, see above.
Expected results
Filename and line numbers.
Actual results
Just symbol name and offset.
- relates to
-
RHEL-12488 Routine Rebase of systemtap
- Closed