QQ语音聊天蓝屏两种排错过程(涉及搜索引擎的使用/windbg对蓝屏dump文件的粗略分析)
[b]前言:[/b]宿舍的电脑刚好出现这个问题,然后那位舍友和自己分别用了两种方法解决了这个问题,因此写出来分享一下。
[color=blue][b]法一,是专门针对新手,给他们一种自己搜索解决问题的思路——特别是对搜索引擎使用的能力,因为很多时候,搜索引擎能够解决你很多问题。
而法二,仅为抛砖引玉,为蓝屏的解决方法提供另一种思路。[/b][/color]
[b][color=#0000ff][/color][/b]
[b]故障描述:
[/b]宿舍电脑,Windows XP SP2,硬件列表中声卡驱动名称为Realtek High Definition Audio
初始杀毒软件NOD32。
使用QQ语音聊天,一旦对方点接受的话,就立即蓝屏,但以前并无该问题。其蓝屏信息:
IRQL_NOT_LESS_OR_EQUAL
STOP:0X0000000A(0X00000001,0X0000001C,0X00000001,0X804FBEE4)
换用卡巴,甚至“裸奔”,故障依旧。
[b][color=blue]法一(舍友,部分有自己的指导):搜索引擎的使用——关键是搜索什么样的词,和在哪里搜索。[/color][/b]
[b]Step 1:[/b]
百度搜索“IRQL NOT LESS OR EQUAL”(不含双引号),首先有如下微软的文章。
《错误信息:STOP 0x000000D1 DRIVER_IRQL_NOT_LESS_OR_EQUAL》:
[url=http://support.microsoft.com/kb/293077/zh-cn]http://support.microsoft.com/kb/293077/zh-cn[/url]
文中提到:
[quote]当启用 Driver Verifier 功能并且驱动程序使用了不正确的地址时,会发生此问题。注意错误信息中可能列出了导致此问题的驱动程序。[/quote]
但是里面列出的适用操作系统并没有Windows XP,而且该链接描述“DRIVER_IRQL_NOT_LESS_OR_EQUAL”与“IRQL_NOT_LESS_OR_EQUAL”有些不同,所以该解答只能作备用使用。
[b]Step 2:[/b]
然后在[url=http://support.microsoft.com/]http://support.microsoft.com[/url],在右边的“查找支持”中搜索“0x0000000A”。
[attach]134478[/attach]
并且在搜索结果页面的左边“查找结果 按产品类别显示:”点选“Windows XP”
[attach]134479[/attach]
发现了如下重要文章:《消除 Windows XP 中出现的“Stop 0x0000000A”错误》
[url=http://support.microsoft.com/kb/314063/]http://support.microsoft.com/kb/314063/[/url]
根据该文档显示,
[quote]如果在安装 Windows XP 之后收到 Stop 0x0A 错误,请使用以下故障排除方法检查其他组件:检查第三方软件或驱动程序。[/quote]
因此可以认定,问题的产生很可能是驱动程序的问题。
[b]Step 3:[/b]
回到Baidu,搜索“QQ语音蓝屏”,找到如下文章:
我关于技嘉915P主板QQ视频、语音聊天蓝屏问题的解决
[url=http://hi.baidu.com/jkyx/blog/item/5cfdb331d40a7da85fdf0e27.html]http://hi.baidu.com/jkyx/blog/item/5cfdb331d40a7da85fdf0e27.html[/url]
根椐该文档显示,作者在实验中得出,是c-media 9880声卡驱动的问题。后来无意间“使用Windows Update的‘自定义’,安装C Media Electronics Incorporation - Sound - C-Media High Definition Audio Device的升级更新”即解决了问题。
联系Step 2的文章,那么是不是可以判定该电脑的Realtek HD声卡驱动也有问题呢?是不是安装新驱动即可呢?
[b]Step 4:[/b]
到[url=http://www.mydrivers.com/]www.mydrivers.com[/url],在页面最上面选“声卡驱动”,并输入“Realtek High Definition Audio”搜索。
结果搜索到适合于XP的最新Realtek驱动。
[url=http://drivers.mydrivers.com/drivers/dir186/d74427.shtml]http://drivers.mydrivers.com/drivers/dir186/d74427.shtml[/url]
[b]Step 5:[/b]
下载安装,重新启动,再试。故障解决。
[color=blue][b]法二(自己,参考盆盆的文章):使用windbg对dump文件粗略分析——“照猫画葫芦”[/b][/color]
前一段时间看到了盆盆的文章,《Lenovo Thinkpad T61奇怪的蓝屏故障和解决办法[BugCheckID:0x00008086]》
[url=http://blogs.itecn.net/blogs/ahpeng/archive/2007/09/02/lenovo-thinkpad-t61-bugcheckid-0x00008086.aspx]http://blogs.itecn.net/blogs/ahpeng/archive/2007/09/02/lenovo-thinkpad-t61-bugcheckid-0x00008086.aspx[/url]
[color=blue][b]在里面提到了windbg对Crash Dump的分析。所以这次就“照猫画葫芦”,找出问题根源,并且顺利解决。在这里感谢盆盆的文章![/b][/color]
[b][color=#0000ff][/color][/b]
Debugging Tools for Windows - Overview:
[url=http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx]http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx[/url]
[b]Step 1:[/b]
首先到如下地址下载并安装Windows Symbol Packages:
[url=http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx]http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx[/url]
如果你的操作系统是32位的话,则到如下地址下载并安装Debugging Tools for Windows 32-bit Version:
[url=http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx]http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx[/url]
如果你的操作系统是64位的话,则到如下地址下载并安装Debugging Tools for Windows 64-bit Version:
[url=http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx]http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx[/url]
[b]Step 2:[/b]
从朋友处拿crash dump。一般是Mini Dump,在%SystemRoot%\Minidump文件夹下,如果是“核心内存转储”or“完全内存转储”则是文件%SystemRoot%\MEMORY.DMP,不过文件就大得多。
[b]Step 3:[/b]
然后点击“开始/所有程序/Debugging Tools for Windows/Windbg”,在打开的Windbg中,“File/Open Crash Dump”,在弹出的对话框中找到该dump文件,然后打开。
[attach]134480[/attach]
[quote]
***** Kernel symbols are WRONG. Please fix symbols to do analysis.
Unable to load image RtkHDAud.sys, Win32 error 2
*** WARNING: Unable to verify timestamp for RtkHDAud.sys
*** ERROR: Module load completed but symbols could not be loaded for RtkHDAud.sys
*** WARNING: Unable to verify timestamp for portcls.sys
*** ERROR: Module load completed but symbols could not be loaded for portcls.sys
*** WARNING: Unable to verify timestamp for ks.sys
*** ERROR: Module load completed but symbols could not be loaded for ks.sys
*** WARNING: Unable to verify timestamp for sysaudio.sys
*** ERROR: Module load completed but symbols could not be loaded for sysaudio.sys
*** WARNING: Unable to verify timestamp for wdmaud.sys
*** ERROR: Module load completed but symbols could not be loaded for wdmaud.sys
[b]Probably caused by : RtkHDAud.sys ( RtkHDAud+41813d )[/b]
[/quote]
Probably caused by RtkHDAud.sys?可能声卡驱动文件RtkHDAud.sys引起的问题?
[b]Step 4:[/b]
然后在窗口的最下面输入“lmvm RtkHDAud”命令并回车查看RtkHDAud.sys的时间戳。
[attach]134481[/attach]
[quote]1: kd> lmvm RtkHDAud
start end module name
f3f60000 f43af000 RtkHDAud T (no symbols)
Loaded symbol image file: RtkHDAud.sys
Image path: RtkHDAud.sys
Image name: RtkHDAud.sys
[b] Timestamp: Tue Aug 01 19:06:58 2006 (44CF35D2)[/b]
CheckSum: 0042EB37
ImageSize: 0044F000
Translations: 0000.04b0 0000.04e0 0409.04b0 0409.04e0[/quote]
2006-8-1,可能是比较旧的驱动了。是不是使用新驱动即能解决这个问题呢?
[b]Step 5:[/b]
然后依据法一的Step 4和Step 5下载新驱动,解决了问题。
备注0:为什么找不到Dump文件?
因为在“启动和故障恢复”中把“写入调试信息”设为“(无)”了。请修改为“小内存转储(64KB)”即可。
备注1:在Windbg对Dump的文件中,如果输入!analyze -v即可在STACK_TEXT查看Debug的堆栈信息。可怜自己才疏学浅,都看不明白......
备注2:在Windbg中如果想打开新的dump文件,应该是使用菜单栏的“Debug/Detach Debuggee”。
备注3:
如果对IRQL_NOT_LESS_OR_EQUAL (0xA)的错误想深究调试下去的话可以看这篇文章:《如何在收到 Stop 错误 IRQL_NOT_LESS_OR_EQUAL (0xA) 后调试系统》
[url=http://support.microsoft.com/kb/818501/zh-cn]http://support.microsoft.com/kb/818501/zh-cn[/url]
如果对程序调试有兴趣的话可以下载下面的PDF,《Windows用户态程序高效排错》:
[url=http://www.cnblogs.com/lixiong/archive/2006/08/16/475520.html]http://www.cnblogs.com/lixiong/archive/2006/08/16/475520.html[/url]
================
[b]该文发表地点:[/b]剑盟,卡饭,CFAN,自己的Blog
[[i] 本帖最后由 HorseLuke 于 2007-10-2 03:31 编辑 [/i]]
页:
[1]