2013-11-24 5 views
12

Ich versuche, ein perf probe für eine C++ Methode in meiner Bibliothek hinzufügen, aber ich bekomme immer folgende:Kann nicht perf Sonde für C++ Methoden hinzufügen

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

Ich habe die verfügbaren Funktionen aufgelistet wie also:

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

Und versuchte einige C-Funktionen, die ebenfalls enthalten sind. Eine Sonde kann für diese einfach hinzugefügt werden. Also habe ich den entstellten Namen (z. B. _ZN2my8Own16Method) versucht und perf probe sagt, dass es nicht existiert.

Gibt es einen Weg um dieses Problem?

Antwort

2

Als Workaround können Sie erhalten die Methode Adresse mit objdump und perf probe wird es akzeptieren.

$ 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