void CrashHandlerPOSIX::unregisterCrashHandlers() { unregisterThreadCrashHandlers(); removeCrashHandlers(m_pPreviousCrashHandlers); delete m_pPreviousCrashHandlers; m_pPreviousCrashHandlers = 0; }
void CrashHandlerWindows::unregisterCrashHandlers() { unregisterThreadCrashHandlers(); SetUnhandledExceptionFilter(m_pPreviousCrashHandlers->m_SEHHandler); _set_purecall_handler(m_pPreviousCrashHandlers->m_pureCallHandler); _set_new_handler(m_pPreviousCrashHandlers->m_newHandler); _set_invalid_parameter_handler(m_pPreviousCrashHandlers->m_invalidParameterHandler); signal(SIGABRT, m_pPreviousCrashHandlers->m_SIGABRTHandler); signal(SIGINT, m_pPreviousCrashHandlers->m_SIGINTHandler); signal(SIGTERM, m_pPreviousCrashHandlers->m_SIGTERMHandler); if(!m_pPreviousCrashHandlers->m_threadExceptionHandlers.empty()) LogWarning << "Some threads crash handlers are still registered."; delete m_pPreviousCrashHandlers; m_pPreviousCrashHandlers = 0; }