如何在发生某个第一次机会异常时创建.NET进程的minidump

mar*_*ark 5 .net crash minidump

我的应用程序在QA环境中抛出InvalidCastException,这是我无法在开发中重现的.

我希望在异常时刻获得minidump.我知道adplus,但我不知道如何使用它,以便在抛出InvalidCastException时创建minidump.显然,它没有区分一个.NET异常.可能是我错了,有办法.或者,还有另一种工具可以做到这一点.最好是免费的.

无论如何,任何人都可以建议如何处理这个问题?

谢谢.

UPDATE

  1. 构建是QA和dev中的Debug构建.然而,QA运行在实验室中可能实现的复杂场景,开发人员无法重现.因此,我需要能够在QA中运行时进行转储.
  2. 我可以修改代码并从代码创建minidump.但是,我希望有一个更灵活的解决方案,每次发生这样的问题时都不需要修改代码.

更新2

实际上,我从John robbins SuperAssert.Net"窃取"了minidump生成代码.再一次,这是从某个具体点生成minidump的代码,而我需要一种更灵活的adplus风格方法.John Robbins的方法是创建一个cdb脚本,然后使用该脚本调用cdb调试器,使其附加到进程并创建转储.它不使用MiniDumpWriteDump API.

Ste*_*ary 5

最简单的方法是让它从应用程序中冒出来,让用户向Microsoft报告,并注册Windows错误报告.

或者,您可以使用John Robbins的SUPERASSERT .NET(或其代码的子集)手动捕获它.

更新(对于非代码解决方案):查看Systems Internals的ProcDump.