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

时间:2012-04-10 11:00:58

标签: c# .net debugging windbg

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

我想配置代码/ windows OS以在崩溃时创建转储文件。

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

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

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

3 个答案:

答案 0 :(得分:9)

您可以注册未处理的异常过滤器和PInvoke MiniDumpWriteDump。要执行此操作的代码示例位于here

答案 1 :(得分:4)

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

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

答案 2 :(得分:3)

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

相关问题