2017-10-11 17 views
1

私はMicrosoft Minidump機能を使用していますので、リリースされたプログラムのクラッシュを分析できます。Microsoftミニダンプファイルには多くの情報がありません

https://msdn.microsoft.com/en-us/library/windows/desktop/ee416349(v=vs.85).aspx

コードは、このstackoverflowの質問に対して答えることは似ている:私はクラッシュを持っているとき通常、私は、Visual Studioでクラッシュダンプファイルを開くことができ、それがかかります

How to write a sample code that will crash and produce dump file?

これらの問題のトラブルシューティングを非常に簡単にするソースコードの問題に私を惑わせます。

しかし時にはそれほど簡単ではありません。

問題のあるソース行を特定できないクラッシュダンプファイルがあります。何故ですか?このダンプファイルから得られる有用な情報は何ですか?乾草の針を見つけるためのヒント?

ここは私がやっていることです。

このリリースのソースはタグでチェックアウトしています。

私はクラッシュダンプと同じフォルダに対応するPDBファイルをコピー - ファイルがmyprogram.exe.3140.dmp

私は、exeファイルを構築するために使用されるコンパイラとクラッシュダンプを開いて、Visual Studioのです2012年

私はその後、いくつかの有用な情報を参照してください

最終書き込み時間2017年10月10日15時28分52秒 プロセス・アーキテクチャ:トレッドは、読み取りまたは書き込みをしようとしたのx86 例外コード0xc0000005で 例外情報仮想アドレス適切なアクセス権がありません。 ヒープ情報の現状

OSのバージョン6.1.7601

モジュール: myprogram.exeという1.7.41.0 myprogram.dll 1.1.0.27 など

は、その後、私はネイティブのみ

でデバッグをクリックしてくださいその後、ダイアログが表示されます。

myprogram.exe.3140.dmpの0x548BFFD5で未処理例外:0xC0000005:アクセス違反が実行されていますロケーション0x548BFFD5。

ロードされたモジュールで現在のスタックフレームが見つかりませんでした。この場所にソースを表示することはできません。

私は休憩ボタン

をクリックその後、モジュールにしないフレームと言います。ロードされたモジュールに現在のスタックフレームが見つかりませんでした。この場所のソースを表示することはできません。

私は、ビューの解体ハイパーリンクをクリックして、次を参照してください。

548BFFD5? ??

疑問符は何ですか? ?? ??それはぶら下がっているポインタの問題を示していますか?他に何か?

+0

「実際にコードではないコードを実行しようとしたように、アクセス違反実行場所0x548BFFD5' < - あなたの情報は得られません。おそらくあなたはリターンアドレス(UBの何らかの形で)を破損し、ランダムなメモリを実行しようとしました。 – Borgleader

答えて

0

疑問符は、アドレス0x548BFFD5(アプリケーションが実行しようとしている)のデータが意味のあるものに逆アセンブルされないことを意味します。

あなたが気づいたように、ぶら下がっているポインタを持っているか、もはや存在しないオブジェクトが指す関数を実行しようとしている可能性があります。または、何も指していない関数ポインタを実行しようとしています。

シンボルを使用してコンパイルした場合は、コールスタック/スタックトレースをバックアップし、問題の開始場所を確認することができます。

関連する問題