如何在崩溃时创建进程迷你转储而不在 Windows 7 上显式运行 AdPlus?

发布于 2024-09-30 23:33:28 字数 662 浏览 2 评论 0原文

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

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

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

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

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

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

谢谢。

EDIT1

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

I have a .NET process that sometimes fails with AccessViolationException in the native code of some 3rd party library.

I wish to have full memory mini dump when that happens. I have read this page - http://support.microsoft.com/kb/931673, the section "To collect user-mode dumps" and configured the registry as the article explains. However, when the crash occurrs, a really small report is created - no *.mdmp file is in sight.

Now, I know how to run the process from within ADPLus or how to make it attach to an already running process. But it requires running ADPLus explicitly.

I was wondering how can I configure windows to run ADPlus automatically, each time I start the problematic process no matter how it is started - from msbuild, double clicked, from console script, etc...

Meaning, when running aaaa.exe is replaced by running ADPlus with certain flags which spawns aaaa.exe with the respective command line options.

I know there are image execution flags in windows, which do that, but I do not know the details.

Thanks.

EDIT1

It is important to preserve the command line parameters, so if aaa.exe is run with a flag, then, of course, the same should be true when running aaa.exe from the debugger.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

咽泪装欢 2024-10-07 23:33:28

没关系,找到了。

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

Never mind, found it.

  1. Create a key named after the process (like aaa.exe) under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
  2. Add a string value Debugger with the value ADPlus -crash -mss YourSymbolCacheFolderPath -MiniOnSecond -quiet -o YourDumpFolderPath -sc
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文