/Z7、/Zi、/ZI (デバッグ情報の形式)
更新 : 2007 年 11 月
作成するプログラムに対して生成するデバッグ情報の種類を選択し、デバッグ情報をオブジェクト (.obj) ファイルに保存するのかプログラム データベース (PDB) に保存するのかを選択します。
/Z{7|i|I}
解説
これらのオプションの説明を次の表に示します。
なし
デバッグ情報を生成しないため、コンパイルが高速化されます。/Z7
デバッガで使用される詳細なシンボリック デバッグ情報が含まれた .obj ファイルが作成されます。シンボリック デバッグ情報には、変数や関数の名前と型、および行番号が含まれます。.pdb ファイルは作成されません。サードパーティのライブラリを配布する場合は、.pdb ファイルを持たないことによる利点があります。ただし、プリコンパイル済みヘッダーの .obj ファイルは、リンク フェーズおよびデバッグで必要です。.pch オブジェクト ファイルに型情報だけがある (コードはない) 場合は、/Yl (デバッグ ライブラリの PCH 参照の挿入) も指定してコンパイルする必要があります。
/Zi
プログラム データベース (PDB) が生成されます。PDB には、型情報とデバッガが使うシンボリック デバッグ情報が取り込まれます。シンボリック デバッグ情報には、変数や関数の名前と型、および行番号が含まれます。/Zi は最適化に影響しません。ただし、/Zi を指定すると /debug が暗黙に指定されます。詳細については、「/DEBUG (デバッグ情報の生成)」を参照してください。
型情報は、.obj ファイルではなく .pdb ファイルに配置されます。
/Gm (簡易リビルドの有効化) は /Zi と併用できますが、/Gm は、/Z7 を指定してコンパイルする場合は利用できません。
/Zi および /clr を指定してコンパイルする場合、DebuggableAttribute 属性はアセンブリ メタデータに配置されません。配置する場合はソース コードで指定する必要があります。この属性は、アプリケーションの実行時パフォーマンスに影響します。Debuggable 属性によるパフォーマンスへの影響とその対処方法の詳細については、「イメージのデバッグの簡略化」を参照してください。
/ZI
エディット コンティニュ機能をサポートする形式で、上のようなプログラム データベースを生成します。エディット コンティニュのデバッグを使用する場合は、必ずこのオプションを使用してください。ほとんどの最適化処理はエディット コンティニュと互換性がないため、/ZI を使用すると、コードの #pragma optimize ステートメントが無効になります。/ZI を指定すると、コンパイルで /Gy (関数レベルのリンクの有効化) が使用されます。
/ZI は /clr (共通言語ランタイムのコンパイル) と互換性がありません。
メモ : /ZI は x86 に対応するコンパイラでのみ使用できます。このコンパイラ オプションは、x64 や IPF (Itanium Processor Family) に対応するコンパイラでは使用できません。
コンパイラは、プログラム データベースに project.pdb という名前を付けます。プロジェクトなしでファイルをコンパイルした場合、コンパイラはデータベースを VCx0.pdb という名前で作成します。x は現在使用している Visual C++ のメジャー バージョンです。このオプションを指定して生成した各 .obj ファイルには、PDB の名前が埋め込まれ、シンボル情報と行番号情報の場所がデバッガに通知されます。このオプションを選択すると、デバッグ情報は .obj ファイルではなく .pdb ファイルに保存されるため、.obj ファイルのサイズが小さくなります。
このオプションを使って生成したオブジェクトからライブラリを作成する場合は、ライブラリをプログラムにリンクするときに該当する .pdb ファイルが必要になります。したがって、ライブラリを配布する場合は、その PDB も併せて配布する必要があります。
.pdb ファイルを使わずにライブラリにデバッグ情報を含めるには、コンパイラ側で /Z7 (C 7.0 互換) オプションを選択する必要があります。プリコンパイル済みヘッダー用のオプションを使うと、プリコンパイル済みヘッダーのデバッグ情報は、その他のソース コードのデバッグ情報と共に PDB に保存されます。プログラム データベースを使用するオプションを指定すると、/Yd オプションは無視されます。
Visual Studio 開発環境でこのコンパイラ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。詳細については、「方法 : プロジェクト プロパティ ページを開く」を参照してください。
[C/C++] フォルダをクリックします。
[全般] プロパティ ページをクリックします。
[デバッグ情報の形式] プロパティを変更します。
このコンパイラ オプションをコードから設定するには
- DebugInformationFormat を参照してください。