2010-09-30 24 views
6

Hola, estoy usando Visual Studio 2010 y no puedo entender una cosa. Puedo depurar y establecer puntos de interrupción en modo de lanzamiento, así como en modo de depuración. Entonces, ¿cuál es la diferencia entre los dos?depuración visual studio vs versión modo

+0

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

Respuesta

8

La diferencia son las optimizaciones que el compilador aplica en el modo de lanzamiento. Puede colocar puntos de interrupción si tiene archivos PDB y, de forma predeterminada, se generan incluso en modo Release.

+0

Para que pueda crear proyectos y probarlos con el modo Release en Visual Studio sin miedo a saltear un punto de interrupción o no obtener información de depuración – Rumplin

3

La memoria recientemente asignada contiene valores arbitrarios, sea lo que sea que haya pasado la última vez allí. En las versiones de lanzamiento, esto no se modifica. Las compilaciones de depuración en VS inicializan la memoria recién asignada a 0xcdcdcdcd para marcar como "no inicializada".

¿Por qué una versión de compila memoria de relleno con basura para facilitar la depuración? Los modos de lanzamiento son solo eso: una sobrecarga extra mínima para las versiones reales.

5

aquí es una respuesta más detallada sobre Scott Hanselmans Blog

Pero la raíz del problema es que el código se compila con optimizaciones más, todavía se puede depurar debido a la creación de los archivos PDB.

Cuestiones relacionadas