Im Moment habe ich GDB verwendet, um eine Binärdatei zu zerlegen und verschiedene Register und so weiter zu überprüfen. Gibt es einen einfachen Befehl, um alles auf dem Stapel zu untersuchen? Kann dies auf alles in einer Funktion beschränkt werden?
73
Antworten:
Für den aktuellen Stapelrahmen:
quelle
Sie können den Inhalt des Stapels mit anzeigen
x/10x $sp
Dadurch werden die obersten 10 Elemente des Stapels gedruckt.
quelle
$sp
und die 9 Elemente danach gedruckt , dh (wenn der Stapel wie beispielsweise in x86 nach unten wächst) 9 Elemente, die vom Programm noch nicht verwendet werden. Richtig?bt
(oderbacktrace
) gibt Ihnen einen Aufrufstapel.frame <args>
wählt einen Frame auf dem Aufrufstapel zur Überprüfung ausinfo frame <args>
gibt Ihnen Informationen zu einem bestimmten Frame aus dem Stapel. Beim Aufruf ohne Argumente wird der aktuell ausgewählte Frame angezeigtinfo locals
kann Ihnen Informationen über lokale Variablen auf dem Stapel geben.quelle
info frame <addr>
wird verwendet, um den Rahmen zu untersuchen, ohne ihn auszuwählen