Как отключить диалоговое окно, которое появляется при выходе из приложения ошибки? "Неизвестная программная исключительная ситуация 0xc0020001"
Я получаю сообщение об ошибке в моем модульном тесте, в результате чего происходит постоянная интеграция TeamCity Как я могу сделать ошибку без головы? Исправление ошибки - отдельная проблема, пожалуйста, не говорите мне это.
2 ответа
Самое простое решение с большой вероятностью использовать SetErrorMode
(по крайней мере с - SEM_NOGPFAULTERRORBOX
) чтобы закрыть любые такие диалоги об ошибках (см. флаги в документах MSDN) и молча завершить процесс.
Другой вариант - установить собственный обработчик исключений верхнего уровня. В XP и новее вы можете использовать векторную обработку исключений. На любой системе, включая те, которые вы можете использовать более новые SetUnhandledExceptionFilter
,
Часть V, в частности глава 25 "Windows через C++" Рихтера и Насарре, обсуждает эту тему очень подробно и подробно. Конкретная тема обработчиков исключений WER и верхнего уровня также обсуждается в разделе "Расширенная отладка Windows" (хотя и с другой точки зрения).
Сделайте то же самое как для 64-битной, так и для 32-битной директории regedit и конфигурации dr.watson. После этого напишите:
C:\WINDOWS\System32\drwtsn32.exe -i
C:\WINDOWS\SysWOW64\drwtsn32.exe -i
dr.watson будет работать как отладчик по умолчанию и не будет уведомлять.