使用 User Mode Process Dumper 为异常关闭或停止响应的进程保存转储文件

转载 2013年12月03日 11:12:11

转自:http://blog.csdn.net/zskylark/article/details/6013927

 

在 Windows 系统的“启动与故障恢复”中设置“写入调试信息”,以便在 Windows 遇到蓝屏故障后通过 Debugging Tools for Windows 分析蓝屏时自动保存的内存转储文件(Crash Dump File)以排查蓝屏故障原因的方法相信很多人都非常熟悉了。详细介绍可以参考《易宝典 KB972602 -Windows 常见蓝屏故障分析》。

除了 Windows 蓝屏故障以外,很多应用程序进程异常关闭或停止响应的软件故障也可以通过分析转储文件加以排查。Windows 没有直接提供为应用程序保存转储文件的功能,我们可以在微软官方网站下载 User Mode Process Dumper 8.1(以下简称为 UserDump):

http://www.microsoft.com/downloads/details.aspx?FamilyID=E089CA41-6A87-40C8-BF69-28AC08570B7E&displaylang=en&displaylang=en


此工具可以监视运行中的 Win32 进程并为其保存转储文件,不会附加调试器或中止进程,而且可以监控 CSRSS.EXE、SERVICES.EXE、WINLOGON.EXE 之类系统核心进程。下载后运行 SETUP.EXE,安装内核模式驱动程序 USERDUMP.SYS、添加 USERDUMP 系统服务并在控制面板中生成 Process Dump 图标。注意在安装时要选择“Enable Dump on Process Termination Feature”复选框。

如果某应用程序进程经常异常关闭,我们可以双击控制面板中的 Process Dump 图标,在 Process Monitoring 选项卡中点击“New(新建)”,然后输入需要监控的进程名称,无需输入进程完整路径。接下来点击“Rules(规则)”按钮,为监控的进程选择错误类型规则,在此可以选择“Select All(选择所有)”,这样当进程触发了规则中的任一条错误类型规则后,UserDump 都会自动保存转储文件。我们在此还可以设置转储文件的保存位置,默认是 Windows 文件夹,建议修改为其它位置。
 
如果某应用程序进程在运行时停止了响应,我们可以首先通过任务管理器记下此进程的 PID,然后以命令行方式执行 UserDump.EXE <PID> 命令以生成转储文件。
 
应用实例:
 
笔者曾经在 Windows 中运行《恐龙危机 II》游戏时遇到游戏主进程 Dino2.EXE 异常关闭的问题。游戏虽然可以正常载入并在大部分场景中正常运行,但在进入 Regina 与 Dylan 交替掩护闯异特龙巢穴的特定关卡中,只要一发射信号弹就肯定会“Dino2.EXE 遇到了问题需要关闭”。经检查,游戏的所有程序文件都没有损坏,经卸载重装游戏后问题依旧。于是笔者用 UserDump 设置了监控 Dino2.EXE 进程,重新运行游戏后,UserDump 检测到活动的 Dino2.EXE 进程并自动监控其状态,当游戏异常关闭后,相应的转储文件也保存好了。经过分析转储文件得知,Dino2.EXE 在那个特定的关卡中加载 D3DIM.DLL 时遇到了问题,D3DIM.DLL 是一个 DirectX 文件,那个特定关卡中的信号弹是需要经过特定 Direct3D 渲染的,因此才会出现游戏可以正常载入、但只要一在那个特定关卡发射信号弹就异常关闭的问题。了解故障原因后,笔者尝试重新安装显示驱动程序及 DirectX 运行时组件以修复 Direct3D 设置,重新运行游戏后问题得以解决。

 

High CPU Dump收集工具 - ProcDump使用方法

原文:点击打开链接 工具介绍 ProcDump是System Internal提供的一个专门用来监测程序CPU高使用率从而生成进程dump文件的工具。ProcDump可以根据系统的CPU使...
  • yenange
  • yenange
  • 2017年06月19日 17:20
  • 410

Linux服务器上用netstat查看的11种网络状态及长连接讨论

一、Linux服务器上11种网络连接状态:  通常情况下:一个正常的TCP连接,都会有三个阶段:1、TCP三次握手;2、数据传送;3、TCP四次挥手  注:以下说明最好能结合”图:TCP的状态机”...

如何使用crash工具分析Linux内核崩溃转储文件

本文首先介绍了 crash 的基本概念和安装方法,其次详细介绍了如何使用 crash 工具分析内核崩溃转储文件,包括各种常用调试命令的使用方法,最后以几个实际工作中遇到的真实案例向读者展示了 cras...

使用 Eclipse Memory Analyzer 进行堆转储文件分析

http://alwarse.iteye.com/blog/1679736简介: Eclipse Memory Analyzer(MAT)是著名的跨平台集成开发环境 Eclipse Galileo...

如何使用 Sqldumper.exe 为 Windows 应用程序生成转储文件

本文介绍如何使用 Sqldumper.exe 实用工具为 Watson 错误报告或为 Microsoft 产品支持服务 (PSS) 部门可能执行的调试任务生成转储文件。 更多信息 自 SQ...

使用 mat 进行堆转储文件分析

在实际开发中或多或少我们都会遇到java的内存问题,特别是开发android程序和大型 JAVA 应用程序来说,再精细的测试也难以堵住所有的漏洞,即便我们在测试阶段进行了大量卓有成效的工作,很多问题还...

使用 Eclipse Memory Analyzer 进行堆转储文件分析

概述 对于大型 JAVA 应用程序来说,再精细的测试也难以堵住所有的漏洞,即便我们在测试阶段进行了大量卓有成效的工作,很多问题还是会在生产环境下暴露出来,并且很难在测试环境中进行重现。JVM 能...

使用段错误产生的核心转储文件进行调试

Segmentation fault occur when a program attempts to access memory not allowed. This is often caused ...

本地使用impdp导出服务器转储文件,本地使用impdp导入远程数据库用户

1)expdp是可以在客户端上生成转储文件的 2)impdp是可以在不同的实例之间进行数据的迁移复制的 练习1: 1)将远程数据库WSJB用户使用expdp命令导出到本地磁盘的D:\下 Mi...
  • ziwen00
  • ziwen00
  • 2013年01月10日 14:55
  • 3773

使用 Eclipse Memory Analyzer 进行堆转储文件分析

准备环境和测试数据 我们使用的是 Eclipse Memory Analyzer V0.8,Sun JDK 6 安装 MAT 和其他插件的安装非常类似,MAT 支持两种安装方式,一种...
  • tz2101
  • tz2101
  • 2015年03月26日 18:11
  • 558
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用 User Mode Process Dumper 为异常关闭或停止响应的进程保存转储文件
举报原因:
原因补充:

(最多只允许输入30个字)