6

ミニ クラッシュ ダンプを分析しようとしていますが、クラッシュの詳細を取得するためにシンボル ファイルが必要です。私は現在、「034eff74 0086eee9 00000000 0089d58d 034eff94 app_integrator!ZNK14ACE_Data_Block4baseEv+0x6」を見ています。

msys/mingw gcc でビルドされた dll からデバッグ情報を抽出して、windbg で読み取り可能な形式にすることはできますか? そうでない場合、何らかの方法で MAP ファイルをロードするなど、より詳細な情報を取得する他の方法はありますか?

dll とそれに含まれるすべての .o ファイルは、-g フラグを使用してビルドされます。

4

1 に答える 1

6

Windbgは、mingwインストールで-gによって生成されるデバッグ情報に対応できません。ただし、COFFシンボルには対応できるとされています。

DLLのソースファイルが十分に小さい場合は、おそらくCOFFデバッグ情報を取得してビルドできます(-gではなく-gcoff)。

したがって、Windbgは(伝えられるところでは)COFFシンボルを処理でき、GCCはそれらを生成できます。だから、そこからは簡単なはずですよね?私は、gccでコンパイルされたDLLをロードしていたVisualStudio2008によって生成されたWin32実行可能ファイルを使用してこれを正確に実行しようとしていました。残念ながら、-gcoffを使用したコンパイルは機能しませんでした。Mingwのgccは、64k行を超えるコードを含むプロジェクトのCOFFシンボルを生成しません。私が使用していたDLLは、64Kコード行よりも明らかに大きかった。悲しいことに、私は認めなければなりません、私はあきらめて、信頼できるOutputDebugStringにフォールバックしました。そうでなければ、私はより完全な指示を与えることができるでしょう。gccに大きなソースファイルのCOFFシンボルを実行させるオプションや、DWARFまたはSTABSデータをwindbgの内部シンボルテーブルに解析するためのデバッグ拡張機能を作成する代替オプションを調査することは好きではありませんでした。

ちなみに、この問題は修正しました。

さらなる提案は、windbg.infoのこのフォーラム投稿で見つけることができます。

于 2011-09-03T22:21:31.210 に答える