我无法通过更改系统设置从我的进程中创建小型转储。所以我的问题是 :
当用户进程崩溃时,系统会为其创建一个小型转储
如果是,我需要配置哪个设置
或者我必须以编程方式创建小型转储。
小型转储在调查崩溃时的效果如何
我使用的是 Windows XP、C++、VC6
最佳答案
您需要以编程方式创建一个小型转储(有一个异常(exception),请参阅下一个链接)。 CodeProject 有一个不错的article on MiniDumps .基本上,您想使用 dbghelp.dll
,并使用函数 MiniDumpWriteDump()
(参见 MSDN on MiniDumpWriteDump)。
此类转储的效果在很大程度上取决于应用程序。有时,对于优化的二进制文件,它们实际上是无用的。此外,如果没有经验,堆/堆栈损坏错误会导致您误入歧途。
但是,如果优化器对你来说不是太难,那么转储做会帮助一大类错误,即所有具有堆栈跟踪+本地值的错误使用的变量很有用,即许多纯虚拟函数调用的东西(即错误的销毁顺序)、访问冲突(未初始化的访问或缺少 NULL 检查)等。
顺便说一句,如果您的维护策略允许,请将您的应用程序从 VC6 移植到可接受的系统,例如 VC8 或 9。您会帮自己一个大忙。
关于c++ - 崩溃时如何为我的进程创建小型转储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1547211/