web-dev-qa-db-fra.com

Quelle est la différence entre les modes Release et Debug dans Visual Studio?

Duplicate possible:
Debug vs. version dans .NET
Différence Debug/Release

Quelle est la différence entre les modes Release et Debug dans Visual Studio lors de la construction d'un projet?

108
Cute

Cela dépend de la langue que vous utilisez, mais en général, ce sont deux configurations distinctes, chacune avec ses propres paramètres. Par défaut, Debug inclut des informations de débogage dans les fichiers compilés (permettant un débogage facile), tandis que les optimisations de Release sont généralement activées.

En ce qui concerne la compilation conditionnelle, ils définissent chacun différents symboles qui peuvent être vérifiés dans votre programme, mais ce sont des macros spécifiques à la langue.

80
Tal Pressman

Debug et Release ne sont que des étiquettes pour différents configurations de la solution . Vous pouvez en ajouter d'autres si vous le souhaitez. Un projet sur lequel j’ai travaillé a eu un projet appelé "Debug Internal" qui a été utilisé pour activer les fonctions d’édition internes de l’application. Vous pouvez voir cela si vous allez à Configuration Manager... (c'est sur le menu Build). Vous pouvez trouver plus d'informations sur MSDN Library sous Boîte de dialogue Configuration Manager .

Chaque configuration de solution consiste alors en un ensemble de configurations de projet . Encore une fois, ce ne sont que des étiquettes, cette fois pour un ensemble de paramètres pour votre projet. Par exemple, nos projets de bibliothèque C++ ont des configurations de projet appelées "Debug", "Debug_Unicode", "Debug_MT", etc.

Les paramètres disponibles dépendent du type de projet que vous construisez. Pour un projet .NET, c'est un ensemble assez petit: #defines et quelques autres choses. Pour un projet C++, vous avez une plus grande variété de choses à modifier.

En général, cependant, vous utiliserez "Déboguer" lorsque vous souhaitez que votre projet soit généré avec l'optimiseur désactivé, et lorsque vous souhaitez que le débogage/les informations de symbole complètes soient inclus dans votre construction (généralement dans le fichier .PDB). Vous utiliserez "Libérer" quand vous voulez que l'optimiseur soit activé et quand vous ne pas voulez que toutes les informations de débogage soient incluses.

109
Roger Lipscombe

La principale différence réside dans la compilation, en mode débogage, de fichiers pdb permettant le débogage (vous pouvez ainsi parcourir le code lors de son exécution). Cela signifie cependant que le code n'est pas autant optimisé.

20
Tetraneutron