Kann ich objdump eine Adresse und haben es zerlegen, die Funktion?
Ich finde es wirklich ärgerlich zu haben, um zu zerlegen, große Teile der Bibliothek von code, nur um genug Kontext zu sehen, was zu einem Absturz führen. Gibt es irgendeine Möglichkeit, dass ich nur die hand objdump eine Adresse, und es finden die Grenzen des mit-Funktion für mich?
EDIT: Besser noch, kann ich es zerlegen eine ganze stack-trace für mich?
- Können Sie nicht einfach laden Sie die crash-core in GDB und erkunden Sie dort? (Oder wie wollen Sie am Ende mit dem crash-Adresse ohne Verwendung der Kern-oder gdb?)
- Ich bin mir nicht sicher, ob der crash ist sogar die Erstellung eines crash-core. Dies geht in Richtung kernel-debugging, und die Bibliothek, die zu Abstürzen tut so verdammt früh im boot-Prozess.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Etwas wie das vielleicht?
Druckt es die dis-assembly-listing ab
0x42
bis es findet eineret(q)
werden, vorausgesetzt, die Grenze ist gekennzeichnet durchret(q)
objdump --start-address=
vielleicht ?gdb
disassemble
Beispiel:
ein.c:
Kompilieren und disassemblieren
myfunc
um eine Adresse zu finden:Ausgabe:
OK, also 0x0000000000000655 ist in
myfunc
, lassen Sie uns bestätigen, es funktioniert:Ausgabe: wie Vorherige Demontage.
Siehe auch: Anleitungen zum zerlegen einer einzigen Funktion mit objdump?
Getestet auf Ubuntu 18.04, GDB 8.1.