软件Release版本异常捕获程序(BugReport)
2011-12-05 10:17
239 查看
标签:BugReport Release 异常捕获
一.设计目的
由于很多的软件产品,会不时的遇到一些异常崩溃的情况,而有时候,这个问题又不时总能重现,导致开发人员无法跟进此Bug;另一方面,在我们的软件产品发布出去之后,客户在使用过程中,也会遇到一些这样的情况,而一旦这样的情况发生之后,软件会毫不犹豫的弹出Windows错误并无情的结束程序。本程序的设计的目的就是为了解决这样的问题,在软件出问题的情况下,记录下发生的异常的详细信息,同时提供更为友好的用户界面,由用户自由的选择是否将记录下来的异常的信息寄给我们。接下来,我们只要根据用户提供的异常信息,分析Bug,并解决它!
二.原理
设置自己的最终的Exception Handle,所有未捕获的异常发生时,都会调用到这里,在这里,记录下当前的一些环境信息和异常的信息。
LONG WINAPI UnhandledExceptionFilter(
PEXCEPTION_POINTERS pExceptionInfo
)
{
// 记录下详细的异常信息和当前的环境信息
......
}
SetUnhandledExceptionFilter(UnhandledExceptionFilter)
三.实现
该程序由BugReport.dll和BugReport.exe组成。BugReport.dll实现在异常发生之后,将异常相关的信息捕抓到文件BugDetail.dat文件中,之后启动BugReport.exe,传入参数BugDetail.dat的路径,由BugReport.exe提供友好的界面给用户,并提供用户选择是否将该文件寄给软件的维护人员。
BugReport.dll :
详细的实现过程见源码。
四.使用
本程序提供3个文件:BugReport.dll,BugReport.exe,LoadBugReport.h .
1.新建工程
2.Include LoadBugReport.h
3.将BugReport.dll,BugReport.exe复制到生成文件的相同目录(也可不用,不过不同目录,早Load时,参数传入路径)
4. 加载&启动
CLoadBugReport::Instance().LoadLibrary();
CLoadBugReport::Instance().BootReport();
5. 完成,这时候,如果程序中出现未捕获的异常,将运行BugReport.exe。
五.测试界面
一旦程序异常,将弹出:
用户点击“发送”,即可将异常信息寄到相应的位置,此功能没有实现,之后根据相应的需求来实现该功能。
用户可以点击“点击查看详情”,将显示:
附件下载:
BugReport
转自http://wangzai9931.blog.51cto.com/168627/164084
一.设计目的
由于很多的软件产品,会不时的遇到一些异常崩溃的情况,而有时候,这个问题又不时总能重现,导致开发人员无法跟进此Bug;另一方面,在我们的软件产品发布出去之后,客户在使用过程中,也会遇到一些这样的情况,而一旦这样的情况发生之后,软件会毫不犹豫的弹出Windows错误并无情的结束程序。本程序的设计的目的就是为了解决这样的问题,在软件出问题的情况下,记录下发生的异常的详细信息,同时提供更为友好的用户界面,由用户自由的选择是否将记录下来的异常的信息寄给我们。接下来,我们只要根据用户提供的异常信息,分析Bug,并解决它!
二.原理
设置自己的最终的Exception Handle,所有未捕获的异常发生时,都会调用到这里,在这里,记录下当前的一些环境信息和异常的信息。
LONG WINAPI UnhandledExceptionFilter(
PEXCEPTION_POINTERS pExceptionInfo
)
{
// 记录下详细的异常信息和当前的环境信息
......
}
SetUnhandledExceptionFilter(UnhandledExceptionFilter)
三.实现
该程序由BugReport.dll和BugReport.exe组成。BugReport.dll实现在异常发生之后,将异常相关的信息捕抓到文件BugDetail.dat文件中,之后启动BugReport.exe,传入参数BugDetail.dat的路径,由BugReport.exe提供友好的界面给用户,并提供用户选择是否将该文件寄给软件的维护人员。
BugReport.dll :
详细的实现过程见源码。
四.使用
本程序提供3个文件:BugReport.dll,BugReport.exe,LoadBugReport.h .
1.新建工程
2.Include LoadBugReport.h
3.将BugReport.dll,BugReport.exe复制到生成文件的相同目录(也可不用,不过不同目录,早Load时,参数传入路径)
4. 加载&启动
CLoadBugReport::Instance().LoadLibrary();
CLoadBugReport::Instance().BootReport();
5. 完成,这时候,如果程序中出现未捕获的异常,将运行BugReport.exe。
五.测试界面
一旦程序异常,将弹出:
用户点击“发送”,即可将异常信息寄到相应的位置,此功能没有实现,之后根据相应的需求来实现该功能。
用户可以点击“点击查看详情”,将显示:
附件下载:
BugReport
转自http://wangzai9931.blog.51cto.com/168627/164084
相关文章推荐
- 软件Release版本异常捕获程序(BugReport)
- 软件Release版本异常捕获程序(BugReport)
- 软件Release版本异常捕获程序(BugReport)
- release版本程序调用libvlc接口出现异常
- release版本程序调用libvlc接口出现异常
- 反汇编定位release版本程序bug
- Windows系统上release版本程序bug跟踪解决方案(1)-日志记录
- release版本程序调用libvlc接口出现异常 .
- release版本程序调用libvlc接口出现异常
- release版本程序调用libvlc接口出现异常
- Windows系统上release版本程序bug跟踪解决方案-.dmp文件。
- 转 C#WinForm程序异常退出的捕获、继续执行与自动重启
- 编译成release版本与debug版本的程序有何执行上的区别?
- 通过软件程序消除单片机由外界干扰产生的异常复位的影响(基于STM8S105单片机)
- 如何调试程序的 Release 版本
- 捕获程序异常并输出Log到屏幕上
- 利用Application_Error捕获ASP.NET程序所有异常
- 程序异常总是捕获不到未处理异常问题
- VC下发布的Release版程序的异常捕捉
- 捕获程序崩溃异常上传到服务器