2012-05-06 10 views
6

Estoy construyendo mi proyecto de servicio de ventana C# de VS 2010 en modo de lanzamiento. Mi primera oportunidad de sorprenderme fue crear archivos pdb incluso en versión en modo. No pude cargar los símbolos de depuración después de adjuntar el proceso para la depuración.¿Por qué una compilación de proyecto VS 2010 genera archivos pdb cuando se construye en modo Liberar y Depurar?

Mi pregunta es que si tenemos archivos pdb tanto en modo depuración como en versión, entonces ¿por qué hay necesidad de dos modos de compilación?

+0

Pregunta rápida. ¿Qué tipo de proyecto? .NET, C++? – ervinbosenbacher

+0

Registrar en configuración del proyecto-> Construir-> Avanzado-> Configuración avanzada de compilación-> Información de depuración. Creo que si está configurado en pdb-only en modo de lanzamiento, generará los archivos pdb. – ervinbosenbacher

Respuesta

6

Mi pregunta es que si tenemos archivos PDB, tanto en el modo de depuración y liberación entonces ¿por qué existe la necesidad de modo dos compilación

Existen diferencias otro que la generación de PDB entre la depuración y la versión. Si accede a las propiedades de compilación y entra en "Avanzado", se generarán diferentes niveles de información de depuración: completo, solo PDB y ninguno.

Además, existen diferentes niveles de optimización en tiempo de compilación y la presencia de diferentes símbolos de preprocesador (por ejemplo, para que cada Debug.Assert esté presente o ausente).

Por supuesto, también puede tener sus propias variedades de configuración de compilación, con una variedad de opciones.

+0

¿cuál es la diferencia entre Full y solo PDB? –

+1

@Romil: http://msdn.microsoft.com/en-us/library/8cw0bt21(v=vs.80).aspx –

+2

y http://mariangemarcano.blogspot.com/2011/11/visual-studio- debugging-and-remote.html –

2

Existen muchas razones por las que hay un modo de depuración/liberación, no relacionado con la creación de archivos PDB.

VS ejecuta sus programas compilados más rápido en modo de lanzamiento. Además, existen directivas de compilación que pueden cambiar la forma en que se comporta el programa si está en modo depuración frente a versión. Por ejemplo, puede usar directivas de compilación para deshabilitar sus bloques de nivel superior trycatch para que pueda aislar una excepción que se está lanzando a una línea de código específica.

Eso es solo un par de ejemplos. En resumen, el modo de depuración tiene muchos más propósitos que simplemente crear archivos PDB para usted.

1

Puede tener más de dos modos de compilación. Por lo general, la depuración y la versión significan si desea optimizaciones o no. De todos modos, aún puede generar información de depuración, solo un PDB para una versión de lanzamiento no será de mucha ayuda. Las funciones en línea, las variables pueden ser excluidos, etc.

0

Hace poco hice un WinUpdate (20120508) y Visual Studio parecía ser muy lento depuración después con un retraso de 1 minuto después de retardo de compilación a runDebug, a continuación, cuando el programa de depuración salieron, otro retraso de 1 minuto para get controlar nuevamente el estudio visual. Limpié todo, pero no alegría.

Solución: Borré manualmente los archivos * .sdf y * .suo en mi proyecto/solución y los reconstruí. El problema desapareció mágicamente.

No estoy seguro de por qué, pero algo no está sincronizado, está dañado o es incompatible con la actualización y es necesario que desaparezca manualmente.

Cuestiones relacionadas