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(& ...
 
随机推荐
- 【干货】Html与CSS入门学习笔记12-14【完】
			
十二.HTML5标记 现代HTML html5新增的元素:header nav footer aside section article time 这些新增元素使页面结构更清晰,取代<div i ...
 - 【精华】9张思维导图带你学习Javascript
			
转自:ChokCoco(http://www.cnblogs.com/coco1s/p/3953653.html) 学习的道路就是要不断的总结归纳,好记性不如烂笔头,so,下面将po出8张javasc ...
 - 《Python高效开发实战》实战演练——基本视图3
			
在完成Django项目和应用的建立后,即可以开始编写网站应用代码,这里通过为注册页面显示一个欢迎标题,来演示Django的路由映射功能. 1)首先在djangosite/app/views.py中建立 ...
 - tcpick
			
tcpick 是一款基于文本的嗅探器,能追踪,重组和重排tcp流.
 - 实战:ADFS3.0单点登录系列-ADFS3.0安装配置
			
本文为系列第三章,主要讲下ADFS3.0的安装和配置.本文和前面的文章是一个系列,因此有些地方是有前后关联,比如本文中使用的通配符证书就是第二篇讲解的,因此需要连贯的进行阅读. 全文目录如下: 实战: ...
 - 如何使用cPanel管理域名和数据库
			
cPanel是一个基于web的基于web的控制面板,它简化了许多常见的系统管理任务,如网站创建.数据库部署和管理等.本指南向您展示了如何使用cPanel用户帐户管理域和数据库.所有这些指令都与位于端口 ...
 - 如何在SAP云平台上使用MongoDB服务
			
首先按照我这篇文章在SAP云平台上给您的账号分配MongboDB服务:如何在SAP云平台的Cloud Foundry环境下添加新的Service 然后从这个链接下载SAP提供的例子程序. 1. 使用命 ...
 - World Wind Java开发之一(转)
			
http://blog.csdn.net/giser_whu/article/details/40477235 参照<World wind Java三维地理信息系统开发指南随书光盘>以及官 ...
 - POJ - 3685 Matrix
			
二分kth,答案满足的条件为:m ≤ 小于等于x的值数cntx.x和cntx单调不减,随着x增大,条件成立可表示为:0001111. 本地打一个小型的表可以发现列编号j固定时候,目标函数f(i,j)似 ...
 - STM32启动流程
			
启动文件主要工作: . 设置堆栈指针SP=_initial_sp . 设置PC指针=Reset_Handler . 配置系统时钟 . 配置外部SRAM用于程序变量等数据存储(可选) . 调用C库中的_ ...