web-dev-qa-db-ja.com

VisualStudioでのクラッシュダンプの分析

クラッシュしたアプリケーションの*.dmp(ダンプ)ファイルがあります。ここで、別のマシンでクラッシュしたプロセスを分析したいと思います。つまり、あるマシンでアプリがクラッシュし、別のマシンにVisualStudioがあります。

さて、スタックトレースとアプリのすべてのシンボルを表示するには何が必要ですか? *.exeファイルと*.dmpファイルで十分ですか?

または、ソースコードとPDBファイルも必要ですか?

もしそうなら、ソースコードと実行可能ファイルは、プロセスが実行されていたマシン上と同じディレクトリ構造に配置する必要がありますか?

VisualStudioのクラッシュダンプファイルにPDBファイルを添付する方法は?

14
Marc Andreson

いいえ、適切なスタックトレースを取得するには、.pdbファイルが必ず必要です。はるかに簡単な方法は、プログラムをビルドしたマシンからこれを行うことです。ソースコードと.pdbファイルは適切な場所にあります。

次善の策は、まったく同じ実行可能ファイルを、障害が発生したマシンにインストールされたのとまったく同じフォルダーにコピーすることです。 .pdbファイルを同じディレクトリにコピーします。元のビルド場所でそれらが見つからない場合は、デバッガーが次に検索します。デバッガーがソースコードを含むステートメントに到達し、.pdbが削除されなかった場合、ソースコードファイルの場所を指定するように求められます。

次善の策は、ツール+オプション、デバッグ、シンボルであり、.pdbファイルを含むディレクトリへのパスを追加します。

同じダイアログで、Microsoft Symbol Server(http://msdl.Microsoft.com/download/symbols)もオンにします。これにより、Windows DLLのシンボルが取得され、Windows DLLでクラッシュが発生した場合に、自分のコードまで正確にさかのぼることができます。

22
Hans Passant