如何在不在Windows 7上显式运行AdPlus的情况下在崩溃时创建进程小型转储?

时间:2010-11-08 10:28:31

标签: .net debugging windows-7 crash adplus

我有一个.NET进程,有时会因某些第三方库的本机代码中的AccessViolationException而失败。

当发生这种情况时,我希望有完整的内存迷你转储。我已经阅读了这个页面 - http://support.microsoft.com/kb/931673,“收集用户模式转储”一节,并按照文章的说明配置了注册表。但是,当崩溃发生时,会创建一个非常小的报告 - 看不到* .mdmp文件。

现在,我知道如何在ADPLus中运行该流程,或者如何将其附加到已经运行的流程。但它需要明确地运行ADPLus。

我想知道如何配置Windows以自动运行ADPlus,每次我启动有问题的过程无论它是如何启动的 - 从msbuild,双击,从控制台脚本等...

意思是,运行aaaa.exe时会被运行ADPlus替换为某些标志,这些标志会使用相应的命令行选项生成aaaa.exe。

我知道Windows中有图像执行标志,这样做,但我不知道细节。

感谢。

EDIT1

保留命令行参数很重要,因此如果aaa.exe运行带有标志,那么当然,从调试器运行aaa.exe时也应如此。

1 个答案:

答案 0 :(得分:2)

没关系,找到它。

  1. HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Image File Execution Options
  2. 下创建一个以该进程命名的键(如aaa.exe)
  3. 添加一个字符串值Debugger,其值为 ADPlus -crash -mss YourSymbolCacheFolderPath -MiniOnSecond -quiet -o YourDumpFolderPath -sc