2011-10-25 6 views
5

Estoy evaluando/optimizando una aplicación C++ lenta, y al tomar algunos stackshots descubrí que la versión de lanzamiento de mi aplicación usa el montón de depuración, ya que parte de la pila vestigios hallados se indican:VC++ en Visual Studio 2010: versiones de versiones usando el montón de depuraciones

ntdll.dll!string "Enabling heap debug options\n"() + 0x11056 bytes 

esta es una aplicación de 64 bits que se ejecuta en Windows 7. veo otros dos o tres quejas sobre este problema en exactamente el mismo entorno en línea, pero sin ningún tipo de respuestas.

¿Alguien tiene una pista de por qué Windows o Visual Studio usarían el montón de depuración para un proyecto C++ de lanzamiento de versión?

+0

+1 para usar stackshots. –

Respuesta

6

The debug heap is used when a program is run under debugger (los perfiladores se manifiestan a menudo como depuradores). Para omitirlo, el programa debe iniciarse sin depuración, luego el depurador debe estar conectado a un proceso en ejecución.

+0

Gracias. No sé cómo nunca lo supe, aunque admito que no veo el beneficio de forzar una aplicación de lanzamiento para usar el montón de depuración, no es el punto de lanzamiento para imitar lo más fielmente posible el mundo real. escenarios? –

+0

@Mahmoud Al-Qudsi: Esto realmente no es tan conocido, yo también estaba sorprendido de saberlo. Bueno, depurar el montón facilita la depuración y el depurador facilita la depuración, así que supongo que decidieron combinarlo. Tampoco lo hace Visual Studio ni nada por el estilo: lo hace Windows. – sharptooth

Cuestiones relacionadas