为问题进程创建转储文件的最简单方法

Posted

技术标签:

【中文标题】为问题进程创建转储文件的最简单方法【英文标题】:Simplest method for creating dump file for troubled process 【发布时间】:2012-05-31 18:33:12 【问题描述】:

我发现了多种创建转储文件的方法,例如使用 windows 实用程序 userdump 和 adplus.vbs 以及其他一些方法。 我在任务管理器中找到了一个选项似乎是最简单最简单的一个打开任务管理器+选择进程+右键单击+创建用户转储。使用 taks manager 创建的 .dmp 文件与使用 win 实用程序创建的文件有什么不同吗?

让用户从任务管理器创建转储文件比让他运行实用程序容易得多。

【问题讨论】:

这适用于 XP 吗?当我右键单击正在运行的进程时,我没有看到菜单项。在您看到菜单项之前,该进程是否必须遇到问题(例如没有响应)? 只要安装了正确的工具,它们都很简单。当然,taskmgr.exe 转储可以正常工作。它只是不是很迷你。 它在 Win server 2000 上。该选项始终显示在所有进程中。 【参考方案1】:

请记住,在 64 位操作系统上,任务管理器为 WOW 进程创建的转储将是 64 位转储。这可能会导致问题,尤其是在调试托管代码时。对于 32 位 WOW 进程,通常最好使用 32 位实用程序。

【讨论】:

\Windows\SysWow64 中有一个 32 位版本的任务管理器。使用它而不是默认任务管理器将生成正确的 32 位转储。 谢谢,布赖恩。我不知道。【参考方案2】:

不确定从任务管理器创建的小型转储有什么区别,但如果您想了解更多信息,那么最好的办法是以编程方式创建小型转储并设置适当的标志(请注意,某些标志取决于操作系统)或使用 Dr. Watson,您可以简单地选中转储文件中所需信息的复选框。

您可以使用MiniDumpWriteDump 以编程方式创建转储:http://msdn.microsoft.com/en-us/library/windows/desktop/ms680360%28v=vs.85%29.aspx 有一篇关于此的 SO 文章:How to create minidump for my process when it crashes?

您还可以设置博士。 Watson 在崩溃发生时为您生成它们: http://kb.acronis.com/content/2191

任务管理器解决方案很好,但自动生成它们更好 IMO 并以编程方式生成它们可以让您更好地控制和选择转储特定于您的应用程序的其他信息。

【讨论】:

【参考方案3】:

我们用于捕获最终用户计算机上的崩溃或挂起的方法之一是使用出色的 ProcDump 实用程序,我们编写了一个简单的批处理脚本,该脚本可以等待应用程序无响应,或者您可以设置其他条件,例如当 CPU 使用率达到特定点时。我在this response中举个例子。

【讨论】:

以上是关于为问题进程创建转储文件的最简单方法的主要内容,如果未能解决你的问题,请参考以下文章

将 pcap 转换为 JSON 的最简单方法

在nodejs中导入MySQL数据库进行集成测试的最简单方法

生成本地化文件的最简单方法

将表格内容转储为 ASCII 格式的表格字符串的简单方法?

将结构从一个进程发送到另一个进程的最简单方法是啥? [关闭]

模拟没有可用磁盘空间情况的最简单方法?