This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: CentOS cannot trace /lib64/ld-2.5.so library
- From: fche at redhat dot com (Frank Ch. Eigler)
- To: Mandar Gurav <mandarwce at gmail dot com>
- Cc: systemtap at sourceware dot org
- Date: Fri, 12 Nov 2010 14:18:03 -0500
- Subject: Re: CentOS cannot trace /lib64/ld-2.5.so library
- References: <AANLkTin0wfYj6R193M-FNhg6Ph+wKx5+RYEWhHAGTNiK@mail.gmail.com> <AANLkTinSCEu=2gOut-R4wo11qaxcbbCkRDixZaa8hd7D@mail.gmail.com>
Mandar Gurav <mandarwce@gmail.com> writes:
> [...]
> I am new to Systemtap. I have installed and tested the systemtap
> successfully. I got some of my simple scripts running.
Great.
> I can trace/probe all user defined functions in my C program. But now
> I wanted to trace/probe the any external library calls for my C
> program.
We don't have a compact syntax for that, but in principle it'd be
possible to place a probe at external references from the .dynamic
section. This is somewhat related to our http://sourceware.org/PR6880
but not quite, so I'll file a new one.
> I googled for some information. And got reference of "Dynamic loader"
> for linux - "/lib64/ld-2.5.so" this library is responsible for loading
> of external symbols/functions.
Right.
> probe process("/lib64/ld-linux-x86-64.so.2").function("dlopen")
> [...]
Probing dlopen will get you a smaller set of events: when a shared
library is explicitly loaded by an app. You might want to try
instead, to probe the first call to any shared-library symbol
in the target process.
probe ("/lib/ld-linux.so.2").function("_dl_lookup_symbol_x") {
log(user_string($undef_name))
}
> WARNING: cannot find module /lib64/ld-2.5.so debuginfo: No DWARF
> information found
That means you need the right glibc-debuginfo RPM.
> But i have already installed "glibc-2.5-49.el5_5.7.x86_64 ".
Try "debuginfo-install glibc".
- FChE