2013-11-24 13 views
12

Sto cercando di aggiungere un perf probe per un metodo C++ nella mia biblioteca, ma continuo a ricevere il seguente:Impossibile aggiungere sonda perf per i metodi C++

$ perf probe --exec=/path/to/file --add='my::Own::Method' 
Semantic error :There is non-digit char in line number. 

ho elencato le funzioni disponibili come so:

$ perf probe --funcs --exec=/path/to/file 

E provato alcune funzioni C che sono anche incluse. Una sonda può essere aggiunta per questi semplicemente bene. Così ho provato il nome mutilato (ad esempio _ZN2my8Own16Method) e perf probe dice che non esiste.

C'è un modo per aggirare questo problema?

risposta

2

Come soluzione alternativa è possibile ottenere l'indirizzo del metodo con objdump e perf probe lo accetterà.

$ perf probe -x /path/file '0x643f30' 
Added new event: 
    probe_libfile:abs_643f30 (on 0x643f30 in /path/file) 

You can now use it in all perf tools, such as: 

    perf record -e probe_libfile:abs_643f30 -aR sleep 1