/DEBUG
(デバッグ情報の生成)
/DEBUG
リンカー オプションは、実行可能ファイルのデバッグ情報ファイルを作成します。
構文
/DEBUG
[:
{FASTLINK
|FULL
|NONE
}]
解説
/DEBUG
オプションを使用すると、リンクされたオブジェクト ファイルとライブラリ ファイルのデバッグ情報がプログラム データベース (PDB) ファイルに格納されます。 それにより、プログラムの後続のビルド中、PDB が更新されます。
デバッグ用に作成された実行可能ファイル (EXE または DLL ファイル) には、対応する PDB の名前とパスが含まれています。 デバッガーでは、組み込まれた名前が読み取られ、プログラムのデバッグ時に PDB が使用されます。 リンカーは、プログラムの基本名と拡張 .pdb
を使用してプログラム データベースに名前を付け、作成されたパスを埋め込みます。 この既定値をオーバーライドするには、 /PDB
オプションを設定し、別のファイル名を指定します。
/DEBUG:FASTLINK
オプションは、Visual Studio 2017 以降で使用できます。 このオプションでは、完全コピーを作成する代わりに、実行可能ファイルのビルドに使用されるオブジェクト ファイルとライブラリ内のデバッグ情報にインデックスを作成する制限付き PDB が生成されます。 この制限付き PDB は、バイナリとそのライブラリがビルドされたコンピューターからのデバッグにのみ使用できます。 バイナリを他の場所に展開する場合は、ビルド コンピューターからリモートでデバッグできますが、テスト コンピューターでは直接デバッグできません。 Visual Studio 2019 以降、 /DEBUG:FULL
のリンク時間は大幅に向上し、 /DEBUG:FASTLINK
は常に /DEBUG:FULL
よりも高速ではありません。 /DEBUG:FASTLINK
ビルド時間が大幅に改善されなくなり、デバッグ エクスペリエンスが/DEBUG:FULL
に比して低下するため、このオプションは推奨されなくなりました。
/DEBUG:FASTLINK
PDB は完全な PDB に変換でき、ローカル デバッグのためにテスト マシンにデプロイできます。 Visual Studio で、以下の説明に従って Property Pages ダイアログを使用して、プロジェクトまたはソリューションの完全な PDB を作成します。 開発者コマンド プロンプトでは、 mspdbcmf.exe
ツールを使用して完全な PDB を作成できます。
/DEBUG:FULL
オプションは、個々のコンパイル製品 (オブジェクト ファイルとライブラリ) からすべてのプライベート シンボル情報を 1 つの PDB に移動し、リンクの最も時間のかかる部分になる可能性があります。 ただし、完全な PDB を使用することで、実行可能ファイルが展開されているときなど、他のビルド製品が利用できないとき、実行可能ファイルをデバッグできます。
/DEBUG:NONE
オプションでは PDB は生成されません。
引数を追加しない /DEBUG
を指定することは、 /DEBUG:FULL
を指定することと同じです。
コンパイラの /Z7
(C7 互換) オプションにより、コンパイラはデバッグ情報をオブジェクト (OBJ) ファイルに残します。 /Zi
(Program Database) コンパイラ オプションを使用して、OBJ ファイルの PDB にデバッグ情報を格納することもできます。 リンカーは、オブジェクトの PDB を最初に OBJ ファイルに書き込まれた絶対パスで検索し、次に OBJ ファイルを含むディレクトリ内で検索します。 リンカーに対してオブジェクトの PDB ファイル名または場所を指定することはできません。
/INCREMENTAL
は、 /DEBUG
が指定されている場合は暗黙的です。
/DEBUG
では、/OPT
オプションの既定値が REF
から NOREF
に変更され、ICF
から NOICF
に変更されるため、元の既定値を使用する場合は、/DEBUG
オプションの後に/OPT:REF
または/OPT:ICF
を明示的に指定する必要があります。
デバッグ情報を含む EXE または DLL を作成することはできません。 デバッグ情報は常に OBJ または PDB ファイルに配置されます。
Visual Studio 開発環境でこのリンカー オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。
Linker>Debugging プロパティ ページを選択します。
PDB 生成を有効または無効にするには、 Generate Debug Info プロパティを変更します。 このプロパティは、Visual Studio 2017 以降で既定で
/DEBUG:FASTLINK
を有効にします。Generate Full Program Database File プロパティを変更して、増分ビルドごとに完全な PDB 生成の
/DEBUG:FULL
を有効にします。
このリンカーをコードから設定するには
- 以下を参照してください。GenerateDebugInformation