У меня возникли некоторые трудности с определением того, что вызывает завершение процесса. У меня есть точка останова в каком-то коде выключения, который я отлаживаю, но после взлома отладчика в точке останова и выполнения одного шага весь процесс немедленно завершается. Каждый поток сообщает код выхода -1 в окне вывода. В это время в процессе находится большое количество потоков, а кодовая база довольно велика, что затрудняет поиск виновника.
Я попытался установить функцию std::atexit
, но это не помогло ударять. Я также пытался переопределить SetUnhandledExceptionFilter
< /a>, если это вызвано сбоем, а также не попало. В проекте отключены исключения (#define _HAS_EXCEPTIONS=0
), поэтому я не могу вызвать std::set_terminate
или std::set_unexpected
.
Есть ли другой способ определить, что вызывает выход процесса? Какой-то вариант сломать отладчик, когда процесс вот-вот завершится?
#define
. Так чтоDebug->Windows->Exception Settings
может быть полезным. - person KonstantinL   schedule 14.09.2017main
уже есть блок__try/__finally
, а блок__finally
не попадает. - person MuertoExcobito   schedule 14.09.2017