diff options
Diffstat (limited to 'sal/osl/w32/signal.cxx')
-rw-r--r-- | sal/osl/w32/signal.cxx | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/sal/osl/w32/signal.cxx b/sal/osl/w32/signal.cxx index 071df170bd84..743d2b2fb8c8 100644 --- a/sal/osl/w32/signal.cxx +++ b/sal/osl/w32/signal.cxx @@ -37,8 +37,6 @@ #include <errorrep.h> #include <systools/win32/uwinapi.h> #include <sal/macros.h> -#include <eh.h> -#include <stdexcept> namespace { @@ -147,52 +145,6 @@ long WINAPI signalHandlerFunction(LPEXCEPTION_POINTERS lpEP) return EXCEPTION_CONTINUE_EXECUTION; } -void win_seh_translator( unsigned nSEHCode, _EXCEPTION_POINTERS* /* pExcPtrs */) -{ - const char* pSEHName = nullptr; - switch( nSEHCode) - { - case EXCEPTION_ACCESS_VIOLATION: pSEHName = "SEH Exception: ACCESS VIOLATION"; break; - case EXCEPTION_DATATYPE_MISALIGNMENT: pSEHName = "SEH Exception: DATATYPE MISALIGNMENT"; break; - case EXCEPTION_BREAKPOINT: /*pSEHName = "SEH Exception: BREAKPOINT";*/ break; - case EXCEPTION_SINGLE_STEP: /*pSEHName = "SEH Exception: SINGLE STEP";*/ break; - case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: pSEHName = "SEH Exception: ARRAY BOUNDS EXCEEDED"; break; - case EXCEPTION_FLT_DENORMAL_OPERAND: pSEHName = "SEH Exception: DENORMAL FLOAT OPERAND"; break; - case EXCEPTION_FLT_DIVIDE_BY_ZERO: pSEHName = "SEH Exception: FLOAT DIVIDE_BY_ZERO"; break; - case EXCEPTION_FLT_INEXACT_RESULT: pSEHName = "SEH Exception: FLOAT INEXACT RESULT"; break; - case EXCEPTION_FLT_INVALID_OPERATION: pSEHName = "SEH Exception: INVALID FLOAT OPERATION"; break; - case EXCEPTION_FLT_OVERFLOW: pSEHName = "SEH Exception: FLOAT OVERFLOW"; break; - case EXCEPTION_FLT_STACK_CHECK: pSEHName = "SEH Exception: FLOAT STACK_CHECK"; break; - case EXCEPTION_FLT_UNDERFLOW: pSEHName = "SEH Exception: FLOAT UNDERFLOW"; break; - case EXCEPTION_INT_DIVIDE_BY_ZERO: pSEHName = "SEH Exception: INTEGER DIVIDE_BY_ZERO"; break; - case EXCEPTION_INT_OVERFLOW: pSEHName = "SEH Exception: INTEGER OVERFLOW"; break; - case EXCEPTION_PRIV_INSTRUCTION: pSEHName = "SEH Exception: PRIVILEGED INSTRUCTION"; break; - case EXCEPTION_IN_PAGE_ERROR: pSEHName = "SEH Exception: IN_PAGE_ERROR"; break; - case EXCEPTION_ILLEGAL_INSTRUCTION: pSEHName = "SEH Exception: ILLEGAL INSTRUCTION"; break; - case EXCEPTION_NONCONTINUABLE_EXCEPTION: pSEHName = "SEH Exception: NONCONTINUABLE EXCEPTION"; break; - case EXCEPTION_STACK_OVERFLOW: pSEHName = "SEH Exception: STACK OVERFLOW"; break; - case EXCEPTION_INVALID_DISPOSITION: pSEHName = "SEH Exception: INVALID DISPOSITION"; break; - case EXCEPTION_GUARD_PAGE: pSEHName = "SEH Exception: GUARD PAGE"; break; - case EXCEPTION_INVALID_HANDLE: pSEHName = "SEH Exception: INVALID HANDLE"; break; -// case EXCEPTION_POSSIBLE_DEADLOCK: pSEHName = "SEH Exception: POSSIBLE DEADLOCK"; break; - default: pSEHName = "Unknown SEH Exception"; break; - } - - if( pSEHName) - throw std::runtime_error( pSEHName); -} - -} - -void onErrorReportingChanged(bool bEnable) -{ -#if defined _MSC_VER - if( !bEnable) // if the crash reporter is disabled - { - // fall back to handle Window's SEH events as C++ exceptions - _set_se_translator( win_seh_translator); - } -#endif } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |