15

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

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

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

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

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

4

1 に答える 1

23

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

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

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

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

于 2012-09-03T19:27:26.960 に答える