【发布时间】:2010-11-08 10:28:31
【问题描述】:
我有一个 .NET 进程,有时会在某些 3rd 方库的本机代码中出现 AccessViolationException 失败。
当这种情况发生时,我希望有完整的内存迷你转储。我已阅读此页面 - http://support.microsoft.com/kb/931673,“收集用户模式转储”部分并按照文章说明配置注册表。但是,当崩溃发生时,会创建一个非常小的报告 - 看不到 *.mdmp 文件。
现在,我知道如何在 ADPLus 中运行该进程,或者如何使其附加到已经运行的进程。但它需要显式运行 ADPLus。
我想知道如何将 Windows 配置为自动运行 ADPlus,每次我启动有问题的进程时,无论它是如何启动的 - 从 msbuild、双击、从控制台脚本等...
意思是,当运行 aaaa.exe 时,会被运行带有某些标志的 ADPlus 替换,这些标志会生成带有相应命令行选项的 aaaa.exe。
我知道windows中有图像执行标志,可以做到这一点,但我不知道细节。
谢谢。
EDIT1
保留命令行参数很重要,因此如果 aaa.exe 使用标志运行,那么从调试器运行 aaa.exe 时当然也应该如此。
【问题讨论】:
-
配置为进行本地转储的 Windows 错误报告 (WER) 有什么好处? msdn.microsoft.com/en-us/library/windows/desktop/…
-
没有,但是这个问题是3年前问的,当时我可能还不知道WER。
-
@ThomasW。在您提供的链接中:“此功能不支持执行自己的自定义崩溃报告的应用程序,包括 .NET 应用程序”
-
@PeterRitchie:WER LocalDumps 适用于 .NET 应用程序。它只是不适用于具有未处理异常处理程序的 .NET 应用程序。他的应用程序没有未处理的异常处理程序(否则 AdPlus 也无法工作),因此 LocalDumps 在这种情况下可以工作。
标签: .net debugging windows-7 crash adplus