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