0

私のプログラム (Linux 上の D コンパイラである DMD でコンパイルされたもの) がクラッシュし、次のような情報が出力されます。

./program() [0x807aff8]
./program() [0x807aea9]

関数のアドレスをその名前に変換するにはどうすればよいですか? でプログラムをコンパイルした-debugので-g、必要なデバッグ情報が含まれているはずですが、使い方がわかりません。

(PS: これは単純なことですが、どうすればよいかわかりません。おそらく正しい検索用語を使用していないでしょう)。

4

2 に答える 2

0

addr2lineユーティリティを見てみよう

$ gcc -g s.c
$ addr2line 0x400855    
s.c:42
于 2011-06-29T12:16:06.713 に答える
0

gdb 内でアプリケーションを実行し、クラッシュ後に bt と入力して完全なバックトレースを出力します。これは通常、クラッシュが発生した行だけよりもはるかに優れています。

于 2011-06-29T12:19:58.157 に答える