On 02/20/2015 11:20 AM, David Ahern wrote:
On 2/20/15 8:29 AM, Paul Clarke wrote:
How does one set a dynamic tracepoint for user-mode symbols with "@"
qualifiers?

# perf probe -F -x /lib/libpthread.so.0 --filter='pthread_create*'
pthread_create@@GLIBC_2.1
pthread_create@GLIBC_2.0

one of many reasons I proposed an option to let users specify an address.

https://lkml.org/lkml/2013/12/1/126
https://lkml.org/lkml/2013/12/2/324

It was not picked up.

I presume then, that I'm not doing something obviously wrong, and this is the current state of affairs?

Given that, I would argue that a better resolution would be to:

1. Support setting probes using the name of the symbol as reported by "--funcs". For example, the following should work:

# perf probe -x /lib/libpthread.so.0 pthread_create@GLIBC_2.0

-- AND / OR --

2. Go ahead and just set probes at all functions which match the base function name. For example, the following:

# perf probe -v -x /lib/libpthread.so.0 pthread_create

Would set probes at both known "pthread_create" entry points:
- pthread_create@@GLIBC_2.1
- pthread_create@GLIBC_2.0

# perf probe -v -x /lib/libpthread.so.0 pthread_create@GLIBC_2.0
probe-definition(0): pthread_create@GLIBC_2.0
symbol:pthread_create file:GLIBC_2.0 line:0 offset:0 return:0 lazy:(null)
0 arguments
Failed to open debuginfo file.
   Error: Failed to add events. (-2)

# perf probe -v -x /lib/libpthread.so.0 pthread_create
probe-definition(0): pthread_create
symbol:pthread_create file:(null) line:0 offset:0 return:0 lazy:(null)
0 arguments
Could not open debuginfo. Try to use symbols.
no symbols found in /usr/lib/libpthread-2.18.so, maybe install a debug
package?
Failed to find symbol pthread_create in /usr/lib/libpthread-2.18.so
   Error: Failed to add events. (-2)

Symbols without such qualifiers work fine:

# perf probe -F -x /lib/libpthread.so.0 --filter='pthread_detach*'
pthread_detach

# perf probe -v -x /lib/libpthread.so.0 pthread_detach
probe-definition(0): pthread_detach
symbol:pthread_detach file:(null) line:0 offset:0 return:0 lazy:(null)
0 arguments
Could not open debuginfo. Try to use symbols.
Opening /sys/kernel/debug/tracing/uprobe_events write=1
Added new event:
Writing event: p:probe_libpthread/pthread_detach
/usr/lib/libpthread-2.18.so:0x8b30
   probe_libpthread:pthread_detach (on pthread_detach in
/usr/lib/libpthread-2.18.so)
--
PC

--
To unsubscribe from this list: send the line "unsubscribe linux-perf-users" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to