Come soluzione alternativa puoi 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
Nota che perf probe
si aspetta un offset dal file e objdump
e readelf
restituire l'indirizzo dopo aver regolato l'indirizzo di carico. Per -pie
eseguibile, dove l'indirizzo di caricamento è 0, gli indirizzi saranno gli stessi.
Per non -pie
eseguibili puoi ottenere l'indirizzo di caricamento guardando l'output di readelf -l /path/file
e cercando l'offset 0x000000
e guardando cosa VirtAddr
punta a, quindi sottrai quel numero dall'indirizzo del simbolo che ottieni da objdump --syms
o readelf --syms
. Di solito sarà 0x400000