- 浏览: 18997 次
最新评论
使用Windbg排除蓝屏故障(已发表)
- 博客分类:
- 技术杂绘
使用Windbg排除蓝屏故障(已发表)
2011年09月28日
蓝屏崩溃死机(Blue Screen of Death)是Windows较为常见的系统故障之一,它意味着Windows系统遭遇了严重的错误或危险,而又无法自我修复,被迫强制关机以避免损坏电脑系统。作为系统管理人员,在处理蓝屏死机故障时,需要具备一定的分析方法与技术积累。除了常规的方法,管理员也可以使用Windows调试分析工具来助我们一臂之力,进而找到问题的背后真凶。以下通过一则案例来简单介绍调试工具的使用方法。
Ø 工具介绍:
Windows Debugging Tools(简称windbg)是微软开发的一款专门用来分析调试Windows
系统内部错误的工具,它能根据保存下来的内存状态信息,有效的定位到发生严重错误(包括蓝屏死机)的故障位置,找出引起故障的进程,并做进一步的排除。
您可以在以下网址下载Windows Debugging Tools:
http://msdn.microsoft.com/en-us/windows/hardware/gg463016.aspx
.
Ø 设置转储文件:
为了便于排查蓝屏故障的原因,Windows提供了在蓝屏故障发生时自动将内存状态数
据保存为内存转储文件(Crash Dump File)的功能,以便我们通过分析内存转储文件查找蓝屏故障原因。
需要事先设置自动保存内存转储文件。方法如下:右键点击“我的电脑”,依次选择“属性”、“高级”、设置“启动与故障恢复”,在“启动与故障恢复”选项中找到“写入调试信息”的下拉菜单,在下拉菜单中将“无”修改为“小内存转储(64KB)”、“核心内存转储”或“完全内存转储”中的任意一种,即可在下次发生蓝屏故障时自动保存内存转储文件。
内存转储文件是一种扩展名为 .DMP 的系统文件。其中,“小内存转储”文件保存在 Windows\Minidump 文件夹,文件大小为 64KB,它只记录发生蓝屏故障时的关键信息;“核心内存转储”与“完全内存转储”文件则保存在 Windows 文件夹中,文件名为 MEMORY.DMP,它们分别记录有发生蓝屏故障时的核心内存信息或完整的内存信息。在这里我们选择“小内存转储(64KB)”,既能节省硬盘空间,又能保留必要的错误信息。
Ø 案例描述:
某台Windows XP电脑在上网时突然发生蓝屏。先是QQ程序异常关闭,再打开时提示
QQ.exe程序无法初始化,IE浏览器也因访问内存地址失败而关闭(提示该内存地址不能为read),接着360安全卫士亦某些文件执行失败而自动关闭。再过一会,电脑突然蓝屏死机,提示:0x00000050:PAGE_FAULT_IN_NONPAGED_AREA。重启电脑后此故障仍反复发生。
一、初步分析:
从QQ,360等软件的错误提示信息上可看出,应用软件均访问了内存中的受保护地
址或不正确的非法地址,从而导致应用程序的执行遭到拒绝。PAGE_FAULT_IN_NONPAGED_AREA 这条信息表明内存或页面文件(即虚拟内存)发生了错误(PAGE_FAULT)。因此初步判断,问题应该出在内存或者程序的兼容性冲突上。
二、定位调试:
重新启动电脑后,Windows已自动保存故障状态信息,故我们可以使用Windows
Debugging Tools来进一步定位与分析故障原因所在。
1. 下载并安装Debugging Tools for Windows工具,运行 windbg.exe程序,选择文件菜单中的“Open Crash Dump”选项。
2. 找到Windows目录下的内存转储文件(位于Minidump文件夹),文件为mini***-**.dmp,即可打开内存转储文件。
需要注意的是,在分析转储文件里面的详细信息时,须下载微软的符号文件包,才能将转储信息完整的翻译出来。如果你的电脑能连上互联网,则可以在windbg工具中直接设置连接微软的官方符号服务器,以便加快分析文件的速度。设置方法如下:
选择“File”菜单下的“Symbol File Path”选项,在“Symbol path”空白处填写如下路径:SRV*f:\websymbols*http://msdl.microsoft.com/download/symbols,其中f:\为电脑中的f分区。设置完成后windbg工具在打开一个内存转储文件是会自动连接微软的symbol服务器,然后把相关原始符号文件下载到f:\websymbols文件夹中。
三、转储分析:
设置完成之后,windbg工具将自动分析内存转储文件中的相关信息并弹出报告,
包含系统版本,转储文件位置,符号文件包路径,内核状态代码,可能的故障原因等基本信息。在本例报告中,我们可以直接定位出导致故障的原因在于内存(Probably caused by : memory_corruption)。
四、细节调试:
如果你不满足于所给出的基本信息,想进一步分析故障的细节,则可以进入内核调
试模式,在窗口底下调试命令栏输入 kb>!analyze
发表评论
-
Java.lang.ThreadLocal类
2012-01-20 09:02 417Java.lang.ThreadLocal类 2010 ... -
.net 线程概述
2012-01-20 09:02 501.net 线程概述 2011年06月23日 概论 多线 ... -
Borland 基础与应用开发课程认证试题整理集
2012-01-20 09:02 603Borland 基础与应用开发课程认证试题整理集 2010年 ... -
windows x64 vista以上系统代码完整性校验分析
2012-01-20 09:02 1645windows x64 vista以上系统代码完整性校验分析 ... -
C1X系列: 多线程(N1494)
2012-01-20 09:02 716C1X系列: 多线程(N1494) 2010年08月03日 ... -
VBS整人代码 很多 测试把我给整安逸了
2012-01-19 14:06 2254VBS整人代码 很多 测试把我给整安逸了 2010年08月2 ... -
利用VBS让QQ永远在线
2012-01-19 14:06 557利用VBS让QQ永远在线 201 ... -
VBS Runas 自动明文的输入密码
2012-01-19 14:06 699VBS Runas 自动明文的输入密码 2010年06月23 ... -
VBS运用之妙用SendKeys
2012-01-19 14:06 905VBS运用之妙用SendKeys 2010年11月12日 ... -
了解VBE!VBS教程!
2012-01-19 14:06 685了解VBE!VBS教程! 2011年09 ... -
系统的一些解决方法
2012-01-17 03:56 605系统的一些解决方法 20 ... -
2011-11-1
2012-01-17 03:56 4662011-11-1 2011年11月01日 第一篇:一 ... -
Linux下FrameBuffer直接写屏
2012-01-17 03:56 983Linux下FrameBuffer直接写屏 2011年09月 ... -
exe文件不能运行的解决方法
2012-01-17 03:56 1034exe文件不能运行的解决 ... -
Socket基础
2012-01-16 02:45 543Socket基础 2010年04月02日 Socket基 ... -
一个类似ifconfig功能的程序代码--C语言(ZZ)
2012-01-16 02:44 953一个类似ifconfig功能的程序代码--C语言(ZZ) 2 ... -
tcp简单实现C/S模式程序,测试成功
2012-01-16 02:44 1095tcp简单实现C/S模式程序,测试成功 2010年03月25 ... -
简单的C#Socket编程
2012-01-16 02:44 552简单的C#Socket编程 2009年06月23日 us ... -
用C#做远程监控程序
2012-01-16 02:44 3150用C#做远程监控程序 2009年12月05日 最近在做的 ...
相关推荐
系统崩溃后,Windows系统上出现蓝屏错误。蓝屏突然弹出,迫使您在工作中重启系统。...幸运的是,有许多方便的工具,如Windows调试工具(Windbg),它允许您读取错误报告以进行故障排除并解决BSOD错误。
一种 LDAP(轻型目录访问协议)实时监视工具,旨在对 Active Directory 客户端应用程序进行故障排除。 AdRestore 恢复已删除的 Server 2003 Active Directory 对象。 Autologon 登录过程中跳过密码屏幕。 Autoruns ...
本讲座将解释蓝屏产生的原因和过程,引发蓝屏错误典型的根源,并向您介绍使用WinDbg分析DUMP文件的高级技巧。 深入研究Windows内部原理系列之十四:用户模式的程序排错(上) 讲师信息:喻勇 2007年03月09日 14:00...
本讲座将解释蓝屏产生的原因和过程,引发蓝屏错误典型的根源,并向您介绍使用WinDbg分析DUMP文件的高级技巧。 深入研究Windows内部原理系列之十四:用户模式的程序排错(上) 讲师信息:喻勇 2007年03月09日 14:00...
本讲座将解释蓝屏产生的原因和过程,引发蓝屏错误典型的根源,并向您介绍使用WinDbg分析DUMP文件的高级技巧。 深入研究Windows内部原理系列之十四:用户模式的程序排错(上) 讲师信息:喻勇 2007年03月09日 14:00...
本讲座将解释蓝屏产生的原因和过程,引发蓝屏错误典型的根源,并向您介绍使用WinDbg分析DUMP文件的高级技巧。 深入研究Windows内部原理系列之十四:用户模式的程序排错(上) 讲师信息:喻勇 2007年03月09日 14:00...
本讲座将解释蓝屏产生的原因和过程,引发蓝屏错误典型的根源,并向您介绍使用WinDbg分析DUMP文件的高级技巧。 深入研究Windows内部原理系列之十四:用户模式的程序排错(上) 讲师信息:喻勇 2007年03月09日 14:00...
本讲座将解释蓝屏产生的原因和过程,引发蓝屏错误典型的根源,并向您介绍使用WinDbg分析DUMP文件的高级技巧。 深入研究Windows内部原理系列之十四:用户模式的程序排错(上) 讲师信息:喻勇 2007年03月09日 14:00...
本讲座将解释蓝屏产生的原因和过程,引发蓝屏错误典型的根源,并向您介绍使用WinDbg分析DUMP文件的高级技巧。 深入研究Windows内部原理系列之十四:用户模式的程序排错(上) 讲师信息:喻勇 2007年03月09日 14:00...
本讲座将解释蓝屏产生的原因和过程,引发蓝屏错误典型的根源,并向您介绍使用WinDbg分析DUMP文件的高级技巧。 深入研究Windows内部原理系列之十四:用户模式的程序排错(上) 讲师信息:喻勇 2007年03月09日 14:00...