2023年12月17日发(作者:)
hFile, MiniDumpNormal, excpInfo ? &eInfo : NULL, NULL, NULL); } ::CloseHandle(hFile);
} } if( hDll ) ::FreeLibrary(hDll);
return retval;}
void CSE_Exception::InitSEException(){ _set_se_translator( CSE_Exception::trans_func );}
void CSE_Exception::_DumpCallStack(){ __try { __try { RaiseException(1, 0, 0, NULL); } __finally { } } __except(_DbgDumpError(GetExceptionInformation(), _T("T")), EXCEPTION_CONTINUE_EXECUTION) { }}
void CSE_Exception::trans_func( unsigned int uSENum, _EXCEPTION_POINTERS* pExp ){#define SE_BUF_SIZE 250 TCHAR pszBuf[SE_BUF_SIZE+2];
_DbgDumpError(pExp, _T("e")); switch(uSENum) { case EXCEPTION_ACCESS_VIOLATION: _sntprintf(pszBuf, SE_BUF_SIZE, _T("Access Violation: IP: 0xX %s Address: 0xX"), break; case EXCEPTION_INT_DIVIDE_BY_ZERO: _sntprintf(pszBuf, SE_BUF_SIZE, _T("INT_DIVIDE_BY_ZERO")); break; case EXCEPTION_FLT_DIVIDE_BY_ZERO: _sntprintf(pszBuf, SE_BUF_SIZE, _T("FLT_DIVIDE_BY_ZERO")); break; case EXCEPTION_ILLEGAL_INSTRUCTION: _sntprintf(pszBuf, SE_BUF_SIZE, _T("ILLEGAL_INSTRUCTION")); break; case EXCEPTION_PRIV_INSTRUCTION: _sntprintf(pszBuf, SE_BUF_SIZE, _T("EXCEPTION_PRIV_INSTRUCTION")); break; case EXCEPTION_STACK_OVERFLOW: _sntprintf(pszBuf, SE_BUF_SIZE, _T("EXCEPTION_STACK_OVERFLOW")); pExp->ExceptionRecord->ExceptionAddress, pExp->ExceptionRecord->ExceptionInformation[0]?_T("Write"):_T("Read"), pExp->ExceptionRecord->Exce


发布评论