一、事出原因
最近不知道怎么回事,家里电脑经常性地出现蓝屏(先si机后蓝屏),很多时候有些文档没有保存便蓝屏导致文档丢失,其中也包括您现在正在看到的这一篇文章(撰写本文时,蓝了一次),以前一直比较懒,重启大法一顿怼,然后重新再做编辑,只不过PPT重做简直要人命,无奈之下,放下了所有的工作,来研究研究蓝屏的原因,顺便正儿八经使用一下Typora。
PS:本文结尾提到的解决方案较为野蛮粗暴,可能让你本就不富裕的家庭雪上加霜,请慎用!

二、准备工作
使用的工具:WinDBG导入的文件:C:\Windows\Minidump\xxxxxx.dmp
关于WinDBG这款神器想必无需再做多的介绍,至于导入文件的目录为windows在遇到蓝屏之后会保存的dmp文件所在的位置,我的电脑是Win10系统,其它系统目前暂时不知道,在网上也有看到消息说要提前设置好,但是我并没有设置,这里也贴一下设置的图片吧。

也有文章说写入调试信息需要选择第一个。
另外需要设置WinDBG的访问符号,在WinDBG官网中可以看到
Symbol Server (Microsoft):
复制代码 隐藏代码
srv*c:\mss*
http://msdl.microsoft.com/download/symbolsSymbol Server (Citrix):
复制代码 隐藏代码
srv*c:\css*
http://ctxsym.citrix.com/symbols.symfix c:\mss.sympath+ srv*c:\css*
http://ctxsym.citrix.com/symbols可使用环境变量设置,也可在软件File – Symbol File Path中进行设置,至此,准备工作一切就绪,下面即可进行分析。
三、分析过程
WinDBG打开dmp文件,稍等一会便可出现分析报告,我的分析报告如下:
复制代码 隐藏代码 Microsoft (R) Windows Debugger Version 6.12.0002.633 X86 Copyright (c) Microsoft Corporation. All rights reserved. Loading Dump File [C:\Users\Tory\Desktop\120421-10187-01.dmp] Mini Kernel Dump File: Only registers and stack trace are available Symbol search path is: SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols;SRV*c:\mysymbol*http://msdl.microsoft.com/download/symbols Executable search path is: Windows 7 Kernel Version 19041 MP (6 procs) Free x64 Product: WinNt, suite: TerminalServer SingleUserTS Machine Name: Kernel base = 0xfffff805`67c00000 PsLoadedModuleList = 0xfffff805`6882a1d0 Debug session time: Sat Dec 4 20:02:02.508 2021 (UTC + 8:00) System Uptime: 0 days 1:07:26.549 Loading Kernel Symbols ……………………………………………………… ………………………………………………………. ………………………………………………………. ……………. Loading User Symbols Loading unloaded module list ………******************************************************************************* * * * Bugcheck Analysis * * * ******************************************************************************* Use !analyze -v to get detailed debugging information. BugCheck 3B, {c0000005, fffff80567efbfd2, ffffe90838039420, 0} Probably caused by : Unknown_Image ( PAGE_NOT_ZERO ) Followup: MachineOwner ——— ***Memory manager detected 62334 instance(s) of page corruption, target is likely to have memory corruption. 5: kd> !analyze -v******************************************************************************* * * * Bugcheck Analysis ** * ******************************************************************************* SYSTEM_SERVICE_EXCEPTION (3b) An exception happened while executing a system service routine. Arguments: Arg1: 00000000c0000005, Exception code that caused the bugcheck Arg2: fffff80567efbfd2, Address of the instruction which caused the bugcheck Arg3: ffffe90838039420, Address of the context record for the exception that caused the bugcheck Arg4: 0000000000000000, zero.Debugging Details: ——————EXCEPTION_CODE: (NTSTATUS) 0xc0000005 – 0x%p FAULTING_IP: nt!RtlpIsNameInExpressionPrivate+92 fffff805`67efbfd2 6683382a cmp word ptr [rax],2Ah CONTEXT: ffffe90838039420 — (.cxr 0xffffe90838039420) rax=ffff7b83a1b1ab84 rbx=0000000000000074 rcx=ffffa583a1b1ab40 rdx=ffffe90838039fb0 rsi=0000000000000000 rdi=ffffa583a1b1ab40 rip=fffff80567efbfd2 rsp=ffffe90838039e20 rbp=0000000000000000 r8=0000000000000000 r9=ffffa583a1b1ab40 r10=0000000000000032 r11=ffffe90838039fb0 r12=0000000000000000 r13=ffffbb07cac1d880 r14=0000000000000000 r15=000000000000005c iopl=0 nv up ei pl nz na po nc cs=0010 ss=0018 ds=002b es=002b fs=0053 gs=002b efl=00050206 nt!RtlpIsNameInExpressionPrivate+0x92: fffff805`67efbfd2 6683382a cmp word ptr [rax],2Ah ds:002b:ffff7b83`a1b1ab84=???? Resetting default scope CUSTOMER_CRASH_COUNT: 1 DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT BUGCHECK_STR: 0x3B PROCESS_NAME: QQPYUserCenter CURRENT_IRQL: 0 BAD_PAGES_DETECTED: f37e LAST_CONTROL_TRANSFER: from fffff80567efbe58 to fffff80567efbfd2 STACK_TEXT: ffffe908`38039e20 fffff805`67efbe58 : ffffbb07`00000003 00000000`00000000 ffffbb07`cac1d880 00000000`00000000 : nt!RtlpIsNameInExpressionPrivate+0x92 ffffe908`38039f10 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!RtlIsNameInExpression+0x48 SYMBOL_NAME: PAGE_NOT_ZERO FOLLOWUP_NAME: MachineOwner MODULE_NAME: Unknown_Module IMAGE_NAME: Unknown_Image DEBUG_FLR_IMAGE_TIMESTAMP: 0 STACK_COMMAND: .cxr 0xffffe90838039420 ; kb BUCKET_ID: PAGE_NOT_ZERO Followup: MachineOwner ——— ***Memory manager detected 62334 instance(s) of page corruption, target is likely to have memory corruption.重点关注第30行以下,其中BugCheck 3B, {c0000005, fffff80567efbfd2, ffffe90838039420, 0}大致可以看出错误代码为0x0000003B,百度一下即可知该错误代码多为软硬件兼容性问题,此事心里大概有一个底了。Probably caused by : Unknown_Image ( PAGE_NOT_ZERO )这里其实可以关注一下,由于结果未“Unknown_Image”所以也失去了分析它的意义了。
其实低49-54行给出了导致错误的进程具体位置,这个我看不懂,感兴趣的大佬可以给我解释一下,要怎么分析到他的具体地址。
从第81行开始较为重要,其中抛出的“VISTA_DRIVER_FAULT”表示访问驱动错误,PROCESS_NAME指向了QQPYUserCenter,表示罪魁祸首是该进程,即“QQ拼音用户中心”,但是我实在想不通为什么QQ拼音和驱动又有关系了。
继续向下看到第94、95行, 表示该进程调用了ntdll中的RtlIsNameInExpression之后又调用了RtlpIsNameInExpressionPrivate+0x92函数时出错了,该问题也可在第62-64行能够清楚看到具体出错的反汇编代码。
复制代码 隐藏代码 FAULTING_IP: nt!RtlpIsNameInExpressionPrivate+92 fffff805`67efbfd2 6683382a cmp word ptr [rax],2Ah此次蓝屏主要原因是QQPYUserCenter与某个软硬件发生驱动访问时出现问题,既然有驱动则多为硬件所致。
在网上查询了很多信息,用排除法最终锁定了“Logitech MouseWare”即罗技鼠标,因为外设我就用了罗技的鼠标和键盘。
五、解决方案


更新Logitech的驱动
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2305938578@qq.com 举报,一经查实,本站将立刻删除,本文链接:https://www.spubm.cn/55501.html