下沙论坛

 找回密码
 注册论坛(EC通行证)

QQ登录

QQ登录

下沙大学生网QQ群8(千人群)
群号:6490324 ,验证:下沙大学生网。
用手机发布本地信息严禁群发,各种宣传贴请发表在下沙信息版块有问必答,欢迎提问 提升会员等级,助你宣传
新会员必读 大学生的论坛下沙新生必读下沙币获得方法及使用
查看: 4427|回复: 0
打印 上一主题 下一主题

QQ语音聊天蓝屏两种排错过程(涉及搜索引擎的使用/windbg对蓝屏dump文件的粗略分析)

[复制链接]
  • TA的每日心情
    奋斗
    3 天前
  • 签到天数: 2385 天

    [LV.Master]伴坛终老

    跳转到指定楼层
    1
    发表于 2008-11-26 10:43:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    前言:
    宿舍的电脑刚好出现这个问题,然后那位舍友和自己分别用了两种方法解决了这个问题,因此写出来分享一下。
    法一,是专门针对新手,给他们一种自己搜索解决问题的思路——特别是对搜索引擎使用的能力,因为很多时候,搜索引擎能够解决你很多问题。
    而法二,仅为抛砖引玉,为蓝屏的解决方法提供另一种思路。



    故障描述:
    宿舍电脑,Windows XP SP2,硬件列表中声卡驱动名称为Realtek High Definition Audio
    初始杀毒软件NOD32。
    使用QQ语音聊天,一旦对方点接受的话,就立即蓝屏,但以前并无该问题。其蓝屏信息:
    IRQL_NOT_LESS_OR_EQUAL
    STOP:0X0000000A(0X00000001,0X0000001C,0X00000001,0X804FBEE4)
    换用卡巴,甚至“裸奔”,故障依旧。

    法一(舍友,部分有自己的指导):搜索引擎的使用——关键是搜索什么样的词,和在哪里搜索。

    Step 1:
    百度搜索“IRQL NOT LESS OR EQUAL”(不含双引号),首先有如下微软的文章。
    《错误信息:STOP 0x000000D1 DRIVER_IRQL_NOT_LESS_OR_EQUAL》:
    http://support.microsoft.com/kb/293077/zh-cn
    文中提到: % U* W; r7 n l0 h
    + T, Q# z; D# v; }+ A8 @
    引用:
    , x6 ~7 q7 c# q$ ~8 a- b
    当启用 Driver Verifier 功能并且驱动程序使用了不正确的地址时,会发生此问题。注意错误信息中可能列出了导致此问题的驱动程序。
    但是里面列出的适用操作系统并没有Windows XP,而且该链接描述“DRIVER_IRQL_NOT_LESS_OR_EQUAL”与“IRQL_NOT_LESS_OR_EQUAL”有些不同,所以该解答只能作备用使用。

    Step 2:
    然后在http://support.microsoft.com,在右边的“查找支持”中搜索“0x0000000A”。



    并且在搜索结果页面的左边“查找结果 按产品类别显示:”点选“Windows XP”





    发现了如下重要文章:《消除 Windows XP 中出现的“Stop 0x0000000A”错误》
    http://support.microsoft.com/kb/314063/
    根据该文档显示, " {& {! e) A6 j1 F
    + i9 _4 X7 m, Q' T
    引用:
    3 I" M( c$ s1 i5 G
    如果在安装 Windows XP 之后收到 Stop 0x0A 错误,请使用以下故障排除方法检查其他组件:检查第三方软件或驱动程序。
    因此可以认定,问题的产生很可能是驱动程序的问题。

    Step 3:
    回到Baidu,搜索“QQ语音蓝屏”,找到如下文章:
    我关于技嘉915P主板QQ视频、语音聊天蓝屏问题的解决
    http://hi.baidu.com/jkyx/blog/item/5cfdb331d40a7da85fdf0e27.html
    根椐该文档显示,作者在实验中得出,是c-media 9880声卡驱动的问题。后来无意间“使用Windows Update的‘自定义’,安装C Media Electronics Incorporation - Sound - C-Media High Definition Audio Device的升级更新”即解决了问题。

    联系Step 2的文章,那么是不是可以判定该电脑的Realtek HD声卡驱动也有问题呢?是不是安装新驱动即可呢?

    Step 4:
    www.mydrivers.com,在页面最上面选“声卡驱动”,并输入“Realtek High Definition Audio”搜索。
    结果搜索到适合于XP的最新Realtek驱动。
    http://drivers.mydrivers.com/drivers/dir186/d74427.shtml

    Step 5:
    下载安装,重新启动,再试。故障解决。



    法二(自己,参考盆盆的文章):使用windbg对dump文件粗略分析——“照猫画葫芦”

    前一段时间看到了盆盆的文章,《Lenovo Thinkpad T61奇怪的蓝屏故障和解决办法[BugCheckID:0x00008086]》
    http://blogs.itecn.net/blogs/ahpeng/archive/2007/09/02/lenovo-thinkpad-t61-bugcheckid-0x00008086.aspx
    在里面提到了windbg对Crash Dump的分析。所以这次就“照猫画葫芦”,找出问题根源,并且顺利解决。在这里感谢盆盆的文章!

    Debugging Tools for Windows - Overview:
    http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx

    Step 1:
    首先到如下地址下载并安装Windows Symbol Packages:
    http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx
    如果你的操作系统是32位的话,则到如下地址下载并安装Debugging Tools for Windows 32-bit Version:
    http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx
    如果你的操作系统是64位的话,则到如下地址下载并安装Debugging Tools for Windows 64-bit Version:
    http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx

    Step 2:
    从朋友处拿crash dump。一般是Mini Dump,在%SystemRoot%\Minidump文件夹下,如果是“核心内存转储”or“完全内存转储”则是文件%SystemRoot%\MEMORY.DMP,不过文件就大得多。

    Step 3:
    然后点击“开始/所有程序/Debugging Tools for Windows/Windbg”,在打开的Windbg中,“File/Open Crash Dump”,在弹出的对话框中找到该dump文件,然后打开。 2 n. M6 c1 _1 Z7 e" M, A: D$ `
    9 f2 \ P: ~, w, c% y
    引用:
    : F5 _3 h! Z2 G! n9 {( J

    ***** 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
    Probably caused by : RtkHDAud.sys ( RtkHDAud+41813d )
    Probably caused by RtkHDAud.sys?可能声卡驱动文件RtkHDAud.sys引起的问题?

    Step 4:
    然后在窗口的最下面输入“lmvm RtkHDAud”命令并回车查看RtkHDAud.sys的时间戳。 # X/ G3 _ Z/ h: y' F4 c) Y. b
    , h6 k, A ~+ j7 |
    引用:
    ' U0 u2 G4 k+ x( ]5 |9 y9 S
    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
        Timestamp:        Tue Aug 01 19:06:58 2006 (44CF35D2)
        CheckSum:         0042EB37
        ImageSize:        0044F000
        Translations:     0000.04b0 0000.04e0 0409.04b0 0409.04e0
    2006-8-1,可能是比较旧的驱动了。是不是使用新驱动即能解决这个问题呢?


    Step 5:
    然后依据法一的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) 后调试系统》
    http://support.microsoft.com/kb/818501/zh-cn

    如果对程序调试有兴趣的话可以下载下面的PDF,《Windows用户态程序高效排错》:
    http://www.cnblogs.com/lixiong/archive/2006/08/16/475520.html

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏 分享分享 顶 踩

    本版积分规则

    关闭

    下沙大学生网推荐上一条 /1 下一条

    快速回复 返回顶部 返回列表