/DEBUG (デバッグ情報を生成する)

リンカー オプションは /DEBUG 、実行可能ファイルのデバッグ情報ファイルを作成します。

構文

/DEBUG[:{FASTLINK|FULL|NONE}]

解説

オプションを指定 /DEBUG すると、リンクされたオブジェクト ファイルとライブラリ ファイルのデバッグ情報がプログラム データベース (PDB) ファイルに格納されます。 それにより、プログラムの後続のビルド中、PDB が更新されます。

デバッグ用に作成された実行可能ファイル (EXE または DLL ファイル) には、対応する PDB の名前とパスが含まれています。 デバッガーでは、組み込まれた名前が読み取られ、プログラムのデバッグ時に PDB が使用されます。 リンカーは、プログラムの基本名と拡張機能 .pdb を使用してプログラム データベースに名前を付け、作成されたパスを埋め込みます。 この既定値をオーバーライドするには、 オプションを /PDB 設定し、別のファイル名を指定します。

この /DEBUG:FASTLINK オプションは、Visual Studio 2017 以降で使用できます。 このオプションでは、完全コピーを作成する代わりに実行可能ファイルのビルドに使用されるオブジェクト ファイルとライブラリ内のデバッグ情報にインデックスを作成する制限付き PDB が生成されます。 この制限付き PDB は、バイナリとそのライブラリがビルドされたコンピューターからのデバッグにのみ使用できます。 バイナリを他の場所に展開する場合は、ビルド コンピューターからリモートでデバッグできますが、テスト コンピューターでは直接デバッグできません。 Visual Studio 2017 では、このオプションを使用すると、 と比較してリンク時間が /DEBUG:FULL大幅に向上することがあります。 Visual Studio 2019 以降では、 /DEBUG:FULL は以前のバージョンよりも高速です。 /DEBUG:FASTLINKは、 よりも/DEBUG:FULL常に高速であるわけではありません。また、速度が 2 倍を超えることはめったにありません。

PDB は /DEBUG:FASTLINK 、ローカル デバッグ用のテスト マシンにデプロイできる完全な PDB に変換できます。 Visual Studio で、以下で説明するように [プロパティ ページ] ダイアログを使用して、プロジェクトまたはソリューションの完全な PDB を作成します。 開発者コマンド プロンプトでは、ツールを mspdbcmf.exe 使用して完全な PDB を作成できます。

オプションを /DEBUG:FULL 使用すると、個々のコンパイル製品 (オブジェクト ファイルとライブラリ) からすべてのプライベート シンボル情報が 1 つの PDB に移動され、リンクの最も時間のかかる部分になる可能性があります。 ただし、完全な PDB を使用することで、実行可能ファイルが展開されているときなど、他のビルド製品が利用できないとき、実行可能ファイルをデバッグできます。

/DEBUG:NONEこのオプションでは PDB は生成されません。

Visual Studio 2015 以前のバージョンでは、追加の引数を指定せず を指定 /DEBUG すると、リンカー /DEBUG:FULL は、コマンド ライン ビルドとメイクファイル ビルド、Visual Studio IDE のリリース ビルド、およびデバッグ ビルドとリリース ビルドの両方に既定で に設定されます。 Visual Studio 2017 以降では、デバッグ ビルドのオプションを指定すると、IDE のビルド システムは/DEBUG既定で に/DEBUG:FASTLINK設定されます。 下位互換性を維持する目的で他の既定値は変更されません。

コンパイラの /Z7 (C7 互換) オプションを使用すると、コンパイラはデバッグ情報をオブジェクト (OBJ) ファイルに残します。 (Program Database) コンパイラ オプションを /Zi 使用して、OBJ ファイルの PDB にデバッグ情報を格納することもできます。 リンカーは、最初にオブジェクトの PDB を OBJ ファイルに書き込まれた絶対パスで検索し、次に OBJ ファイルを含むディレクトリで検索します。 リンカーにオブジェクトの PDB ファイル名または場所を指定することはできません。

/INCREMENTAL は、 が指定されている場合に /DEBUG 暗黙的に指定されます。

/DEBUGオプションの既定値/OPTを から REFNOREF変更しますICFNOICF。そのため、元の既定値が必要な場合は、 オプションの後に または /OPT:ICF を明示的に指定/OPT:REFする/DEBUG必要があります。

デバッグ情報を含む EXE または DLL を作成することはできません。 デバッグ情報は常に OBJ または PDB ファイルに配置されます。

Visual Studio 開発環境でこのリンカー オプションを設定するには

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

  2. [リンカー> デバッグ] プロパティ ページ選択します。

  3. [ デバッグ情報の生成 ] プロパティを変更して、PDB 生成を有効または無効にします。 このプロパティは、Visual Studio 2017 以降で既定で有効になります /DEBUG:FASTLINK

  4. [ プログラム データベース ファイル全体の生成 ] プロパティを変更して、すべての増分ビルドに対して完全な PDB 生成を有効にします /DEBUG:FULL

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

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

関連項目

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