Программа внезапно заканчивается даже в отладчике - как это случилось? - PullRequest
8 голосов
/ 12 апреля 2010

Я пытаюсь отладить программу, которая неожиданно завершает работу. Когда я говорю «выключается, я имею в виду, что в один момент я вижу все окна, в каждом из которых отображаются все нужные данные, а затем внезапно все окна исчезают. Окно сообщений не сообщает о чем-то неправильном. Поэтому я попытался запустить Программа в отладчике надеется, что она каким-то образом перехватит все, что заставляет программу прерваться, но даже в отладчике программа просто внезапно завершится. Последняя строка в отладчике:

The program '[5500] test.exe: Native' has exited with code 0 (0x0).

Моя программа, которая очень большая и очень старая, имеет много самодиагностики. Я подозреваю, что, возможно, самопроверка не удалась, и, возможно, я просто вызвал «exit ()», забыв всплывающее диалоговое окно, объясняющее почему.

Теперь у меня вопрос: как я могу узнать, с какого места в коде моя программа закрывается?

Ответы [ 2 ]

5 голосов
/ 12 апреля 2010

Установите точку останова на exit() и terminate() (возможно, один вызывает другой, но я не уверен).

4 голосов
/ 12 апреля 2010

Ответ Марсело великолепен. Если по какой-то причине вы не можете взломать exit, установите функцию (не принимает аргументов, возвращает void) с помощью atexit и разбейте ее внутри.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...