程序崩溃后如何更好的反馈信息

我们使用Windows都知道,整个Windows和微软提供的应用软件的稳定性和崩溃后的体验是逐步提升的。在大牛的作品《软件调试》 中有描述。

在Windows下,软件出错,常见的报告手段:

1、事件日志:这里记录了很多关键的错误信息

2、崩溃报告:可以自动提交错误的信息,或者手动提交,以不断的改进软件和方便排错

3、专用的日志工具:如Netmon,sysinternal等

 

那我们的软件在崩溃后如何处理呢?主要目的:

1、方便我们的排错

2、提供更好的使用体验

最近在设计一个应用系统时对这个问题进行处理。

这方面有比较多的参考:

首先在stackoverflow上可以看到,c++ release  program crashes report 

http://stackoverflow.com/questions/112831/how-to-get-a-stack-trace-when-c-program-crashes-using-msvc8-2005

以上有比较多的框架和工具

Windows应用程序处理的一个框架和详细参考资料 

Integrating Crash Reporting into Your Application - A Beginners Tutorial

http://www.codeproject.com/Articles/308634/Integrating-Crash-Reporting-into-Your-Application

http://code.google.com/p/crashrpt/  

http://www.codeproject.com/Articles/1934/Post-Mortem-Debugging-Your-Application-with-Minidu 

Google breakPad

Google breakpad是一个非常实用的跨平台的崩溃转储和分析模块,他支持Windows,Linux和Mac和Solaris。由于他本身跨平台,所以很大的减少我们在平台移植时的工作,毕竟崩溃转储,每个平台下都不同,使用起来很难统一,而Google breakpad就帮我们做到了这一点,不管是哪个平台下的崩溃,都能够进行统一的分析。现在很多工程都在使用他:最著名的几个如Chrome,Firefox,Picasa和Google Earth。另外他的License是BSD的,也就是说,我们即便是在商业软件中使用,也是合法的 

 http://code.google.com/p/google-breakpad/ 

http://bigasp.com/archives/450 

 

 调试Release发布版程序的Crash错误

 http://www.cppblog.com/Walker/articles/146153.html

http://blog.sina.com.cn/s/blog_48f93b530100fsln.html 

 

对于托管程序也有 Good crash reporting library in c#

http://stackoverflow.com/questions/49224/good-crash-reporting-library-in-c-sharp 

  

顺便看到了这个比较有意思的内容,35个你也许不知道的Google开源项目 http://www.enet.com.cn/article/2009/1228/A20091228592251.shtml 

 

由于我的应用 需要处理跨平台问题,因此使用了Google breakPad

顺便把整理的资料放在了skydriver上,   

https://skydrive.live.com/#cid=56B433AD3D1871E3&id=56B433AD3D1871E3%21427

https://skydrive.live.com/view.aspx?cid=56B433AD3D1871E3&resid=56B433AD3D1871E3%21433 

 

 

posted @ 2012-05-18 08:48  2012  阅读(3464)  评论(1编辑  收藏  举报