2010-09-30 11 views
6

Salut J'utilise Visual studio 2010 et je ne peux pas comprendre une chose. Je peux déboguer et définir des points d'arrêt en mode release ainsi que le mode debug. alors alors quelle est la différence entre les deux?debug studio visuel vs mode de sortie

+0

duplication possible de [Debug VS Release dans .net] (http://stackoverflow.com/questions/90871/debug-vs-release-in-net) – nawfal

Répondre

8

La différence réside dans les optimisations que le compilateur applique en mode Release. Vous pouvez placer des points d'arrêt si vous avez des fichiers PDB et, par défaut, ils sont générés même en mode Release.

+0

Vous pouvez donc créer des projets et les tester avec le mode Release dans Visual Studio sans crainte d'ignorer un point d'arrêt ou d'obtenir des informations de débogage? – Rumplin

3

La mémoire nouvellement allouée contient des valeurs arbitraires - tout ce qui s'est passé la dernière fois. Dans les versions de versions, ceci n'est pas modifié. Le débogage construit en VS initialise la mémoire nouvellement allouée à 0xcdcdcdcd pour que l'indicateur soit "non initialisé".

Pourquoi une construction compile-t-elle de la mémoire avec du courrier indésirable pour faciliter le débogage? Les modes de déclenchement ne sont que cela - une surcharge supplémentaire minimale pour les versions réelles.

5

ici est une réponse plus détaillée sur Scott Hanselmans Blog

Mais la racine du problème est que le code est compilé avec plus d'optimisations, vous pouvez toujours effectuer le débogage en raison de la création des fichiers pdb.