SetUnhandledExceptionFilter
SetUnhandledExceptionFilter 设置未捕获异常处理
通常windows程序长时间运行,会发生各种问题,例如访问异常,内存溢出,堆栈破坏等。
这时候通常希望程序自己能增加处理,而不是依靠系统弹出错误提示框(灰常不友好).
//For proc exception
LONG WINAPI ExpFilter(struct _EXCEPTION_POINTERS *pExp)
{
ACE_DEBUG((LM_ERROR, "Exception code : %X, address: %x Exit!\n",
pExp->ExceptionRecord->ExceptionCode,
pExp->ExceptionRecord->ExceptionAddress)); MessageBox(NULL, "Exception", "提示", MB_OK);
//::exit(-); return EXCEPTION_EXECUTE_HANDLER;
} //Test exception
// Exception code c0000374
//RaiseException(0xc0000374, 0, 0, NULL); // Exception code c0000005
// int* p1 = NULL;
// *p1 = 99;
//For exception in main
::SetUnhandledExceptionFilter(ExpFilter);
PS: The RaiseException function raises an exception in the calling thread.
MSDN中有关SetErrorMode的详细描述,可以这样调用。
//The system does not display a message box when it fails to find a file. Instead, the error is returned to the calling process. SetErrorMode(SEM_NOOPENFILEERRORBOX)
参考http://blog.csdn.net/woshinia/article/details/10212387
SetUnhandledExceptionFilter的更多相关文章
- VS2005中SetUnhandledExceptionFilter函数应用
很多软件通过设置自己的异常捕获函数,捕获未处理的异常,生成报告或者日志(例如生成mini-dump文件),达到Release版本下追踪Bug的目的.但是,到了VS2005(即VC8),Microsof ...
- 使用SetUnhandledExceptionFilter转储程序崩溃时内存DMP注意事项
使用代码手工生成dmp文件 SetUnhandledExceptionFilter 为每个线程设置SetUnhandledExceptionFilter(MyCallBack),(必须在每个线程中启动 ...
- 使用SetUnhandledExceptionFilter转储程序崩溃时内存DMP .
关于程序崩溃时转储内存DMP,可以设置注册表,使程序崩溃时自动转储内存DMP,见程序崩溃时利用注册表自动转储内存DMP.本文要介绍的是使用SetUnhandledExceptionFilter函数在程 ...
- [转]window下使用SetUnhandledExceptionFilter捕获让程序的崩溃
简单使用SetUnhandledExceptionFilter()函数让程序优雅崩溃 虽然是大公司的产品,QQ它还是会在我们的折腾下崩溃的,但是它总是崩溃的很优雅,还要弹出自己的对话框来结束.并且发送 ...
- window下使用SetUnhandledExceptionFilter捕获让程序的崩溃(转)
简单使用SetUnhandledExceptionFilter()函数让程序优雅崩溃 虽然是大公司的产品,QQ它还是会在我们的折腾下崩溃的,但是它总是崩溃的很优雅,还要弹出自己的对话框来结束.并且发送 ...
- Breakpad Google的crash捕获、抓取开源库
简介: Breadpad为google chrominum项目下用于处理dump的一套工具:内部采用跨平台方式实现捕获.生成.解析与平台无关的dump,便于统一处理:支持进程内与进程外捕获,当为进程外 ...
- mingw32 捕获异常的4种方法
------------------------------------------------------------------------------- 1. 利用 windows 的API S ...
- C++库(Google Breakpad)
Google Breakpad是什么? 一个开源的多平台崩溃报告系统. Google breakpad是一个非常实用的跨平台的崩溃转储和分析模块,它支持Windows,Linux和Mac和Solari ...
- Google之Chromium浏览器源码学习——base公共通用库(四)
本文将介绍debug调试相关的内容,包括调试器.性能分析.堆跟踪.跟踪事件等: alias.h:Alias函数,提供防止载微软的编译器优化某参数变量的操作,内部通过#pragma optimize(& ...
随机推荐
- javascript数组属性及方法
数组元素的添加 1. arrayt.splice(index,howmany,item1,.....,itemX) 向/从数组中添加/删除项目,然后返回被删除的项目 2. array.unshift( ...
- 构建第一个Spring Boot2.0应用之集成mybatis(六)
一.环境: IDE:IntelliJ IDEA 2017.1.1 JDK:1.8.0_161 Maven:3.3.9 springboot:2.0.2.RELEASE 二.步骤 方式一:利用配置文件配 ...
- Python学习-用户输入和字符串拼接
用户输入和字符串拼接 #用户输入和字符串拼接username=input("username:")age=int(input("Age:")) #转换整数型 ...
- 用rem实现h5页面的编写
一 静态页面的布局 将这段代码加到script中 (function(doc, win) { var docEl = doc.documentElement, resizeEvt = 'orienta ...
- shiro无法进入授权的方法org.crazycake.shiro.exception.PrincipalInstanceException: class java.util.HashMap must has getter for field: id
rg.crazycake.shiro.exception.PrincipalInstanceException: class java.util.HashMap must has getter for ...
- 修改CAS实现控制某个用户在定义的时间内登录次数
思想: 在数据库增加字段 1.登录次数 2.登录失败时间(类型TimeStamp) 当一个用户进来认证的时候当登录失败的时候更新登录次数 和最后登录失败的时间. 主要是在登录成功或者失败的时候判断时 ...
- hdu-1166 敌兵布阵---树状数组模板
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1166 题目大意: 维护动态的区间和,单点更新,就是模板题 #include<iostream& ...
- 【BZOJ2730】[HNOI2012] 矿场搭建(找割点)
点此看题面 大致题意: 一张无向图,要求你在去掉任意一个节点之后,剩余的每个节点都能到达一个救援出口,问至少需要几个救援出口. 第一步:\(Tarjan\)求割点 首先,我们要跑一遍\(Tarjan\ ...
- windows下安装python的包管理工具pip,scikit-learn
打开https://pip.pypa.io/en/latest/installing.html#python-os-support 下载pip-get.py 进入python,执行pip-get.py ...
- 使用 RuPengGame游戏引擎包 建立游戏窗体 如鹏游戏引擎包下载地址 Thread Runnable 卖票实例
package com.swift; import com.rupeng.game.GameCore;//导入游戏引擎包 //实现Runnable接口 public class Game_RuPeng ...