Powiedz, że załączyłem GDB do procesu i w jego układzie pamięci znajduje się plik i numer linii, którym chciałbym adres pamięci. Jak mogę uzyskać adres pamięci linii n w pliku x? To jest na Linux x86.gdb znajdź adres pamięci o numerze linii
6
A
Odpowiedz
13
(gdb) info line test.c:56
Line 56 of "test.c" starts at address 0x4005ae <main+37>
and ends at 0x4005ba <main+49>.
dodatkowo z pytona może być w stanie korzystać z „ostatni” atrybut z Symbol-Tables-In-Python wymaga obecnie bardzo najnowszą wersję gdb z CVS, ale wyobrażam sobie będą mieć ogólną dostępność w 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
dzięki za pomoc. –
+0
infolinia! Tego właśnie potrzebowaliśmy w tym drugim pytaniu. –
Mniej więcej duplikat [demontażu gdb według numeru linii] (http://stackoverflow.com/questions/11285932/gdb-disassemble-by-line-number) - odpowiedź na to pytanie jest doskonale trafną odpowiedzią na to pytanie także jeden. – duskwuff