如何编写 ADPlus 脚本以方便客户用于诊断崩溃和挂起

Posted

技术标签:

【中文标题】如何编写 ADPlus 脚本以方便客户用于诊断崩溃和挂起【英文标题】:How to script ADPlus for ease of customer use for diagnosing crashes and hangs 【发布时间】:2011-03-04 12:17:01 【问题描述】:

对于遇到崩溃或挂起的客户,我们非常喜欢在 Debugging Tools for Windows 中使用 ADPlus。然而,我们遇到的最大问题是试图解释客户需要输入什么才能运行它。我们会向他们发送一个脚本,但似乎准确的咒语取决于用户是使用 32 位还是 64 位以及他们下载的调试工具的确切版本。

我们现在复杂的指令是这样的:

查找调试工具的安装位置 -- 可能是 c:\program files (x86)\Debugging Tools for windows (x86)c:\program files\Debugging tools for windows (x86) 或其他一些变体 如果您运行的是 64 位应用程序,那么您将需要 c:\program files\Debugging tools for windows (x64) 代替 找出你的用户目录是什么,它可能是c:\users\jimz:\documents and settings\jim

启动命令提示符并键入:

\adplus -hang -pn myprocess.exe -o \crash_dumps

显然这有很大的出错空间,并且不是最好的用户体验,所以我希望能够向用户发送一个批处理文件或其他可以检测到的脚本:

调试工具的位置 用户的主目录

那么,有没有办法找出调试工具的安装位置?如果该位置存在于注册表中,是否可以轻松地将其提取到批处理文件中?还可以从批处理脚本中找到用户的主目录吗?我的系统(Win7-64)有一个环境变量HOMEPATH。我可以假设存在吗?

【问题讨论】:

【参考方案1】:

回答我自己的问题:看起来更简单的方法只是运行ProcDump,因为它具有挂起模式,并且可以解压缩并从任何位置运行:

procdump -h -accepteula %HOMEPATH%\Desktop\crashreport.dmp myprocess.exe

【讨论】:

看起来是个很棒的工具。感谢您的推荐。我相信在 FP 中一切顺利?

以上是关于如何编写 ADPlus 脚本以方便客户用于诊断崩溃和挂起的主要内容,如果未能解决你的问题,请参考以下文章

如何在崩溃模式下运行 adplus 但在关机时不写入转储?

如何在“找不到文件”错误后增加 VBA 错误输出以诊断一致崩溃

ADPlus

看懂 游戏《Minecraft》的崩溃报告 服务端/客户端

如何诊断和解决 WCSession sendMessage(_:replyHandler:errorHandler:) 上的崩溃?

使用 Supervisor 管理进程