/DEBUG (デバッグ情報の生成)/DEBUG (Generate Debug Info)



/DEBUG オプションにより、実行可能ファイルのデバッグ情報が作成されます。The /DEBUG option creates debugging information for the executable.

リンカーによって、デバッグ情報がプログラム データベース (PDB) ファイルに入ります。The linker puts the debugging information into a program database (PDB) file. それにより、プログラムの後続のビルド中、PDB が更新されます。It updates the PDB during subsequent builds of the program.

デバッグ用に作成された実行可能ファイル (.exe ファイルまたは DLL) には、対応する PDB の名前とパスが含まれます。An executable (.exe file or DLL) created for debugging contains the name and path of the corresponding PDB. デバッガーでは、組み込まれた名前が読み取られ、プログラムのデバッグ時に PDB が使用されます。The debugger reads the embedded name and uses the PDB when you debug the program. リンカーによって、プログラムの基本名と拡張子 .pdb が使用され、プログラム データベースに名前が付けられ、それが作成されたパスが埋め込まれます。The linker uses the base name of the program and the extension .pdb to name the program database, and embeds the path where it was created. この既定をオーバーライドするには、/PDB を設定し、別のファイル名を指定します。To override this default, set /PDB and specify a different file name.

/DEBUG:FASTLINK オプションは、Visual Studio 2017 以降で使用できます。The /DEBUG:FASTLINK option is available in Visual Studio 2017 and later. このオプションは、実行可能ファイルの構築に使用される個々のコンパイル製品にプライベート シンボル情報を残します。This option leaves private symbol information in the individual compilation products used to build the executable. それにより、完全なコピーを作成する代わりに、実行可能ファイルの構築に使用されるオブジェクト ファイルとライブラリのデバッグ情報にインデックスを作成する制限付き PDB が生成されます。It generates a limited PDB that indexes into the debug information in the object files and libraries used to build the executable instead of making a full copy. このオプションでは、PDB の完全生成と比較して 2 倍から 4 倍速くリンクできるため、ローカルでデバッグするとき、ビルド製品を利用できるときに推奨されます。This option can link from two to four times as fast as full PDB generation, and is recommended when you are debugging locally and have the build products available. この制限付き PDB は、実行可能ファイルが別のコンピューターに配置されているなど、必要なビルド製品が利用できないときはデバッグに使用できません。This limited PDB can't be used for debugging when the required build products are not available, such as when the executable is deployed on another computer. 開発者コマンド プロンプトで、mspdbcmf.exe ツールを使用し、この制限付き PDB から完全 PDB を生成できます。In a developer command prompt, you can use the mspdbcmf.exe tool to generate a full PDB from this limited PDB. Visual Studio で、完全 PDB ファイルを生成するためのプロジェクトまたはビルド メニュー アイテムを使用し、プロジェクトまたはソリューションの完全 PDB を作成します。In Visual Studio, use the Project or Build menu items for generating a full PDB file to create a full PDB for the project or solution.

/DEBUG:FULL オプションでは、個々のコンパイル製品 (オブジェクト ファイルとライブラリ) から 1 個の PDB にプライベート シンボル情報がすべて移動します。これはリンクの中で最も時間がかかる部分になる可能性があります。The /DEBUG:FULL option moves all private symbol information from individual compilation products (object files and libraries) into a single PDB, and can be the most time-consuming part of the link. ただし、完全な PDB を使用することで、実行可能ファイルが展開されているときなど、他のビルド製品が利用できないとき、実行可能ファイルをデバッグできます。However, the full PDB can be used to debug the executable when no other build products are available, such as when the executable is deployed.

/DEBUG:NONE オプションで PDB が生成されることはありません。The /DEBUG:NONE option does not generate a PDB.

追加のオプションなしで /DEBUG を指定すると、リンカーでは既定で、コマンド ラインとメイクファイル ビルド、Visual Studio IDE のリリース ビルド、Visual Studio 2015 以前のバージョンのデバッグおよびリリース ビルドの両方に対して、 /DEBUG:FULL が設定されます。When you specify /DEBUG with no additional options, the linker defaults to /DEBUG:FULL for command line and makefile builds, for release builds in the Visual Studio IDE, and for both debug and release builds in Visual Studio 2015 and earlier versions. Visual Studio 2017 以降では、IDE のビルド システムでは、デバッグ ビルドに /DEBUG オプションを指定したとき、既定で /DEBUG:FASTLINK に設定されます。Beginning in Visual Studio 2017, the build system in the IDE defaults to /DEBUG:FASTLINK when you specify the /DEBUG option for debug builds. 下位互換性を維持する目的で他の既定値は変更されません。Other defaults are unchanged to maintain backward compatibility.

コンパイラの C7 Compatible (/Z7) オプションにより、コンパイラは .obj ファイルにデバッグ情報を残します。The compiler's C7 Compatible (/Z7) option causes the compiler to leave the debugging information in the .obj files. Program Database (/Zi) コンパイラ オプションを使用し、.obj ファイルの PDB にデバッグ情報を保存することもできます。You can also use the Program Database (/Zi) compiler option to store the debugging information in a PDB for the .obj file. このリンカーでは最初に、.obj ファイルに書き込まれている絶対パスでオブジェクトの PDB が検索されます。次に、.obj ファイルが含まれているディレクトリで検索されます。The linker looks for the object's PDB first in the absolute path written in the .obj file, and then in the directory that contains the .obj file. オブジェクトの PDB ファイル名または場所をリンカーに指定することはできません。You cannot specify an object's PDB file name or location to the linker.

/DEBUG を指定すると /INCREMENTAL も指定されます。/INCREMENTAL is implied when /DEBUG is specified.

/DEBUG により /OPT オプションの既定値が REF から NOREF に、ICF から NOICF に変更されます。そのため、元の既定値を使用する場合、明示的に /OPT:REF または /OPT:ICF を指定する必要があります。/DEBUG changes the defaults for the /OPT option from REF to NOREF and from ICF to NOICF, so if you want the original defaults, you must explicitly specify /OPT:REF or /OPT:ICF.

デバッグ情報が含まれる .exe または .dll を作成することはできません。It is not possible to create an .exe or .dll that contains debug information. デバッグ情報は常に .obj または .pdb ファイルに置かれます。Debug information is always placed in a .obj or .pdb file.

Visual Studio 開発環境でこのリンカー オプションを設定するにはTo set this linker option in the Visual Studio development environment

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。Open the project's Property Pages dialog box. 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。For details, see Set C++ compiler and build properties in Visual Studio.

  2. [リンカー] フォルダーをクリックします。Click the Linker folder.

  3. [デバッグ] プロパティ ページをクリックします。Click the Debugging property page.

  4. [デバッグ情報の生成] プロパティを変更し、PDB 生成を有効にします。Modify the Generate Debug Info property to enable PDB generation. これにより、Visual Studio 2017 以降で /DEBUG:FASTLINK が有効になります。This enables /DEBUG:FASTLINK by default in Visual Studio 2017 and later.

  5. [完全なプログラム データベース ファイルを生成] プロパティを変更し、すべてのインクリメンタル ビルドの完全 PDB 生成に対して /DEBUG:FULL を有効にします。Modify the Generate Full Program Database File property to enable /DEBUG:FULL for full PDB generation for every incremental build.

このリンカーをコードから設定するにはTo set this linker option programmatically

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

関連項目See also

MSVC リンカーのリファレンスMSVC linker reference
MSVC リンカー オプションMSVC Linker Options