This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Question regarding userspace tracing memcpy in glibc


Hi all,

I have an application that is spending some time copying structs with
memcpy. I wanted to use systemtap to figure out who is calling memcpy,
then get the backtrace and find the structs that are copied the most to
clean this up in one way or another.

First I tried

$ stap -e 'probe process("/lib/libc.so.6").function("memcpy") {printf();...}'
semantic error: no match while resolving probe point \
         process("/lib/libc.so.6").function("memcpy")

then I tried to use the sse3 routine that is used

$ stap -e 'probe process("/lib/libc.so.6").function("__memcpy_ssse3")..
giving me the same kind of error..

$ stap... '*memcpy*'
which is working but never triggers any message..

the next idea would be I find the address of the memcpy with GDB and
then try to use this with .statement(address_of_memcpy) but that
does not work either.

Is there something I can do to trace into memcpy? Is this because the
glibc implementation of memcpy does not have the proper debug
symbols that systemtap needs?

any help would be more than welcome

  holger




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]