Estoy intentando depurar un programa que inesperadamente se apaga. Cuando digo "se apaga", quiero decir que en un momento veo todas las ventanas que se muestran, cada una de las cuales muestra todos los datos correctos, y de repente todas las ventanas desaparecen. No hay ningún mensaje que informe algo incorrecto. Así que intenté ejecutar el programa en el depurador con la esperanza de que de alguna manera trampa lo estaba causando el programa para abortar, pero incluso dentro del depurador del programa simplemente termina abruptamente la última línea en el depurador es:.El programa finaliza abruptamente incluso en el depurador: ¿cómo sucedió eso?
The program '[5500] test.exe: Native' has exited with code 0 (0x0).
Mi programa, que es extremadamente grande y extremadamente viejo, tiene muchos autodiagnósticos. Mi sospecha es que tal vez una autoprueba ha fallado y tal vez acabo de llamar a "exit()", olvidándome de abrir un cuadro de diálogo explicando por qué.
Mi que stion ahora es, ¿cómo puedo averiguar de qué punto en el código, mi programa se cerró?
Una de las soluciones es buscar todo el código para las llamadas a funciones como exit() y colocar allí los puntos de corte. En realidad, si tiene llamadas para salir() sin abrir, es un signo de mal diseño: debe tener una función de envoltura que muestre un mensaje y luego llame a exit(). – sharptooth