我无法通过更改系统设置来在过程中创建小型转储。所以我的问题是:系统崩溃时,系统会为用户进程创建一个小型转储吗如果是,我需要配置哪个设置还是我必须以编程方式创建小型转储。小型转储在调查崩溃时有多有效我正在使用Windows XP,C ++,VC6
3 回答
一只甜甜圈
TA贡献1836条经验 获得超5个赞
您需要以编程方式创建一个小型转储(一个例外,请参阅下一个链接)。CodeProject 在MiniDumps上有一篇不错的文章。基本上,您想使用dbghelp.dll
,并使用该功能MiniDumpWriteDump()
(请参见MiniDumpWriteDump上的MSDN)。
这种转储的有效性在很大程度上取决于应用程序。有时,对于优化的二进制文件,它们实际上是无用的。另外,如果没有经验,堆/堆栈损坏错误将使您误入歧途。
但是,如果优化程序对您的要求不是很高,则转储确实会帮助您解决大量错误,即所有具有堆栈跟踪+本地使用变量值的错误都是有用的,即许多纯虚拟的错误函数调用事物(即错误的销毁顺序),访问冲突(未初始化的访问或缺少NULL检查)等。
顺便说一句,如果您的维护策略以某种方式允许它,则将您的应用程序从VC6移植到可接受的东西(例如VC8或9)。
湖上湖
TA贡献2003条经验 获得超2个赞
尽管至少需要Visual C ++ 2003,但我们还是在Firefox中使用了Google Breakpad。其好处还在于它还支持OS X和Linux。
慕标5832272
TA贡献1966条经验 获得超4个赞
我最终在Windows上使用了CrashRpt(需要将整个代码库和工具链从MinGW移至本机Microsoft C / C ++编译器),并在Linux上使用了google-breakpad。
- 3 回答
- 0 关注
- 626 浏览
添加回答
举报
0/150
提交
取消