/dynamicdeopt (Habilitar depuração dinâmica do C++)

Habilite a Depuração Dinâmica do C++ para que você possa depurar o código otimizado como se tivesse sido compilado desoptimizado e intervir em qualquer lugar com deoptimização de função sob demanda.

Sintaxe

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

Argumentos

suffix
Especifique a extensão de arquivo para a saída desoptimizada.

Sem opções e test.cpp fornecidas como entrada, sua saída inclui test.obj, test.exee test.pdb, bem como test.alt.obj, test.alt.exee test.alt.pdb. Essa opção altera o sufixo dos artefatos de build binário não otimizados de .alt para outro sufixo. Se você alterar o sufixo, todos os arquivos deverão usar o novo sufixo e ele precisará corresponder ao nome passado para o vinculador usando /dynamicdeopt:suffix. Normalmente, você não usa essa opção, a menos que precise evitar colisões de nome de arquivo com outros arquivos.

sync
Cria a saída desoptimizada depois de compilar a saída otimizada em vez de em paralelo. Por padrão, o compilador gera uma instância paralela do gerador de código. Esse comutador faz com que eles sejam executados em série. Essa opção é fornecida caso isso se adapte melhor ao seu ambiente de build.

Observações

Esse sinalizador, disponível a partir do Visual Studio versão 17.14 preview 2 de 2022, aplica-se apenas a projetos x64 e deve ser usado com o sinalizador /DYNAMICDEOPTdo vinculador correspondente.

Compilar com /dynamicdeopt gera outros binários que são usados para depuração. Quando você depura uma função otimizada em um arquivo otimizado, o depurador entra no binário alternativo. Isso permite que você depure como se estivesse depurando código não otimizado e ainda obtendo as vantagens de desempenho do código otimizado.

/dynamicdeopt requer:

/DEBUG ou /DEBUG:FULL. Se você não especificar /DEBUGou se especificar /DEBUG:FASTLINK, o vinculador apresentará um erro fatal. Se você especificar /INCREMENTAL, o compilador gerará um aviso e desativará automaticamente /INCREMENTAL. Se você especificar /OPT:ICF, o compilador gerará um aviso de que a experiência de depuração não é tão boa. Isso ocorre porque o ICF pode fazer com que as funções sejam removidas do arquivo alt, o que significa que você não pode intervir nelas.

O IncrediBuild 10.24 dá suporte a compilações com Depuração Dinâmica do C++.
O FastBuild v1.15 dá suporte a builds de Depuração Dinâmica C++.

/dynamicdeopt é incompatível com editar e continuar e o seguinte compilador alterna:

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

Definir essa opção de vinculador no ambiente de desenvolvimento do Visual Studio

Você pode definir essa opção dentro do Visual Studio. Para obter mais informações, consulte Depuração Dinâmica do C++. Há vantagens em definir a opção no Visual Studio porque o MSBuild suprime automaticamente algumas das opções incompatíveis, como /GL e /OPT:ICF. Ele também define a opção de vinculador correspondente (/DYNAMICDEOPT). Você também pode definir a opção na linha de comando.

Definir essa opção do compilador programaticamente

Consulte também

Depuração dinâmica do C++
Opções do compilador MSVC
Sintaxe do compilador do MSVC Command-Line