次の方法で共有


PDB ファイル (C++)

更新 : 2007 年 11 月

このトピックの内容は、次の製品に該当します。

Edition

Visual

Basic

C#

C++

Web Developer

Express

トピック該当なし トピック該当なし トピック該当 トピック該当なし

Standard

トピック該当なし

トピック該当なし

トピック該当

トピック該当なし

Pro/Team

トピック該当なし トピック該当なし

トピック該当

トピック該当なし

表の凡例 :

トピック該当

対象

トピック該当なし

該当なし

トピックは該当しますが、コマンドは既定では非表示です

既定で非表示のコマンド

プログラム データベース (PDB) ファイルは、デバッグとプロジェクト状態情報を保持します。この情報により、プログラムのデバッグ構成のインクリメンタル リンクが可能になります。/ZI または /Zi (C/C++ 用) を使用して構築すると、PDB ファイルが作成されます。

Visual C++ では、コンパイラにより作成される PDB ファイルを /Fd オプションで指定します。Visual Studio でウィザードを使ってプロジェクトを作成する場合は、/Fd オプションが project.PDB という名前の PDB ファイルを作成するように設定されます。

メイクファイルを使って C/C++ アプリケーションをビルドするときに、/ZI または /Zi を指定して /Fd を指定しない場合は、次の 2 つの PDB ファイルが作成されます。

  • VC80.PDB   より一般的には、VCx0.PDB。x は、Visual C++ のバージョンを表します。このファイルには、個別の OBJ ファイルのあらゆるデバッグ情報が格納されます。このファイルは、プロジェクトのメイクファイルと同じディレクトリに配置されます。

  • project.PDB   このファイルには、.exe ファイルのあらゆるデバッグ情報が格納されます。C/C++ の場合は、\debug サブディレクトリに配置されます。

OBJ ファイルが作成されるたびに、C/C++ コンパイラはデバッグ情報を VCx0.PDB に挿入します。挿入される情報には、型情報が含まれますが、関数定義などのシンボル情報は含まれません。このため、ソース ファイルごとに <windows.h> などの共通ヘッダー ファイルをインクルードしているとしても、共通ヘッダー ファイルの typedef は一度格納されるだけで、OBJ ファイルごとに格納されるわけではありません。

リンカは project.PDB を作成します。このファイルには、プロジェクトの EXE ファイルのデバッグ情報が格納されます。project.PDB ファイルには、VCx0.PDB に含まれる型情報だけでなく、関数プロトタイプをはじめとするあらゆるデバッグ情報が格納されます。どちらの PDB ファイルもインクリメンタル更新が可能です。またリンカも、作成する .exe ファイルや .dll ファイルに .pdb ファイルへのパスを埋め込みます。

Visual Studio デバッガでは、EXE ファイルまたは DLL ファイルの PDB へのパスを使用して、project.PDB ファイルを検索します。指定された場所に PDB ファイルが見つからないか、(プロジェクトが別のコンピュータに移動されたなど) パスが無効である場合は、EXE ファイルが格納されているパスを検索します。このパスは、[オプション] ダイアログ ボックス ([デバッグ] - [シンボル]) で指定されたシンボル パスです。デバッガでは、デバッグ対象のバイナリと一致しない PDB は読み込みません。

参照

概念

PDB ファイル (C# および Visual Basic)

その他の技術情報

デバッグの設定と準備