5

我有一个 .NET 进程,有时会在某些 3rd 方库的本机代码中出现 AccessViolationException 失败。

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

现在,我知道如何在 ADPLus 中运行该进程,或者如何使其附加到已经运行的进程。但它需要显式运行 ADPLus。

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

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

我知道 Windows 中有图像执行标志,可以做到这一点,但我不知道细节。

谢谢。

编辑1

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

4

1 回答 1

2

没关系,找到了。

  1. 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options下创建一个以进程命名的密钥(如 aaa.exe)
  2. 添加一个字符串值调试器,其值为ADPlus -crash -mss YourSymbolCacheFolderPath -MiniOnSecond -quiet -o YourDumpFolderPath -sc
于 2010-11-08T12:23:39.507 回答