次の方法で共有


シンボルとシンボル ファイル

アプリケーション、ライブラリ、ドライバー、またはオペレーティング システムがリンクされると、.exe ファイルと .dll ファイルを作成するリンカーによって、 シンボル ファイルと呼ばれる追加のファイルも多数作成されます。

シンボル ファイルには、バイナリの実行時に実際には必要ないさまざまなデータが保持されますが、デバッグ プロセスで非常に役立つ可能性があります。

通常、シンボル ファイルには次のものが含まれる場合があります。

  • グローバル変数

  • ローカル変数

  • 関数名とそのエントリ ポイントのアドレス

  • フレーム ポインター省略 (FPO) レコード

  • ソース行番号

これらの各項目は、個別に シンボルと呼ばれます。 たとえば、1 つのシンボル ファイル Myprogram.pdb には、グローバル変数と関数名、数百のローカル変数など、数百のシンボルが含まれている場合があります。 多くの場合、ソフトウェア企業は、パブリック シンボルとプライベート シンボルの両方を含む完全なシンボル ファイルと、パブリック シンボルのみを含む縮小 (削除) ファイルという 2 つのバージョンの各シンボル ファイルをリリースします。 詳細については、「 パブリック シンボルとプライベート シンボル」を参照してください。

デバッグ時に、デバッグするターゲットに関連付けられているシンボル ファイルにデバッガーがアクセスできることを確認する必要があります。 ライブ デバッグとデバッグの両方のクラッシュ ダンプ ファイルにはシンボルが必要です。 デバッグするコードの適切なシンボルを取得し、これらのシンボルをデバッガーに読み込む必要があります。

Windows シンボル

Windows では、拡張子が .pdb のファイルにシンボルが保持されます。

コンパイラとリンカーがシンボル形式を制御します。 Visual C++ リンカーは、すべてのシンボルを .pdb ファイルに配置します。

Windows オペレーティング システムは 2 つのバージョンでビルドされました。 無料ビルド (またはリテール ビルド) には比較的小さなバイナリがあり、チェックされたビルド (またはデバッグ ビルド) には大きなバイナリがあり、コード自体のデバッグ シンボルが多くなります。 チェックされたビルドは、Windows 10 バージョン 1803 より前の古いバージョンの Windows で使用できます。 これらのビルドにはそれぞれ独自のシンボル ファイルがありました。 Windows でターゲットをデバッグする場合は、ターゲット上の Windows のビルドに一致するシンボル ファイルを使用する必要があります。

次の表に、標準の Windows シンボル ツリーに存在するいくつかのディレクトリを示します。

ディレクトリ シンボルファイルを含んでいます。

ACM

Microsoft Audio Compression Manager ファイル

COM

実行可能ファイル (.com)

CPL

コントロール パネル プログラム

DLL

ダイナミック リンク ライブラリ ファイル (.dll)

DRV

ドライバー ファイル (.drv)

EXE

実行可能ファイル (.exe)

SCR

スクリーン セーバー ファイル

SYS

ドライバー ファイル (.sys)