2012-07-02 15 views
6

Bir işleme gdb eklediğimi ve bellek düzeni içinde bellek adresinin olmasını istediğim bir dosya ve satır numarası olduğunu varsayalım. X dosyasındaki n numaralı satırın hafıza adresini nasıl alabilirim? Bu Linux x86'da. piton ile ayrıcagdb satır numarasının hafıza adresini bul

+0

[gdb satır numarasına göre parçalara ayırma] 'nın bir ya da daha az kopyası (http://stackoverflow.com/questions/11285932/gdb-disassemble-by-line-number) - bu sorunun cevabı, buna mükemmel bir yanıttır. biri de. – duskwuff

cevap

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

Eğer Symbol-Tables-In-Python gelen 'son' özelliğini kullanmak mümkün olabilir bu anda cvs gdb bir çok yeni sürümünü gerektirir, ama 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 
genel seçeneklerine sahiptir hayal
+0

Yardım için teşekkürler. –

+0

bilgi hattı! Diğer soruda buna ihtiyacımız vardı. –