/dynamicdeopt (Activer le débogage dynamique C++)

Activez le débogage dynamique C++ pour vous permettre de déboguer du code optimisé comme s’il était compilé déoptimisé et pas à pas n’importe où avec la déoptimisation de la fonction à la demande.

Syntaxe

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

Arguments

suffix
Spécifiez l’extension de fichier pour la sortie déoptimisée.

Sans options et test.cpp donnés comme entrée, votre sortie inclut test.obj, test.exeet test.pdb, ainsi que test.alt.obj, test.alt.exeet test.alt.pdb. Ce commutateur modifie le suffixe des artefacts de build binaire non optimisés d’un .alt autre suffixe. Si vous modifiez le suffixe, tous les fichiers doivent utiliser le nouveau suffixe et doivent correspondre au nom passé à l’éditeur de liens à l’aide /dynamicdeopt:suffixde . En règle générale, vous n’utilisez pas ce commutateur, sauf si vous devez éviter les collisions de nom de fichier avec d’autres fichiers.

sync
Génère la sortie déoptimisée après avoir généré la sortie optimisée au lieu d’être en parallèle. Par défaut, le compilateur génère une instance parallèle du générateur de code. Ce commutateur les rend exécutés en série à la place. Ce commutateur est fourni dans le cas où cela convient mieux à votre environnement de build.

Remarques

Cet indicateur, disponible à partir de Visual Studio 2022 version 17.14 Preview 2, s’applique uniquement aux projets x64 et doit être utilisé avec l’indicateur d’éditeur de liens correspondant. /DYNAMICDEOPT

La compilation avec /dynamicdeopt génère d’autres fichiers binaires utilisés pour le débogage. Lorsque vous déboguez une fonction optimisée dans un fichier optimisé, le débogueur passe au fichier binaire de remplacement à la place. Cela vous permet de déboguer comme si vous déboguez du code non optimisé tout en obtenant les avantages en matière de performances du code optimisé.

/dynamicdeopt nécessite :

/DEBUG ou /DEBUG:FULL. Si vous ne spécifiez pas /DEBUGou si vous spécifiez /DEBUG:FASTLINK, l’éditeur de liens génère une erreur irrécupérable. Si vous spécifiez /INCREMENTAL, le compilateur génère un avertissement et désactive automatiquement /INCREMENTAL. Si vous spécifiez /OPT:ICF, le compilateur génère un avertissement indiquant que l’expérience de débogage n’est pas aussi bonne. Cela est dû au fait que L’ICF peut entraîner la suppression des fonctions du fichier de remplacement, ce qui signifie que vous ne pouvez pas les intégrer.

IncrediBuild 10.24 prend en charge les builds de débogage dynamique C++.
FastBuild v1.15 prend en charge les builds de débogage dynamique C++.

/dynamicdeopt est incompatible avec les commutateurs edit-and-continue et les commutateurs de compilateur suivants :

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

Définir cette option d’éditeur de liens dans l’environnement de développement Visual Studio

Vous pouvez définir ce commutateur dans Visual Studio. Pour plus d’informations, consultez Débogage dynamique C++. Il existe des avantages à définir le commutateur dans Visual Studio, car MSBuild supprime automatiquement certains commutateurs incompatibles tels que /GL et /OPT:ICF. Il définit également l’option d’éditeur de liens correspondante (/DYNAMICDEOPT). Vous pouvez également définir le commutateur dans la ligne de commande.

Définir cette option de compilateur par programmation

Voir aussi

Débogage dynamique C++
Options du compilateur MSVC
Syntaxe Command-Line du compilateur MSVC