Какие действия мне нужно предпринять, чтобы получить аварийный дамп во ВСЕХ сценариях ошибок?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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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