Compartir a través de


/dynamicdeopt (Habilitar depuración dinámica de C++) (versión preliminar)

Importante

El modificador del compilador de /dynamicdeopt está actualmente en versión preliminar. Esta información se relaciona con una característica de versión preliminar que podría modificarse sustancialmente antes de la versión. Microsoft no ofrece ninguna garantía, expresada o implícita, con respecto a la información proporcionada aquí.

Habilite depuración dinámica de C++ (versión preliminar) para que pueda depurar código optimizado como si estuviera compilado desoptimizado y paso a paso en cualquier lugar con la desoptimización de la función a petición.

Sintaxis

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

Argumentos

suffix
Especifique la extensión de archivo para la salida desoptimizada.

Sin opciones ni test.cpp como entrada, la salida incluye test.obj, test.exey test.pdb, así como test.alt.obj, test.alt.exey test.alt.pdb. Este modificador permite cambiar el sufijo de los artefactos de compilación binarios no optimizados de .alt a otra cosa. Si cambia el sufijo, todos los archivos deben usar el nuevo sufijo y debe coincidir con el nombre pasado al enlazador mediante /dynamicdeopt:suffix (versión preliminar). Normalmente no usas este modificador a menos que necesites evitar colisiones de nombre de archivo con otros archivos que tengas.

sync
Compila la salida desoptimizada después de compilar la salida optimizada en lugar de en paralelo. De forma predeterminada, el compilador genera una instancia paralela del generador de código. Este modificador hace que se ejecuten en serie en su lugar. Este modificador se proporciona en caso de que mejor se adapte a su entorno de compilación.

Observaciones

Esta marca de versión preliminar, disponible a partir de Visual Studio 2022, versión 17.14 Preview 2, solo se aplica a proyectos x64 y debe usarse con la marca del enlazador correspondiente, /DYNAMICDEOPT.

La compilación con /dynamicdeopt genera otros archivos binarios que se usan para la depuración. Al depurar una función optimizada en un archivo optimizado, el depurador realiza los pasos en el binario alternativo en su lugar. Esto le permite depurar como si depurase código no optimizado al mismo tiempo que obtenía las ventajas de rendimiento del código optimizado.

/dynamicdeopt requiere:

/DEBUG o /DEBUG:FULL. Si no especifica /DEBUG, o si especifica /DEBUG:FASTLINK, el enlazador produce un error irrecuperable. Si especifica /INCREMENTAL, el compilador genera una advertencia y desactiva automáticamente /INCREMENTAL. Si especifica /OPT:ICF, el compilador genera una advertencia de que la experiencia de depuración no es tan buena. Esto se debe a que ICF puede hacer que las funciones se quiten del archivo alternativo, lo que significa que no se pueden introducir paso a paso por instrucciones.

IncrediBuild 10.24 admite compilaciones de depuración dinámica de C++.
FastBuild v1.15 admite compilaciones de depuración dinámica de C++.

/dynamicdeopt no es compatible con edit-and-continue y los siguientes modificadores del compilador:

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

Establecer esta opción del enlazador en el entorno de desarrollo de Visual Studio

Puede establecer este modificador dentro de Visual Studio. Para obtener más información, vea depuración dinámica de C++ (versión preliminar). Hay ventajas para establecer el modificador en Visual Studio porque MSBuild suprime automáticamente algunos de los modificadores incompatibles, como /GL y /OPT:ICF. También establece la opción del enlazador correspondiente (/DYNAMICDEOPT). También puede establecer el modificador en la línea de comandos.

Establecimiento de esta opción del compilador mediante programación

Consulte también

depuración dinámica de C++ (versión preliminar)
Opciones del compilador de MSVC
Sintaxis de la línea de comandos del compilador MSVC