Какие действия мне нужно предпринять, чтобы получить аварийный дамп во ВСЕХ сценариях ошибок?C++

Программы на C++. Форум разработчиков
Anonymous
Какие действия мне нужно предпринять, чтобы получить аварийный дамп во ВСЕХ сценариях ошибок?

Сообщение Anonymous »

Мы работаем в Windows и хотим получить аварийный дамп (возможно, с помощью MiniDumpWriteDump) для всех сценариев, в которых наше приложение неожиданно завершает работу.

На данный момент мы определили и настроили следующее:
  • Код: Выделить всё

    SetUnhandledExceptionFilter
    для необработанного исключения (Win32, а также «обычных» C++).
  • Код: Выделить всё

    _set_invalid_parameter_handler
    для обработки недопустимых аргументов CRT
  • Код: Выделить всё

    _set_abort_behavior
    плюс обработчик SIGABRT для учета вызовов abort()
Есть ли что-нибудь, что мы пропустили? (По модулю некоторый код нелегитимно вызывает ExitProcess, TerminateProcess или один из вариантов выхода.)



Отмечу, что этот вопрос здесь ортогонален тому, как затем получается аварийный дамп. Например, если вам нужен аварийный дамп в случае прерывания, вы всегда должны использовать _set_abort_behaviour, потому что в противном случае для прерывания просто выйдите изs.

Я также отмечу, что в Windows7+ не устанавливать SetUHEF, а просто установить «правильные» настройки дампа WER в реестре часто является жизнеспособным способом.

Подробнее здесь: https://stackoverflow.com/questions/135 ... -scenarios

Вернуться в «C++»