2012-07-02 10 views
6

का मेमोरी पता ढूंढें कहें कि मैंने एक प्रक्रिया में जीडीबी संलग्न किया है और इसके मेमोरी लेआउट में एक फ़ाइल और लाइन नंबर है जिसे मैं स्मृति पता चाहता हूं। मैं फाइल एक्स में लाइन एन के मेमोरी एड्रेस कैसे प्राप्त कर सकता हूं? यह लिनक्स x86 पर है।gdb लाइन संख्या

+0

[gdb लाइन संख्या द्वारा अलग किए गए gdb का डुप्लिकेट] (http://stackoverflow.com/questions/11285932/gdb-disassemble-by-line-number) - उस प्रश्न का उत्तर इस पर एक बिल्कुल अच्छा जवाब है एक साथ भी। मदद के लिए – duskwuff

उत्तर

13
(gdb) info line test.c:56 
Line 56 of "test.c" starts at address 0x4005ae <main+37> 
    and ends at 0x4005ba <main+49>. 
अजगर के साथ

अतिरिक्त आप Symbol-Tables-In-Python से 'अंतिम' विशेषता का उपयोग करने में सक्षम हो सकता है इस वर्तमान सीवीएस से gdb का एक बहुत ही हाल के संस्करण की आवश्यकता है, लेकिन मैं सोच भी 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

धन्यवाद। –

+0

जानकारी लाइन! यही वह सवाल है जिसे हमें उस दूसरे प्रश्न पर जरूरी था। –