Condividi tramite


/dynamicdeopt (Abilita debug dinamico C++) (anteprima)

Importante

L'opzione del compilatore /dynamicdeopt è attualmente in ANTEPRIMA. Queste informazioni si riferiscono a una funzionalità di versione non definitiva che potrebbe essere modificata sostanzialmente prima del rilascio. Microsoft non fornisce alcuna garanzia, espressa o implicita, in relazione alle informazioni fornite qui.

Abilitare debug dinamico C++ (anteprima) in modo da poter eseguire il debug di codice ottimizzato come se fosse stato compilato deoptimizzato ed eseguito ovunque con la deoptimizzazione della funzione su richiesta.

Sintassi

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

Argomenti

suffix
Specificare l'estensione di file per l'output deoptimizzato.

Senza opzioni e dati test.cpp come input, l'output include test.obj, test.exee test.pdb, nonché test.alt.obj, test.alt.exee test.alt.pdb. Questa opzione consente di modificare il suffisso degli artefatti di compilazione binari non ottimizzati da .alt a qualcos'altro. Se si modifica il suffisso, tutti i file devono usare il nuovo suffisso e deve corrispondere al nome passato al linker usando /dynamicdeopt:suffix (anteprima). In genere non si usa questa opzione a meno che non sia necessario evitare conflitti di nomi file con altri file presenti.

sync
Compila l'output deoptimizzato dopo la compilazione dell'output ottimizzato anziché in parallelo. Per impostazione predefinita, il compilatore genera un'istanza parallela del generatore di codice. Questa opzione li rende invece eseguiti serialmente. Questa opzione viene fornita nel caso in cui questo sia più adatto all'ambiente di compilazione.

Osservazioni:

Questo flag di anteprima, disponibile a partire da Visual Studio 2022 Versione 17.14 Preview 2, si applica solo ai progetti x64 e deve essere usato con il flag del linker corrispondente, /DYNAMICDEOPT.

La compilazione con /dynamicdeopt genera altri file binari usati per il debug. Quando si esegue il debug di una funzione ottimizzata in un file ottimizzato, il debugger esegue invece la procedura nel file binario alternativo. In questo modo è possibile eseguire il debug come se si esegue il debug di codice non ottimizzato, ottenendo comunque i vantaggi delle prestazioni del codice ottimizzato.

/dynamicdeopt richiede:

/DEBUG o /DEBUG:FULL. Se non si specifica /DEBUGo se si specifica /DEBUG:FASTLINK, il linker restituisce un errore irreversibile. Se si specifica /INCREMENTAL, il compilatore genera un avviso e disattiva automaticamente /INCREMENTAL. Se si specifica /OPT:ICF, il compilatore genera un avviso che indica che l'esperienza di debug non è ottimale. Ciò è dovuto al fatto che ICF può causare la rimozione delle funzioni dal file alternativo, il che significa che non è possibile eseguirne l'istruzione.

IncrediBuild 10.24 supporta le compilazioni di debug dinamico C++.
FastBuild v1.15 supporta le compilazioni di debug dinamico C++.

/dynamicdeopt non è compatibile con le opzioni edit-and-continue e le opzioni del compilatore seguenti:

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

Impostare questa opzione del linker nell'ambiente di sviluppo di Visual Studio

È possibile impostare questa opzione all'interno di Visual Studio. Per altre informazioni, vedere debug dinamico C++ (anteprima). L'impostazione dell'opzione in Visual Studio offre vantaggi perché MSBuild elimina automaticamente alcune delle opzioni incompatibili, ad esempio /GL e /OPT:ICF. Imposta anche l'opzione del linker corrispondente (/DYNAMICDEOPT). È anche possibile impostare l'opzione nella riga di comando.

Impostare questa opzione del compilatore a livello di codice

Vedere anche

debug dinamico C++
Opzioni del compilatore MSVC
Sintassi della riga di comando del compilatore MSVC