2012-07-02 13 views
6

gdbをプロセスに接続し、そのメモリレイアウト内にメモリアドレスが必要なファイルと行番号があるとします。ファイルxの行nのメモリアドレスを取得するにはどうすればよいですか?これはLinux x86上です。gdb行番号のメモリアドレスを見つけよう

+0

多かれ少なかれ[gdbの行番号で逆アセンブル](http://stackoverflow.com/questions/11285932/gdb-disassemble-by-line-number) - この質問に対する答えは、これに対する完全に良い答えです1つだけ。 – 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>. 

はさらにパイソンであなたは、これが現在の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 
で一般的な可用性を持つことになります想像 Symbol-Tables-In-Pythonから「最後の」属性を使用することができるかもしれ
+0

助けてくれてありがとう。 –

+0

info line!それが私たちが他の質問に必要だったものです。 –

関連する問題