如何让我的代码在崩溃前创建转储文件?
我在C#和C ++中有一些代码(在一个项目中)。 这段代码有一些崩溃,我试图找到它。 但这次崩溃不会在任何时候重现 – 我找不到它。
我想配置代码/ Windows操作系统来在崩溃时创建转储文件。
我所拥有的限制是……我对此崩溃重现的机器的访问权限有限 – 这不是开发机器..这是测试实验室机器
那么,怎么做呢? 如何在解决方案中更改新转储文件将在任何崩溃时创建的属性?
(目的是能够分析windbg工具中的转储)
我发现使用ProcDump更容易。 尝试-e(在未处理的exception上创建转储),-ma(具有完整进程内存)和-t(在应用程序终止时创建转储)选项。
您可以注册未处理的exceptionfilter和PInvoke MiniDumpWriteDump 。 这样做的代码示例就在这里
您可以在注册表中的vista上启用保存转储:
- 打开RegEdit
- 导航到HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ Windows错误报告
- 在Windows错误报告下,创建一个名为LocalDumps的新注册表项。