Jeśli chcesz złapać wszystkie awarie masz zrobić więcej niż tylko: SetUnhandledExceptionFilter
Chciałbym również ustawić obsługi przerwaniu, przewodnik purecall, nieoczekiwane, zniesienia, i nieważne procedury obsługi parametrów.
#include <signal.h>
inline void signal_handler(int)
{
terminator();
}
inline void terminator()
{
int*z = 0; *z=13;
}
inline void __cdecl invalid_parameter_handler(const wchar_t *, const wchar_t *, const wchar_t *, unsigned int, uintptr_t)
{
terminator();
}
A w głównym umieścić to:
signal(SIGABRT, signal_handler);
_set_abort_behavior(0, _WRITE_ABORT_MSG|_CALL_REPORTFAULT);
set_terminate(&terminator);
set_unexpected(&terminator);
_set_purecall_handler(&terminator);
_set_invalid_parameter_handler(&invalid_parameter_handler);
Powyższy wyśle wszystkie awarie do nieobsługiwany obsługi wyjątków.