次の方法で共有


/dynamicdeopt (C++ 動的デバッグを有効にする) (プレビュー)

重要

/dynamicdeopt コンパイラ スイッチは現在プレビュー段階です。 この情報は、リリース前に大幅に変更される可能性があるプレリリース機能に関連しています。 Microsoft は、ここに記載されている情報に関して、明示または黙示を問わず、一切の保証を行いません。

C++ 動的デバッグ (プレビュー) を有効にして、最適化されたコードを最適化解除されたかのようにデバッグし、オンデマンド関数の最適化を使用して任意の場所にステップ インできるようにします。

構文

/dynamicdeopt
/dynamicdeopt:suffix <suffix>
/dynamicdeopt:sync

議論

suffix
最適化されていない出力のファイル拡張子を指定します。

オプションがなく、入力として指定された test.cpp では、出力には test.objtest.exetest.pdb、および test.alt.objtest.alt.exe、および test.alt.pdbが含まれます。 このスイッチを使用すると、最適化されていないバイナリ ビルド成果物のサフィックスを .alt から別のものに変更できます。 サフィックスを変更する場合、すべてのファイルで新しいサフィックスを使用する必要があり、/dynamicdeopt:suffix (プレビュー)を使用してリンカーに渡される名前と一致する必要があります。 通常、他のファイルとのファイル名の競合を回避する必要がない限り、このスイッチは使用しません。

sync
最適化された出力を並列ではなくビルドした後、最適化されていない出力をビルドします。 既定では、コンパイラはコード ジェネレーターの並列インスタンスを生成します。 このスイッチを使用すると、代わりに順次実行されます。 このスイッチは、これがビルド環境に適している場合に備えて提供されます。

注釈

このプレビュー フラグは、Visual Studio 2022 バージョン 17.14 Preview 2 以降で使用でき、x64 プロジェクトにのみ適用され、対応するリンカー フラグ (/DYNAMICDEOPT) で使用する必要があります。

/dynamicdeopt を使用してコンパイルすると、デバッグに使用される他のバイナリが生成されます。 最適化されたファイルで最適化された関数をデバッグすると、代わりにデバッガーが代替バイナリにステップ インします。 これにより、最適化されていないコードをデバッグしているかのようにデバッグしながら、最適化されたコードのパフォーマンス上の利点を引き続き得ることができます。

/dynamicdeopt には次のものが必要です。

/DEBUG または /DEBUG:FULL/DEBUGを指定しない場合、または /DEBUG:FASTLINKを指定すると、リンカーによって致命的なエラーが発生します。 /INCREMENTALを指定すると、コンパイラによって警告が生成され、/INCREMENTALが自動的にオフになります。 /OPT:ICFを指定すると、コンパイラはデバッグ エクスペリエンスがそれほど良くないという警告を生成します。 これは、ICF によって関数が alt ファイルから削除される可能性があるためです。これは、関数にステップ インできないことを意味します。

IncrediBuild 10.24 では、C++ 動的デバッグ ビルドがサポートされています。
FastBuild v1.15 では、C++ 動的デバッグ ビルドがサポートされています。

/dynamicdeopt はエディット コンティニュおよび次のコンパイラ スイッチと互換性がありません。

/GL
/ZI
/RTC1
/RTCs
/RTCc
/RTCu
/GH
/Gh
/fastcap
/callcap
/ZW
/fsanitize=address
/fsanitize=kernel-address
All of the CLR flags

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

このスイッチは、Visual Studio 内で設定できます。 詳細については、「C++ 動的デバッグ (プレビュー)を参照してください。 MSBuild では、/GL/OPT:ICFなどの一部の互換性のないスイッチが自動的に抑制されるため、Visual Studio でスイッチを設定する利点があります。 また、対応するリンカー オプション (/DYNAMICDEOPT) も設定します。 コマンド ラインでスイッチを設定することもできます。

このコンパイラ オプションをプログラムで設定する

こちらもご覧ください

C++ 動的デバッグ (プレビュー)
MSVC コンパイラ オプション
MSVC コンパイラ コマンド ラインの構文