シンボル ファイルの作成と取得

アプリケーションのデバッグには、デバッグ シンボルのファイルが有用です。このデバッグ シンボルとはデバッガが使用するデータであり、

  • ソースコード
  • 行番号
  • 変数名
  • データ型

などのプログラム情報を格納しています。そしてそのフォーマットには、

  • COFF
  • C7 (CodeView)
  • DBG
  • PDB (Program Debug DataBase)

があります。

PDB (Program Debug DataBase)

PDBファイルの作成

C#ではPDBファイルの作成は、プロジェクトのプロパティから行えます。プロパティの[ビルド]タブを開き、[詳細設定]をクリックします。

そして[デバッグ情報]に[full]を指定することで、ビルド時にPDBファイルが作成されるようになります。この設定の既定値は、Debugモードでは[full]となっています。

≫ C#コンパイラの-debugオプション

PDBファイルの使用

Visual Studioのデバッガ以外で使用する場合は、実行ファイルと同じフォルダに配置します。シンボルの場所と読み込み動作 - デバッガーでシンボル (.pdb) ファイルとソース ファイルを設定する - Visual Studio (Windows) | Microsoft Learn

シンボルサーバー (Symbol server)

シンボルサーバーを設定することで、Visual Studioプロジェクトに必要なシンボルを、サーバから自動的にダウンロードさせられます。


【ツール → オプション → デバッグ → シンボル】

シンボル ファイルの場所に、Microsoftのシンボル サーバーのURLhttps://msdl.microsoft.com/download/symbolsを設定するか、環境変数に[_NT_SYMBOL_PATH]を定義し、その値を

srv*c:\symbols*https://msdl.microsoft.com/download/symbols

のように設定します。Microsoft シンボル サーバーの使用 - シンボルを使用したデバッグ | MSDN

シンボルが保存されるディレクトリは、既定で%TEMP%\SymbolCacheです。

遅延の回避

サーバーからシンボルを読み込むように設定すると、読み込みのたびに待たされることがあります。その場合には不要なシンボルを読み込まないように設定します。シンボルの読み込み動作を指定する - シンボル (.pdb) ファイル、ソース ファイル、およびバイナリ ファイルの検索 | MSDN

またはすべてのシンボルを、あらかじめインストールしておきます。

Windows シンボル パッケージのダウンロード - Windows ハードウェア デベロッパー センター

Microsoft Learnから検索