Tengo un problema del tipo "Schroedinger's Cat" aquí: mi programa (en realidad, el conjunto de pruebas para mi programa, pero un programa de todos modos) se bloquea, pero solo cuando está integrado en el modo de lanzamiento, y solo cuando se inicia desde la línea de comandos . A través de la depuración del hombre de las cavernas (es decir, mensajes de printf () desagradables por todas partes), he determinado el método de prueba donde el código se bloquea, aunque desafortunadamente el bloqueo real parece ocurrir en algún destructor, ya que los últimos mensajes de seguimiento que veo están en otros destructores que se ejecutan limpiamente.
Cuando intento ejecutar este programa dentro de Visual Studio, no se bloquea. Lo mismo ocurre cuando se inicia desde WinDbg.exe. El bloqueo solo ocurre cuando se inicia desde la línea de comandos. Esto está sucediendo en Windows Vista, por cierto, y desafortunadamente no tengo acceso a una máquina XP en este momento para probar.
Sería muy bueno si pudiera hacer que Windows imprima un seguimiento de la pila, o algo más que simplemente terminar el programa como si hubiera salido limpiamente. ¿Alguien tiene algún consejo sobre cómo podría obtener información más significativa aquí y, con suerte, corregir este error?
Editar: El problema fue causado por una matriz fuera de límites, que describo más en esta publicación . ¡Gracias a todos por su ayuda para encontrar este problema!