2010-09-18 53 views
5

Estoy usando Visual Studio 2008. No necesito depurar algunas DLL en mi proyecto, entonces ¿puedo desactivar la carga de símbolos al depurar un programa de Visual C++? ¿Ayuda a que el tiempo de inicio sea más rápido cuando se depura?Cómo deshabilitar la carga de símbolos al depurar un programa de Visual C++?

Los símbolos son todos locales, por lo que no tengo esos problemas de carga lenta, solo quiero hacer que la depuración sea más rápida.

Por ejemplo, estoy usando bibliotecas Qt, cuando pulso "Iniciando la depuración", la ventana de resultados muestra que los símbolos para las bibliotecas Qt están cargados. Si VS puede dejar de cargar esos símbolos, el tiempo de inicio de depuración debería ser más rápido. Por supuesto, todavía quiero VS para cargar el símbolo de mi ejecutable.

Respuesta

0

No estoy seguro de lo que quiere decir con 'startup'. Supongo que estás hablando sobre el lanzamiento de la aplicación real. El momento de iniciar la aplicación de destino es costoso independientemente del modo en que lo ejecute. Puede ser menos en Release, pero eso será insignificante.

Desactivar todas las rutas de símbolos como se menciona en la otra solución es una opción viable. Sin embargo, no estoy seguro de por qué está depurando si no desea símbolos para su aplicación lanzada. Sin los símbolos de las aplicaciones, no podrá ver dónde se encuentra en el código fuente cuando está depurando.

Si está buscando una experiencia de depuración más rápida, puede usar WinDbg. Viene con Windows SDK pero también se puede descargar por separado. Si es una interfaz de usuario más rápida que Visual Studio, es mucho más engorrosa si está más cómodo con una GUI. WinDbg usa comandos para realizar casi todas las tareas, pero puede realizar grandes depuraciones y es más rápido en muchos casos en comparación con Visual Studio. En el caso de que desee depurar C++ \ CLI o cualquier aplicación administrada (por ejemplo, C#), me quedaría con Visual Studio. Hay una extensión en WinDbg llamada SOS, pero requiere una experiencia de depuración avanzada para usar correctamente.

+0

Es improbable que la ganancia en el rendimiento del depurador mediante el uso de WinDbg supere los beneficios de productividad para OP de continuar utilizando el IDE completo. WinDbg tiene su lugar, todavía lo uso para la depuración post mortem de errores desagradables en código nativo como desbordamiento o corrupción de pila, donde el IDE levanta las manos o explota por completo, pero en el 99% de los casos, VS estará bien para C++ nativo como así como el código administrado. –

+0

Me refiero a la hora de inicio al presionar "Iniciar la depuración" en Visual Studio. Quiero depurar mi aplicación, pero no las DLL que carga, por ejemplo, las bibliotecas Qt. Tal vez debería intentar usar la versión de lanzamiento de las bibliotecas cuando estoy depurando. – fxam

+0

Si desea reducir el tiempo de inicio, elimine los símbolos de la biblioteca en cuestión. En este caso, los archivos de símbolos (pdbs) probablemente estén justo al lado de los binarios de la biblioteca Qt. Quítelos y no serán cargados. El tipo de compilación de los binarios no aumentará el tiempo de inicio de depuración en gran medida. – linuxuser27

18

Acabo de enterarme de que Visual Studio 2010 realmente hace lo que quiero.

cargar sólo el símbolo de su archivo ejecutable, sin cargar otros símbolos (por ejemplo: DLL):

  1. vaya a Herramientas-> Opciones-> Debugging-> Símbolos
  2. Haga clic en "módulos Sólo especificados "
  3. Borrar 'símbolos de carga Siempre situados junto a los módulos'
  4. Haga clic en 'Especificación de módulos'
  5. Haga clic en el nuevo icono
  6. Introduzca su exe cutable nombre de archivo (por ejemplo: mi-impresionante-app.exe)

también encontraron que Visual Studio 2010 parece funcionar mejor que Visual Studio 2008 al depurar. Al menos, el diseño de IDE cambia más rápido cuando se detiene la depuración.

+3

+1 Buena forma de hacerlo. – linuxuser27

+0

Finalmente algo que funciona. El paso 3 es muy importante. – mathiasfk

Cuestiones relacionadas