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