Как отключить диалоговое окно, которое появляется при выходе из приложения ошибки? "Неизвестная программная исключительная ситуация 0xc0020001"

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

2 ответа

Решение

Самое простое решение с большой вероятностью использовать SetErrorMode (по крайней мере с - SEM_NOGPFAULTERRORBOX) чтобы закрыть любые такие диалоги об ошибках (см. флаги в документах MSDN) и молча завершить процесс.

Другой вариант - установить собственный обработчик исключений верхнего уровня. В XP и новее вы можете использовать векторную обработку исключений. На любой системе, включая те, которые вы можете использовать более новые SetUnhandledExceptionFilter,

Часть V, в частности глава 25 "Windows через C++" Рихтера и Насарре, обсуждает эту тему очень подробно и подробно. Конкретная тема обработчиков исключений WER и верхнего уровня также обсуждается в разделе "Расширенная отладка Windows" (хотя и с другой точки зрения).

Конфигурация Regedit

конфигурация доктора ватсона

Сделайте то же самое как для 64-битной, так и для 32-битной директории regedit и конфигурации dr.watson. После этого напишите:

C:\WINDOWS\System32\drwtsn32.exe -i

C:\WINDOWS\SysWOW64\drwtsn32.exe -i

dr.watson будет работать как отладчик по умолчанию и не будет уведомлять.

Другие вопросы по тегам