Мы находимся в Windows, и мы хотим получить дамп аварийных сообщений (возможно, используя MiniDumpWriteDump
) для всех сценариев, где наше приложение неожиданно завершается.
До сих пор мы определили и установили следующее:
-
SetUnhandledExceptionFilter
для необработанного исключения (Win32, а также "обычных" С++ файлов.) -
_set_invalid_parameter_handler
для обработки неверных аргументов CRT -
_set_abort_behavior
плюс обработчикSIGABRT
для учета вызововabort()
Есть ли что-то, что мы пропустили? (Modulo некоторый код, не легитимно вызывающий ExitProcess
, TerminateProcess
или один из вариантов exit
.)
Отмечу, что этот вопрос здесь ортогонален тому, как получается свалка. Например, если вам нужен аварийный дамп в случае abort
, вы всегда должны использовать _set_abort_behaviour
, потому что иначе прервите только exit
s.
Также я хочу отметить, что в Windows7 +, не устанавливая SetUHEF
и просто устанавливая "correct" параметры дампа WER в реестре часто является жизнеспособным способом.