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)