This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Question regarding userspace tracing memcpy in glibc
- From: Holger Freyther <holger at freyther dot de>
- To: systemtap at sources dot redhat dot com
- Date: Fri, 26 Nov 2010 16:57:14 +0000 (UTC)
- Subject: 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