程序全局异常捕获
2010-08-18 21:46
501 查看
SetUnhandledExceptionFilter(MyUnFilter);
LONG WINAPI MyUnFilter(PEXCEPTION_POINTERS lpExceptionInfo)
{
static int s_SigCount = 0;
DWORD dwExceptCode = lpExceptionInfo->ExceptionRecord->ExceptionCode;
LONG lResult = EXCEPTION_CONTINUE_SEARCH;
if (dwExceptCode == EXCEPTION_ACCESS_VIOLATION)
{
g_runLog.Write("Access violation caught by MyUnFilter, addr=0x%08x", lpExceptionInfo->ExceptionRecord->ExceptionAddress);
++s_SigCount;
// test case to keep this from going on forever (since we're not
// fixing the AV)
if (s_SigCount < 2)
lResult = EXCEPTION_CONTINUE_EXECUTION;
else
lResult = EXCEPTION_EXECUTE_HANDLER;
}
else
{
lResult = EXCEPTION_CONTINUE_SEARCH;
}
return lResult;
}
LONG WINAPI MyUnFilter(PEXCEPTION_POINTERS lpExceptionInfo)
{
static int s_SigCount = 0;
DWORD dwExceptCode = lpExceptionInfo->ExceptionRecord->ExceptionCode;
LONG lResult = EXCEPTION_CONTINUE_SEARCH;
if (dwExceptCode == EXCEPTION_ACCESS_VIOLATION)
{
g_runLog.Write("Access violation caught by MyUnFilter, addr=0x%08x", lpExceptionInfo->ExceptionRecord->ExceptionAddress);
++s_SigCount;
// test case to keep this from going on forever (since we're not
// fixing the AV)
if (s_SigCount < 2)
lResult = EXCEPTION_CONTINUE_EXECUTION;
else
lResult = EXCEPTION_EXECUTE_HANDLER;
}
else
{
lResult = EXCEPTION_CONTINUE_SEARCH;
}
return lResult;
}
相关文章推荐
- 转:如何捕获winform程序全局异常?
- 如何捕获Wince下form程序的全局异常
- Android全局异常处理(捕获异常,不弹出程序崩溃)
- Android 通过Application捕获全局异常,防止程序崩溃退出
- Android全局异常处理(捕获异常,不弹出程序崩溃)
- 为Android程序设置全局的捕获异常,提升用户体验(UncaughtExceptionHandler捕获全局异常)
- Android全局异常处理(捕获异常,不弹出程序崩溃)
- android 程序全局自动捕获异常 专制系统奔溃,异常退出无法找到原因的问题
- Winform 主程序入口中记录并捕获全局异常
- 如何捕获winform程序全局异常?
- 捕获全局异常并重启程序
- Android全局异常处理(捕获异常,不弹出程序崩溃)
- Android 程序错误处理全局处理-捕获全局异常
- winform程序不能同时开启两个应用程序的判断以及捕获全局未处理异常
- 如何捕获winform程序全局异常?(续)
- Android开发之全局异常捕获
- Android程序运行过程中因未捕获异常而异常终止
- 连续捕获程序异常的处理器异常测试方法
- 软件Release版本异常捕获程序(BugReport)
- winform程序未捕获异常解决方法