/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 開発環境でこのリンカー オプションを設定するには

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。

  2. Linker>Debugging プロパティ ページを選択します。

  3. PDB 生成を有効または無効にするには、 Generate Debug Info プロパティを変更します。 このプロパティは、Visual Studio 2017 以降で既定で /DEBUG:FASTLINK を有効にします。

  4. Generate Full Program Database File プロパティを変更して、増分ビルドごとに完全な PDB 生成の/DEBUG:FULLを有効にします。

このリンカーをコードから設定するには

  1. 以下を参照してください。GenerateDebugInformation

関連項目

MSVC リンカーのリファレンス
MSVC リンカー オプション