Im Moment verwende ich GDB, um eine Binärdatei zu disassemblieren und verschiedene Register und andere Dinge auszuprobieren. Gibt es einen einfachen Befehl, um alles auf dem Stapel zu untersuchen? Kann das auf alles in einer Funktion beschränkt sein?Wie kann ich den Stack-Frame mit GDB untersuchen?
Antwort
Für den aktuellen Stack-Frame:
- info Rahmen enthält allgemeine Informationen über den Rahmen (wo die Dinge im Speicher starten, etc.)
- info args Listen Argumente für die Funktion
- info lokal listet lokale Variablen auf, die im Rahmen gespeichert sind
bt
(oderbacktrace
) erhalten Sie einen Aufruf-Stack.frame <args>
gibt Ihnen Informationen über einen bestimmten Frame aus dem Stapel.info locals
können Sie Informationen über alle lokalen Variablen auf dem Stapel geben.
Sie können den Inhalt des Stapels sehen mit x/10x $sp
druckt dieses die Top 10 der Elemente des Stapels.
Welche Version von GDB ist das? Ich kann gdb nicht bekommen, Register als Befehlsargumente auf GDB zu benutzen 7.7-0ubuntu3.1 – nightpool
@nightpool arbeitet für mich auf 7.7.1-0ubuntu5 ~ 14.04.2 –
Dieses ist Antwort sagt Ihnen, wie man tatsächlich die Bytes auf dem Stapel betrachtet Rahmen, bei dem ich Schwierigkeiten hatte, herauszufinden, wie es geht. Vielen Dank! –
- 1. Untersuchen Schub shared_ptr mit GDB
- 2. Wie kann ich dieses Stück dieses Arrays in gdb untersuchen?
- 3. Untersuchen von Mmap-Adressen mit GDB
- 4. Wie kann ich in gdb eine Variable untersuchen, die den gleichen Namen wie seinen Typ hat
- 5. Wie kann ich den gesamten Quellbaum mit einem Annotationsprozessor untersuchen?
- 6. Wie kann ich gdb den Befehlsverlauf speichern?
- 7. Wie leistungsfähig ist StackFrame?
- 8. Wie kann ich einen Wert von boost :: any sehen, wenn ich den Typ mit gdb kenne
- 9. Wie kann ich den Befehl x in gdb haken?
- 10. GDB: Wie kann ich den Namen aller lokalen Variablen bekommen?
- 11. Wie bekomme ich das ausführende Objekt für einen Stackframe?
- 12. Wie lese ich den Wert aller Register mit gdb?
- 13. Wie kann ich GDB zum Zerlegen zwingen?
- 14. wie programmiere ich den STM32 flash mit openOCD und gdb
- 15. Wie setze ich die Breite von GDB Speicher untersuchen (X) oder Drucken (P) Befehle?
- 16. Wie kann ich "Watch" GDB verwenden?
- 17. Wie kann ich eine STL-Liste im CodeWarrior Debugger untersuchen?
- 18. Wie kann ich Typattribute in GDB drucken?
- 19. Wie kann ich verschwindendes Element in einem Browser untersuchen?
- 20. Kann ich den gdb-Client auf XCode umschalten?
- 21. Wie kann ich Debug gehen Tests mit Gdb
- 22. GDB kann nicht Speicheradressfehler
- 23. Untersuchen, wie eine Montageanweisung gespeichert wird
- 24. Wie untersuche ich den Inhalt eines std :: vector in gdb mit dem icc-Compiler?
- 25. Untersuchen mit eingeschränkter Rekursion
- 26. Auf einer Swagger-UI-Seite kann ich den JSON standardmäßig mit einem Abfragezeichenfolgenparameter untersuchen?
- 27. Wie kann ich den JVM-Bytecode für eine Clojure-Funktion untersuchen?
- 28. Wie kann ich den Inhalt eines Datenabschnitts einer ELF-Datei unter Linux untersuchen?
- 29. Wie verwenden Sie gdb?
- 30. Untersuchen Sie ShadowDom mit Firefox
Dies sollte Ihnen helfen: http://cs.nyu.edu/courses/spring07/V22.0474-001/misc/gdb-refcard.pdf. Sie können immer den Befehl "frame" verwenden, um zwischen den Frames zu springen. – dicaprio