Windbg关联dmp文件
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)
最近一段时间和Crash斗争,每天必不可少的事情是分析dump,每天少则分析几个,多则分析几十个是常有的。而打开dump到进入windbg cmd窗口输入!analyze -v命令是机械枯燥的事情。Windbg是没有默认关联.dmp文件的,只能自己动手了。分享关联方法之前,看下我现在dump文件的打开方式:
我设置了三种打开方式:
- 直接使用Windbg打开dump
- 使用windbg打开dump并进行分析
- 使用windbg打开dump,切换到32位,然后分析(针对加载的wow64)
配置dmp关联的方法
1. 设置dmp文件的关联
Windows下文件的关联指的是在explorer下,双击或通过右键打开文件时选择指定程序打开。文件的关联方式可以通过注册表进行配置,在HKEY_CLASSES_ROOT、HKEY_CURRENT_USER\Software\Classes、HKEY_LOCAL_MACHINE\Software\Classes有以 “.文件格式” 命名的键和另一个自定义的键里面保存具体的配置,用来配置这个文件格式的关联,比如我们要配置的dmp文件的关联,最终会是这样:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
HKEY_CURRENT_USER\Software\Classes dmpfile DefaultIcon default = "C:\Program Files (x86)\Debugging Tools for Windows (x86)\windbg.exe",0 shell Analyze with windbg command default=C:\Program Files (x86)\Debugging Tools for Windows (x86)\windbg.exe" -c "!analyze -v" -z "%1\" Analyze with windbg - wow64 command default="C:\Program Files (x86)\Debugging Tools for Windows (x86)\windbg.exe" -c "!wow64exts.sw; !analyze -v" -z "%1" open command default="C:\Program Files (x86)\Debugging Tools for Windows (x86)\windbg.exe" -z "%1" .dmp default = dmpfile |
当然,更改HKEY_CURRENT_USER是对当前用户有效,HKEY_LOCAL_MACHINE是对所有用户有效,而HKEY_CLASSES_ROOT是兼容的产物,不推荐在直接配置HKEY_CLASSES_ROOT。
2. 去除用户自定义的打开方式-自定义程序
如果你设置过打开方式里面的自定义程序,必须先删除这一项,否则我们上一步设置的文件关联将不会生效,打开方式自定义程序的配置也是保存在注册表中,具体位置在:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.dmp\UserChoice
将这个UserChoice键删除即可。
3. 到这里就讲完了,最后奉上一个bat:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
@echo off set dbgpath=\"C:\Program Files (x86)\Debugging Tools for Windows (x86)\windbg.exe\" REG ADD "HKCU\Software\Classes\.dmp" /f /d dmpfile set val=%dbgpath%,0 REG ADD "HKCU\Software\Classes\dmpfile\DefaultIcon" /f /d "%val%" set val=%dbgpath% -z \"%%1\" REG ADD "HKCU\Software\Classes\dmpfile\Shell\open\command" /f /d "%val% set val=%dbgpath% -c \"!wow64exts.sw; !analyze -v\" -z \"%%1\" REG ADD "HKCU\Software\Classes\dmpfile\Shell\Analyze With Windbg - wow64\command" /f /d "%val%" set val=%dbgpath% -c \"!analyze -v\" -z \"%%1\" REG ADD "HKCU\Software\Classes\dmpfile\Shell\Analyze With Windbg\command" /f /d "%val%" REG DELETE "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.dmp\UserChoice" /f set /p finish="finsh!" |
参考:
http://msdn.microsoft.com/en-us/library/cc144158%28VS.85%29.aspx
http://msdn.microsoft.com/en-us/library/windows/hardware/ff561306.aspx
学习日记,兼职软件设计,软件修改,毕业设计。
本文出自 学习日记,转载时请注明出处及相应链接。
本文永久链接: https://www.softwareace.cn/?p=1548