Partager via


/dynamicdeopt (activer le débogage dynamique C++) (préversion)

Important

Le commutateur du compilateur /dynamicdeopt est actuellement en préversion. Ces informations concernent une fonctionnalité de préversion qui peut être sensiblement modifiée avant la mise en production. Microsoft n’offre aucune garantie, exprimée ou implicite, en ce qui concerne les informations fournies ici.

Activez débogage dynamique C++ (préversion) afin de pouvoir déboguer du code optimisé comme s’il a été compilé déoptimisé et pas à pas n’importe où avec la désoptimisation 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 vous permet de modifier le suffixe des artefacts de build binaire non optimisés de .alt vers autre chose. 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 de /dynamicdeopt:suffix (préversion). 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 que vous avez.

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 d’aperçu, 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 la modification et la poursuite et les commutateurs du 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++ (préversion). 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++ (préversion)
Options du compilateur MSVC
Syntaxe de la ligne de commande du compilateur MSVC