2

ここでドキュメントを見ましたhttp://www.codeproject.com/Articles/3472/Finding-crash-information-using-the-MAP-file。この例はすべて、Windows ファイルで見られるクラッシュに関するものですか? Linux システムで生成されたクラッシュに対してここで行われたのと同じ数学を探しています。Linux でクラッシュが発生した場合、Microsoft ドキュメントhttp://www.codeproject.com/Articles/3472/Finding-crash-information-using-the-MAP-fileのような同様の行で問題をデバッグするにはどうすればよいですか。助けてください?Linuxでロードアドレスとコードセグメントアドレスは同じですか? 「バイナリの最初の部分はポータブル実行可能ファイル (PE) で、長さは 0x1000 バイトです。」というリンクに記載されている Linux の次の部分は何ですか?

4

1 に答える 1

1

PE は Windows 形式です。Linux は ELF を使用します。もちろん、ELF を手動で解析することはできますが、そうすべきではありません - gdb がそれを行うことができます。さらに、 addr2line ユーティリティを使用して、ソース コード内のファイル/行にアドレスをマップできます (もちろん、どちらもデバッグ ビルドが必要です)。

マップ ファイルは、Linux ではめったに使用されません。通常は、デバッグ実行可能ファイルの一部にすぎません。ただし、デバッグ ビルドからダンプすることはできますが、あまり実用的な価値はありません。

また、Linuxでaddr2lineコマンドを使用する方法もご覧ください

于 2013-09-18T09:26:42.037 に答える