2012-07-02 14 views
6

Angenommen, ich habe gdb an einen Prozess angehängt und innerhalb des Speicherlayouts gibt es eine Datei- und Zeilennummer, an die ich die Speicheradresse hätte. Wie kann ich die Speicheradresse von Zeile n in Datei x erhalten? Dies ist auf Linux x86.gdb Speicheradresse der Zeilennummer finden

+0

Mehr oder weniger ein Duplikat von [gdb zerlegen nach Zeilennummer] (http://stackoverflow.com/questions/11285932/gdb-disassemble-by-line-number) - die Antwort auf diese Frage ist eine vollkommen gute Antwort darauf einer auch. – duskwuff

Antwort

13
(gdb) info line test.c:56 
Line 56 of "test.c" starts at address 0x4005ae <main+37> 
    and ends at 0x4005ba <main+49>. 

zusätzlich mit Python können Sie in der Lage sein, die ‚last‘ von Symbol-Tables-In-Python dies derzeit Attribut verwenden erfordert eine sehr aktuelle Version von GDB von cvs, aber ich glaube, wird in 7,5 allgemeine Verfügbarkeit haben

(gdb) py x = gdb.find_pc_line(gdb.decode_line("test.c:56")[1][0].pc); gdb.execute("p/x " + str(x.pc)); gdb.execute("p/x " + str(x.last)) 
$15 = 0x4005ae 
$16 = 0x4005b9 
+0

danke für die Hilfe. –

+0

Infozeile! Das ist es, was wir bei dieser anderen Frage gebraucht haben. –

Verwandte Themen