pdbには、スタックを正しく読み込むためにデバッガが必要とする情報が含まれています。スタックトレースには、pdbを持つモジュール内のスタックフレームの行番号とシンボル名が含まれます。
2つの使用例を示します。最初は明らかな答えです。 2つ目はソース索引pdbの説明です。デバッガは手動でPDBを持っていないモジュールを使用してスタックをアンワインドするため
第一使用例...
大会とその使用コンパイラの最適化を呼び出すことによって、それができない場合があります。これは、特定のサードパーティのライブラリや、OSの一部の部分でさえも起こる可能性があります。
Windows OSの内部でアクセス違反が発生するシナリオを考えます。スタックコンポーネントは、OSコンポーネントがデバッガを混乱させる特別な呼び出し規約を使用するため、独自のアプリケーションに巻き戻されません。パブリックOSのpdbをダウンロードするようにシンボルパスを設定すると、スタックトレースがアプリケーションに巻き戻される可能性が高くなります。これにより、自分のコードがOSシステムコールに渡された引数を正確に見ることができます。 (AV用と同様の例サードパーティのライブラリの内部、あるいは独自のコードの内部の)第二使用例
...
Pdbのの別の非常に有用な特性を持っている - 彼らが使用して、いくつかのソース管理システムと統合することができますマイクロソフトが「ソースインデックス作成」と呼ぶ機能です。ソースインデックス付きpdbには、コンポーネントをビルドするために使用された正確なファイルバージョンをソース管理からフェッチする方法を指定するソース管理コマンドが含まれています。 Microsoftのデバッガは、デバッグセッション中にファイルを自動的に取得するコマンドを実行する方法を理解しています。これは強力な機能で、デバッグエイナイナーはソースツリーを特定のビルドの正しいラベルに手動で同期させる必要がなくなります。リモートデバッグセッションや死後のクラッシュダンプの解析に特に便利です。
「Windows用デバッグツール」インストール(windbg)には、srctr.exeを使用して特定のpdbでソース索引付けされるソースファイルを特定する方法を示すサンプルを提供するsrcsrv.docという名前のドキュメントが含まれています。
「どのように知っているのですか」という質問に答えるために、デバッガの「modules」機能は、どのモジュールに対応するpdbがあるかを示すことができます。 windbgでは "lml"コマンドを使います。ビジュアルスタジオでは、デバッグメニューのどこかからモジュールを選択します。あなたは、Visual Studio IDEのレビューの中に出力ウィンドウのデバッグ中に、提供さPDB、CorporateComponent.pdbを使用しているかどうかを確認し、行を検索するには