2012-07-02 6 views
6

Supponiamo che io abbia allegato gdb a un processo e che all'interno del suo layout di memoria ci sia un numero di file e di riga che vorrei fosse l'indirizzo di memoria di. Come posso ottenere l'indirizzo di memoria della riga n nel file x? Questo è su Linux x86.gdb trova l'indirizzo di memoria del numero di linea

+0

Più o meno un duplicato di [gdb disassemblare per numero di linea] (http://stackoverflow.com/questions/11285932/gdb-disassemble-by-line-number) - la risposta a questa domanda è una risposta perfettamente valida a questo uno pure. – duskwuff

risposta

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

inoltre con il pitone si può essere in grado di utilizzare l'attributo 'ultima' dal Symbol-Tables-In-Python questo momento richiede una versione molto recente di gdb da CVS, ma immagino avrà larga diffusione nei 7.5

(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

grazie per l'aiuto. –

+0

info line! Questo è ciò di cui avevamo bisogno in quell'altra domanda. –

Problemi correlati