Wie lese ich den Wert von allen Registern mit gdb?
Ich bin Debuggen eines c-Programm in Assembler um zu verstehen, wie die gcc complier funktioniert. Ich will Lesen my $fs-segment zu registrieren, damit ich x/x $fs, aber es sagt mir, es kann kein Zugriff auf den Speicher. Wie kann ich Auslesen, auf jedem register enthält das segment -, Allzweck-und control-Register auf der i386:86_64?
Du musst angemeldet sein, um einen Kommentar abzugeben.
info registers
druckt Register Werte für mich, die ist, was Sie Fragen, ich denke:gibt Sie alle register einschließlich FPU-register-stack, xmm-Register.
Verwenden Sie
p
undset
Befehle zum Lesen/setzen der Register. Die Namen der Register sind unterschiedlich für jede Maschine; verwenden Sie info-Register zu sehen, die Namen, die verwendet werden auf Ihrem Rechner. Sehen registriert Abschnitt der GDB-Handbuch für detaillierte Informationen, mit Beispielen.Drucken den Wert der
$fs
registrieren, Sie können dies tun:Was
x
Befehl tut, ist die Prüfung einer Erinnerung. Es gibt Fälle, jedoch, wenn Sie es nicht tun. Zum Beispiel, wenn ein Speicher hingewiesen, die durch eine Adresse ist geschützt. Also, wenn Sie versuchen, zu prüfen, eine Erinnerung an eine virtuelle Adresse0x0
gdb offensichtlich weigert dies zu tun, zum Beispiel:Hoffe, es hilft. Viel Glück!