如何让我的代码在崩溃前创建转储文件?

我在C#和C ++中有一些代码(在一个项目中)。 这段代码有一些崩溃,我试图找到它。 但这次崩溃不会在任何时候重现 – 我找不到它。

我想配置代码/ Windows操作系统来在崩溃时创建转储文件。

我所拥有的限制是……我对此崩溃重现的机器的访问权限有限 – 这不是开发机器..这是测试实验室机器

那么,怎么做呢? 如何在解决方案中更改新转储文件将在任何崩溃时创建的属性?

(目的是能够分析windbg工具中的转储)

我发现使用ProcDump更容易。 尝试-e(在未处理的exception上创建转储),-ma(具有完整进程内存)和-t(在应用程序终止时创建转储)选项。

您可以注册未处理的exceptionfilter和PInvoke MiniDumpWriteDump 。 这样做的代码示例就在这里

您可以在注册表中的vista上启用保存转储:

  1. 打开RegEdit
  2. 导航到HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ Windows错误报告
  3. 在Windows错误报告下,创建一个名为LocalDumps的新注册表项。