2012-06-03 14 views
5

Ich möchte nur eine bestimmte Codezeile in gdb zerlegen; Um dies zu tun, brauche ich die Speicheradresse dieser Zeile. Wie kann ich die Adresse einer bestimmten Codezeile in gdb erhalten? Oder noch besser, gibt es einen Befehl in gdb, um nach Zeilennummer zu zerlegen?gdb eine Zeile zerlegen

Antwort

3

Setzen Sie eine Unterbrechung in die Zeile, die Sie zerlegen möchten, und dann können Sie versuchen, die aktuelle Anweisung mit zu erhalten.

Das funktioniert immer für mich, wenn ich Binaries mit Debug-Informationen debuggen. Auch könnte man einfach die aktuelle pc entweder durch print $pc oder info registers oder einfach die x Anweisung bekommen. z.B .:

x/10i address //displays the first 10 instructions in assembly starting from address 

oder

x/10i register //displays the first 10 instructions starting from address stored in register 
2

Sie verwenden können: set disassemble-next-line on durch Zeilennummer diassemble. Verwenden Sie dann die gewünschte Technik, um einen Haltepunkt für die bestimmte Linie festzulegen, die Sie anzeigen möchten.