假设我已将gdb附加到进程,并且在其内存布局中有一个文件和行号,我想要内存地址。如何获取文件x中第n行的内存地址?这是在Linux x86上。
答案 0 :(得分:15)
(gdb) info line test.c:56
Line 56 of "test.c" starts at address 0x4005ae <main+37>
and ends at 0x4005ba <main+49>.
另外使用python,你可以使用'last'属性 Symbol-Tables-In-Python目前这需要一个来自cvs的最新版本的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