PDBファイルを使用すると、クラッシュが発生した場所の診断に役立つと聞きました。
私のbasic理解は、Visual Studioにソースファイル、pdbファイル、およびクラッシュ情報を提供することです(ワトソン博士から?)
誰かがそれがどのように機能するのか、何が関係しているのか説明してください。 (ありがとうございました!)
PDBファイルは、プロジェクトをビルドするときに生成されます。これらには、Visual Studioが解釈できるビルドされたバイナリに関する情報が含まれています。
プログラムがクラッシュし、クラッシュレポートが生成されると、Visual Studioはそのレポートを取得し、アプリケーションのPDBファイルを介してソースコードにリンクすることができます。 PDBファイルは、クラッシュレポートを生成したのと同じバイナリから構築する必要があります!
時間の経過とともに発生した問題がいくつかあります。
前者を打ち負かす方法を知っている人がいれば、何らかの入力に感謝します。
PDBファイルは、アセンブリのMSILを元のソース行にマップします。つまり、アセンブリでコンパイルされたPDBをアセンブリと同じディレクトリに配置すると、例外スタックトレースには、元のソースファイルの位置の名前と行が含まれることになります。 PDBファイルがない場合、スタックトレースの各レベルのクラスとメソッドの名前のみが表示されます。
シンボルサーバーのセットアップと、ソースコード管理システムへのPDBファイルのインデックス作成を検討する必要があります。私は最近、私たちの製品でこのプロセスを経験しましたが、非常にうまく機能しています。バイナリでPDBファイルを使用可能にすることや、ダンプファイルをデバッグするときに適切なソースコードを取得する方法について心配する必要はありません。
ミニダンプを生成するためのサンプルコードについては、こちらをご覧ください(クラッシュ後の分析に限定する必要はありません。コードの任意の時点でクラッシュせずに生成できます): http://www.codeproject .com/KB/debug/postmortemdebug_standalone1.aspx