Using systemtap in an Environment with Multiple Versions of glibc
Frank Ch. Eigler
fche@redhat.com
Fri Jul 28 19:21:07 GMT 2023
wei gong <gongwei833x@gmail.com> writes:
> [...]
> I am currently experiencing challenges using SystemTap in an environment
> that includes multiple versions of glibc. I am hoping someone here may have
> encountered a similar issue and might be able to provide guidance.
> [...]
> Currently, my environment has glibc-2.17-326.el7_9.x86_64. Because I want
> to use a newer version of GCC, I installed an additional version of GCC and
> matched it with glibc 2.21, which I placed in the /opt/compiler/gcc-8.2/
> directory. My software is compiled using this newly installed version of
> gcc-8.2.
> [...]
> ./stap -d /path/myapp-DDEBUG_UNWIND -e 'probe
> process("/path/myapp").function("funtion_name").call {print_ubacktrace()}'
> WARNING: Missing unwind data for a module, rerun with 'stap -d (unknown;
> retry with -DDEBUG_UNWIND)'
One possibility is that this program, being compiled with your other
gcc/glibc toolchain, is not getting identified to systemtap for purpose
of extracting unwind/symbol data.
> WARNING: Missing unwind data for a module, rerun with 'stap -d /usr/lib64/
> libc-2.17.so'
> WARNING: too many pending (warning) messages
Yeah, that's a hint. The "-d FILE" and "--ldd" options should let you
give systemtap enough hints to find the alternate toolchain shared
libraries. Try:
# stap --ldd -d /opt/compiler/gcc-8.2/usr/lib/libc.so.6 -e 'probe
("myapp").......'
If more missing library names come up as runtime warnings, rerun, and
add them as -d PATHs too.
- FChE
More information about the Systemtap
mailing list