为了账号安全,请及时绑定邮箱和手机立即绑定

崩溃时如何为我的进程创建minidump?

崩溃时如何为我的进程创建minidump?

蓝山帝景 2019-11-30 14:50:11
我无法通过更改系统设置来在过程中创建小型转储。所以我的问题是:系统崩溃时,系统会为用户进程创建一个小型转储吗如果是,我需要配置哪个设置还是我必须以编程方式创建小型转储。小型转储在调查崩溃时有多有效我正在使用Windows XP,C ++,VC6
查看完整描述

3 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

您需要以编程方式创建一个小型转储(一个例外,请参阅下一个链接)。CodeProject 在MiniDumps上有一篇不错的文章。基本上,您想使用dbghelp.dll,并使用该功能MiniDumpWriteDump()(请参见MiniDumpWriteDump上的MSDN)。

这种转储的有效性在很大程度上取决于应用程序。有时,对于优化的二进制文件,它们实际上是无用的。另外,如果没有经验,堆/堆栈损坏错误将使您误入歧途。

但是,如果优化程序对您的要求不是很高,则转储确实会帮助您解决大量错误,即所有具有堆栈跟踪+本地使用变量值的错误都是有用的,即许多纯虚拟的错误函数调用事物(即错误的销毁顺序),访问冲突(未初始化的访问或缺少NULL检查)等。

顺便说一句,如果您的维护策略以某种方式允许它,则将您的应用程序从VC6移植到可接受的东西(例如VC8或9)。


查看完整回答
反对 回复 2019-11-30
?
湖上湖

TA贡献2003条经验 获得超2个赞

尽管至少需要Visual C ++ 2003,但我们还是在Firefox中使用了Google Breakpad。其好处还在于它还支持OS X和Linux。


查看完整回答
反对 回复 2019-11-30
?
慕标5832272

TA贡献1966条经验 获得超4个赞

我最终在Windows上使用了CrashRpt(需要将整个代码库和工具链从MinGW移至本机Microsoft C / C ++编译器),并在Linux上使用了google-breakpad。


查看完整回答
反对 回复 2019-11-30
  • 3 回答
  • 0 关注
  • 540 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信