关于c/c crash report的问题

时间:2008-05-09 19:07:00   来源:论坛整理  作者:  编辑:chinaitzhe
在Linux上,简单c/c 程序碰到致命内存错误的时候,缺省的只打出一条Segmentation fault. Windows上只有提示框。这太不方便追踪错误了,尤其当程序在客户环境中无法调试的时候。在Linux里有core dump的办法可以返还给dev来追踪,但是一些系统缺省这个设置并不是打开的。
所以产品自带的错误报告变得有意义。
那么在c/c 的环境里,有没有什么标准的解决方案?有没有什么成熟的类库可以实现这个需求?比如截获某些signal然后像java那样清楚地记录call stack。
网友回复:运行时错误追踪还是交给语言设计者吧,而保证不出这些错误的责任在程序员这儿
网友回复:bug的发现每拖后1个环节,代价增大7倍。
还是先考虑在更早的环节发现bug吧。
网友回复:大型软件错误是不可避免的,crash log级别的跟踪是必要的。
难道楼上可以帮助微软Word解决所有致命错误保证100%不crash?


网友回复:
引用 3 楼 kevery_w 的回复:
大型软件错误是不可避免的,crash log级别的跟踪是必要的。
难道楼上可以帮助微软Word解决所有致命错误保证100%不crash?

那你看见word崩溃的时候report啥了?微软的人难道不比我们这些在csdn混的牛多了?
网友回复:MS Word crash是有crash report的。Office其它产品也有。而且其中包含call stack信息。只不过不是开发人员
没有对应release的未移除symbol版本的程序文件,读不了而已。

网友回复:截获某些signal的时候转储下堆栈, 结合map文件基本可以大概的确定出错位置等,并不一定需要symbol, 不过假如是用的M$的编译器, 并且没有关闭栈帧优化(/Oy[-]),要恢复 call stack 是个体力活... gcc 没这毛病, 恢复 call stack 还算简单些 ...
网友回复:嗯,确实如mLee79所说。这种东西跨平台得不好做,但是针对单个平台的还是可以做成工具的。不知为什么没有
发现类似功能的库呢,因为这个功能非常鸡肋?
网友回复:Windows 不是支持程序crash后的memory dump吗

网友回复:结贴,在http://topic.csdn.net/u/20080507/12/1522d46f-826e-48b1-8bbd-9ed77e1ed800.html找到文章。
关键字:crash,report,问题,

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面