Als Problemumgehung können Sie die Methodenadresse mit objdump
erhalten 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
Beachten Sie, dass perf probe
erwartet einen Offset von der Datei und objdump
und readelf
Geben Sie die Adresse zurück, nachdem Sie die Ladeadresse angepasst haben. Für -pie
ausführbar, wo die Ladeadresse 0 ist, sind die Adressen gleich.
Für nicht -pie
ausführbaren Dateien können Sie die Ladeadresse erhalten, indem Sie sich die Ausgabe von readelf -l /path/file
ansehen und Suche nach dem Offset 0x000000
und schauen Sie sich an, was VirtAddr
ist es zeigt, dann subtrahieren Sie diese Zahl von der Symboladresse, die Sie von objdump --syms
erhalten oder readelf --syms
. Normalerweise ist es 0x400000