7

gdbをプロセスにアタッチし、そのメモリレイアウト内に、メモリアドレスを指定するファイルと行番号があるとします。ファイルxの行nのメモリアドレスを取得するにはどうすればよいですか?これはLinuxx86上にあります。

4

1 に答える 1

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を使用すると、 Symbol-Tables-In-Pythonの「last」属性を使用できる場合があります。 これには現在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
于 2012-07-02T03:27:52.750 に答える