电脑死机,蓝屏报错代码的含义
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了电脑死机,蓝屏报错代码的含义相关的知识,希望对你有一定的参考价值。
参考技术A当电脑蓝屏或者死机的时候总是会跳出一些代码,很多小伙伴都不知道是什么意思,下面就由我跟大家分享电脑死机,蓝屏报错代码的含义吧,欢迎大家来阅读学习。
电脑死机,蓝屏报错代码的含义
1、0x0000000A:IRQL_NOT_LESS_OR_EQUAL
◆错误分析:主要是由问题的驱动程序、有缺陷或不兼容的硬件与软件造成的. 从技术角度讲. 表明
在内核模式中存在以太高的进程内部请求级别(IRQL)访问其没有权限访问的内存地址.
◇解决方案:请用前面介绍的解决方案中的2、3、5、8、9方案尝试排除.
2、0x00000012:TRAP_CAUSE_UNKNOWN
◆错误分析:如果遇到这个错误信息, 那么很不幸, 应为KeBudCheck分析的结果是错误原因未知.
◇解决方案:既然微软都帮不上忙, 就得靠自己了, 请仔细回想这个错误是什么时候出现的; 第一次
发生时你对系统做了哪些操作; 发生时正在进行什么操作. 从这些信息中找出可能的原因, 从而选择相应
解决方案尝试排除.
3、0x0000001A:MEMORY_MANAGEMENT
◆错误分析:这个内存管理错误往往是由硬件引起的, 比如: 新安装的硬件、内存本身有问题等.
◇解决方案:如果是在安装Windows时出现, 有可能是由于你的电脑达不到安装Windows的最小内存和
磁盘要求.
4、0x0000001E:KMODE_EXCEPTION_NOT_HANDLED
◆错误分析:Windows内核检查到一个非法或者未知的进程指令, 这个停机码一般是由问题的内存或是
与前面0x0000000A相似的原因造成的.
◇解决方案:
(1)硬件兼容有问题:请对照前面提到的最新硬件兼容性列表, 查看所有硬件是否包含在该列表中.
(2)有问题的设备驱动、系统服务或内存冲突和中断冲突: 如果在蓝屏信息中出现了驱动程序的名字,
请试着在安装模式或者故障恢复控制台中禁用或删除驱动程序, 并禁用所有刚安装的驱动和软件. 如果错
误出现在系统启动过程中, 请进入安全模式, 将蓝屏信息中所标明的文件重命名或者删除.
(3)如果错误信息中明确指出Win32K.sys: 很有可能是第三方远程控制软件造成的, 需要从故障恢复
控制台中将对该软件的服务关闭.
(4)在安装Windows后第一次重启时出现:最大嫌疑可能时系统分区的磁盘空间不足或Bios兼容有问题.
(5)如果是在关闭某个软件时出现的:很有可能时软件本省存在设计缺陷, 请升级或卸载它.
5、0x00000023:FAT_FILE_SYSTEM
0x00000024:NTFS_FILE_SYSTEM
◆错误分析:0x00000023通常发生在读写FAT16或者FAT32文件系统的系统分区时, 而0x00000024则是
由于NTFS.sys文件出现错误(这个驱动文件的作用是容许系统读写使用NTFS文件系统的磁盘). 这两个蓝屏 错误很有可能是磁盘本身存在物理损坏, 或是中断要求封包(IRP)损坏而导致的. 其他原因还包括:硬盘磁盘碎片过多; 文件读写操作过于频繁, 并且数据量非常达或者是由于一些磁盘镜像软件或杀毒软件引起的
◇解决方案:
第一步:首先打开命令行提示符, 运行"Chkdsk /r"(注:不是CHKDISK, 感觉象这个, 但是……)命令检
查并修复硬盘错误, 如果报告存在怀道(Bad Track), 请使用硬盘厂商提供的检查工具进行检查和修复.
第二步:接着禁用所有即使扫描文件的软件, 比如:杀毒软件、防火墙或备份工具.
第三步:右击C:winntsystem32drivers astfat.sys文件并选择"属性", 查看其版本是否与当前系
统所使用的Windows版本相符.(注:如果是XP, 应该是C:windowssystem32drivers astfat.sys)
第四步:安装最新的主板驱动程序, 特别IDE驱动. 如果你的光驱、可移动存储器也提供有驱动程序,
最好将它们升级至最新版.
6、0x00000027:RDR_FILE_SYSTEM
◆错误分析:这个错误产生的原因很难判断, 不过Windows内存管理出了问题很可能会导致这个停机码
的出现.
◇解决方案:如果是内存管理的缘故, 通常增加内存会解决问题.
7、0x0000002EATA_BUS_ERROR
◆错误分析:系统内存存储器奇偶校验产生错误, 通常是因为有缺陷的内存(包括物理内存、二级缓存
或者显卡显存)时设备驱动程序访问不存在的内存地址等原因引起的. 另外, 硬盘被病毒或者其他问题所
损伤, 以出现这个停机码.
◇解决方案:
(1)检查病毒
(2)使用"chkdsk /r"命令检查所有磁盘分区.
(3)用Memtest86等内存测试软件检查内存.
(4)检查硬件是否正确安装, 比如:是否牢固、金手指是否有污渍.
8、0x00000035:NO_MORE_IRP_STACK_LOCATIONS
◆错误分析:从字面上理解, 应该时驱动程序或某些软件出现堆栈问题. 其实这个故障的真正原因应
该时驱动程序本省存在问题, 或是内存有质量问题.
◇解决方案:请使用前面介绍的常规解决方案中与驱动程序和内存相关的方案进行排除.
9、0x0000003F:NO_MORE_SYSTEM_PTES
◆错误分析:一个与系统内存管理相关的错误, 比如:由于执行了大量的输入/输出操作, 造成内存管
理出现问题: 有缺陷的驱动程序不正确地使用内存资源; 某个应用程序(比如:备份软件)被分配了大量的
内核内存等.
◇解决方案:卸载所有最新安装的软件(特别是哪些增强磁盘性能的应用程序和杀毒软件)和驱动程序.
10、0x00000044:MULTIPLE_IRP_COMPLIETE_REQUESTS
◆错误分析:通常是由硬件驱动程序引起的.
◇解决方案:卸载最近安装的驱动程序. 这个故障很少出现, 目前已经知道的是, 在使用
http://www.in-system.com/这家公司的某些软件时会出现, 其中的罪魁就是Falstaff.sys文件.(作者难
道不怕吃官司嘛, 把公司网址公布)
11、0x00000050:PAGE_FAULT_IN_NONPAGED+AREA
◆错误分析:有问题的内存(包括屋里内存、二级缓存、显存)、不兼容的软件(主要是远程控制和杀毒
软件)、损坏的NTFS卷以及有问题的硬件(比如:PCI插卡本身已损坏)等都会引发这个错误.
◇解决方案:请使用前面介绍的常规解决方案中与内存、软件、硬件、硬盘等相关的方案进行排除.
12、0x00000051:REGISTRY_ERROR
◆错误分析:这个停机码说明注册表或系统配置管理器出现错误, 由于硬盘本身有物理损坏或文件系
统存在问题, 从而造成在读取注册文件时出现输入/输出错误.
◇解决方案:使用"chkdsk /r"检查并修复磁盘错误.
13、0x00000058:FTDISK_INTERNAL_ERROR
◆错误分析:说明在容错集的主驱动发生错误.
◇解决方案:首先尝试重启电脑看是否能解决问题, 如果不行, 则尝试"最后一次正确配置"进行解决.
14、0x0000005E:CRITICAL_SERVICE_FAILED
◆错误分析:某个非常重要的系统服务启动识别造成的.
◇解决方案:如果是在安装了某个新硬件后出新的, 可以先移除该硬件, 并通过网上列表检查它是否
与Windows 2K/XP兼容, 接着启动电脑, 如果蓝屏还是出现, 请使用"最后一次正确配置"来启动Windows,
如果这样还是失败, 建议进行修复安装或是重装.
15、0x0000006F:SESSION3_INITIALIZATION-FAILED
◆错误分析:这个错误通常出现在Windows启动时, 一般是由有问题的驱动程序或损坏的系统文件引起
的.
◇解决方案:建议使用Windows安装光盘对系统进行修复安装.
16、0x00000076:PROCESS_HAS_LOCKED_PAGES
◆错误分析:通常是因为某个驱动程序在完成了一次输入/输出操作后, 没有正确释放所占有的内存
◇解决方案:
第一步:点击开始-->运行:regedt32, 找到[HKLMSYSTEMCurrentcontrol setcontrolsession
managermemory management], 在右侧新建双字节值"TrackLockedPages", 值为1. 这样Windows便会在错误再次出现时跟踪到是哪个驱动程序的问题.
第二步:如果再次出现蓝屏, 那么错误信息会变成:
STOP:0x0000000CB(0xY,0xY,0xY,0xY)DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS
其中第四个"0xY"会显示为问题驱动程序的名字, 接着对其进行更新或删除.
第三步:进入注册表, 删除添加的"TrackLockedPages".
17、0x00000077:KERNEL_STACK_INPAGE_ERROR
◆错误分析:说明需要使用的内核数据没有在虚拟内存或物理内存中找到. 这个错误常常于是着磁盘
有问题, 相应数据损坏或受到病毒侵蚀.
◇解决方案:使用杀毒软件扫描系统; 使用"chkdsk /r"命令检查并修复磁盘错误, 如不行则使用磁盘
厂商提供的工具检查修复.
18、0x0000007A:KERNEL_DATA_INPAGE_ERROR
◆错误分析:这个错误往往是虚拟内存中的内核数据无法读入内存造成的. 原因可能是虚拟内存页面
文件中存在坏簇、病毒、磁盘控制器出错、内存有问题.
◇解决方案:首先用升级为最新病毒库杀毒软件查杀病毒, 如果促无信息中还有0xC000009C或
0xC000016A代码, 那么表示是坏簇造成的, 并且系统的磁盘检测工具无法自动修复, 这时要进入"故障恢
复控制台", 用"chkdsk /r"命令进行手动修复.
19、0x0000007B:INACESSIBLE_BOOT_DEVICE
◆错误分析:Windows在启动过程中无法访问系统分区或启动卷. 一般发生在更换主板后第一次启动时
, 主要是因为新主板和旧主板的IDE控制器使用了不同芯片组造成的. 有时也可能是病毒或硬盘损伤所引
起的.
◇解决方案:一般只要用安装光盘启动电脑, 然后执行修复安装即可解决问题. 对于病毒则可使用DOS
版的杀毒软件进行查杀(主战有kv2005DOS版下载). 如果是硬盘本身存在问题, 请将其安装到其他电脑中,
然后使用"chkdsk /r"来检查并修复磁盘错误.
20、0x0000007E:SYSTEM_THREAD_EXCEPTION_NOT_HANDLED
◆错误分析:系统进程产生错误, 但Windows错误处理器无法捕获. 其产生原因很多, 包括:硬件兼容
性、有问题的驱动程序或系统服务、 或者是某些软件.
◇解决方案:请使用"事件查看器"来获取更多的信息, 从中发现错误根源.(发现好像不是解决哦, 看
来这里大家要自力更生了!)
21、0x0000007F:UNEXPECTED_KERNEL_MOED_TRAP
◆错误分析:一般是由于有问题的硬件(比如:内存)或某些软件引起的. 有时超频也会产生这个错误.
◇解决方案:用检测软件(比如:Memtest86)检查内存, 如果进行了超频, 请取消超频. 将PCI硬件插卡
从主板插槽拔下来, 或更换插槽. 另外, 有些主板(比如:nForce2主板)在进行超频后, 南桥芯片过热也会
导致蓝屏, 此时为该芯片单独增加散热片往往可以有效解决问题.
22、0x00000080:NMI_HARDWARE_FAILURE
◆错误分析:通常是有硬件引起的.(似乎蓝屏与硬件错误有不解之缘)
◇解决方案:如果最近安装了新硬件, 请将其移除, 然后试试更换插槽和安装最新的驱动程序, 如果
升级了驱动程序, 请恢复后原来的版本; 检查内存金手指是否有污染和损坏; 扫描病毒; 运行"chkdsk
/r"检查并修复磁盘错误; 检查所有硬件插卡已经插牢. 如果以上尝试都无效果, 就得找专业的电脑维修
公司请求帮助了.
23、0x0000008E:KERNEL_MODE_EXCEPTION_NOT_HANDLED
◆错误分析:内核级应用程序产生了错误, 但Windows错误处理器没有捕获. 通常是硬件兼容性错误.
◇解决方案:升级驱动程序或升级BIOS.
24、0x0000009C:MACHINE_CHECK_EXCEPTION
◆错误分析:通常是硬件引起的. 一般是因为超频或是硬件存在问题(内存、CPU、总线、电源).
◇解决方案:如果进行了超频, 请降会CPU原来频率, 检查硬件.
25、0x0000009FRIVER_POWER_STATE_FAILURE
◆错误分析:往往与电源有关系, 常常发生在与电源相关的操作, 比如:关机、待机或休睡.
◇解决方案:重装系统, 如果不能解决, 请更换电源.
26、0x000000A5:ACPI_BIOS_ERROR
◆错误分析:通常是因为主板BIOS不能全面支持ACPI规范.
◇解决方案:如果没有相应BIOS升级, 那么可在安装Windows 2K/XP时, 当出现"press F6 if you
need to install a third-party SCSI or RAID driver"提示时, 按下F7键, 这样Windows便会自动禁止
安装ACPI HAL, 而安装 Standard PC HAL.
27、0x000000B4:VIDEO_DRIVER_INIT_FAILURE
◆错误分析:这个停止信息表示Windows因为不能启动显卡驱动, 从而无法进入图形界面. 通常是显卡
的问题, 或者是存在与显卡的硬件冲突(比如:与并行或串行端口冲突).
◇解决方案:进入安全模式查看问题是否解决, 如果可以, 请升级最新的显卡驱动程序, 如果还不行,
则很可能是显卡与并行端口存在冲突, 需要在安全模式按下WIN+break组合键打开"系统属性", 在硬件--> 设备管理器中找到并双击连接打印的LPT1端口的项, 在"资源"选项卡中取消"使用自动配置"的构选, 然后将"输入/输出范围"的"03BC"改为"0378".
28、0x000000BE:ATTEMPTED_WRITE_TO_READONLY_MEMORY
◆错误分析:某个驱动程序试图向只读内存写入数据造成的. 通常是在安装了新的驱动程序, 系统服
务或升级了设备的固件程序后.
◇解决方案:如果在错误信息中包含有驱动程序或者服务文件名称, 请根据这个信息将新安装的驱动
程序或软件卸载或禁用.
29、0x000000C2:BAD_POOL_CALLER
◆错误分析:一个内核层的进程或驱动程序错误地试图进入内存操作. 通常是驱动程序或存在BUG的软
件造成的.
◇解决方案:请参考前面介绍的常规解决方案相关项目进行排除.
30、0x000000CERIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS
◆错误分析:通常是由有问题的驱动程序或系统服务造成的.
◇解决方案:请参考前面介绍的常规解决方案相关项目进行排除.
31、0x000000D1RIVER_IRQL_NOT_LESS_OR_EQUAL
◆错误分析:通常是由有问题的驱动程序引起的(比如罗技鼠标的Logitech MouseWare 9.10和9.24版
驱动程序会引发这个故障). 同时,有缺陷的内存、 损坏的虚拟内存文件、 某些软件(比如多媒体软件、
杀毒软件、备份软件、DVD播放软件)等也会导致这个错误.
◇解决方案:检查最新安装或升级的驱动程序(如果蓝屏中出现"acpi.sys"等类似文件名, 可以非常肯
定时驱动程序问题)和软件; 测试内存是否存在问题; 进入"故障恢复控制台", 转到虚拟内存页面文件
Pagefile.sys所在分区, 执行"del pagefile.sys"命令, 将页面文件删除; 然后在页面文件所在分区执行
"chkdsk /r"命令;进入Windows后重新设置虚拟内存.
如果在上网时遇到这个蓝屏, 而你恰恰又在进行大量的数据下载和上传(比如:网络游戏、BT下载),
那么应该是网卡驱动的问题, 需要升级其驱动程序.
32、0x000000EA:THREAD_STUCK_IN_DEVICE_DRIVER
◆错误分析:通常是由显卡或显卡驱动程序引发的.
◇解决方案:先升级最新的显卡驱动, 如果不行, 则需要更换显卡测试故障是否依然发生.
33、0x000000ED:UNMOUNTABLE_BOOT_VOLUME
◆错误分析:一般是由于磁盘存在错误导致的, 有时也建议检查硬盘连线是否接触不良, 或是没有使
用合乎该硬盘传输规格的连接线, 例如ATA-100仍使用ATA-33的连接线, 对低速硬盘无所谓, 但告诉硬盘( 支持ATA-66以上)的要求较严格, 规格不对的连线有时也会引起这类没办法开机的故障. 如果在修复后,
还是经常出现这个错误, 很可能是硬盘损坏的前兆.
◇解决方案:一般情况下, 重启会解决问题, 不管怎么样都建议执行"chkdsk /r"命令来检查修复硬盘
34、0x000000F2:HARDWARE)INTERRUPT_STORM
◆错误分析:内核层检查到系统出现中断风暴, 比如:某个设备在完成操作后没有释放所占用的中断.
通常这是由缺陷的驱动程序造成的.
◇解决方案:升级或卸载最新安装的硬件驱动程序.
35、0x00000135:UNABLE_TO_LOCATE_DLL
◆错误分析:通常表示某个文件丢失或已经损坏, 或者是注册表出现错误.
◇解决方案:如果是文件丢失或损坏, 在蓝屏信息中通常会显示相应的文件名, 你可以通过网络或是
其他电脑找到相应的文件, 并将其复制到系统文件夹下的SYSTEM32子文件夹中. 如果没有显示文件名, 那 就很有可能是注册表损坏, 请利用系统还原或是以前的注册表备份进行恢复.
36、0x0000021A:STATUS_SYSTEM_PROCESS_TERMINATED
◆错误分析:用户模式子系统, 例如Winlogon或客服服务运行时子系统(CSRSS)已损坏, 所以无法再保
证安全性, 导致系统无法启动. 有时, 当系统管理员错误地修改了用户帐号权限, 导致其无法访问系统文
件和文件夹.
◇解决方案:使用"最后一次正确的配置", 如果无效, 可使用安装光盘进行修复安装.
37、STOP 0xC0000221 or STATUS_IMAGE_CHECKSUM_MISMATCH
◆错误分析:通常是由于驱动程序或系统DLL文件损坏造成的. 一般情况下, 在蓝屏中会出现文件名称
◇解决方案:
(1)使用Windows安装光盘进行修复安装;
(2)如果还能进入安全模式, 可以"开始-->运行": sfc /scannow
(3)还可以采用提取文件的方法来解决, 进入"故障恢复控制台", 使用copy或expand命令从光盘中复
制或解压受损的文件. 不过, 蓝屏一般都是驱动程序文件的问题, 所以expand命令会用的都一些, 比如:
蓝屏中提示tdi.sys文件, 因为驱动文件一般在i386driver压缩包里, 所以使用: expand %CDROM:i386
driver.cab :tdi.sys c:winntsystemdrivers.(xp为expand %CDROM:i386driver.cab
:tdi.sys c:windownssystemdrivers)
38、如果启动时出现这些蓝屏停机码
如果在Windows启动时出现蓝屏, 并出现附表一中的错误信息, 那么多半时硬件出现了问题, 请用硬
件厂商提供的诊断工具来判断硬件是否存在问题, 并到其网站查看是否有最新的BIOS或固件更新程序. 如果硬件没有问题, 重装Windows 2K/XP, 若相同问题还是出现, 就只能求助专业的技术支持了.
如果遇到的时附表二中的错误信息, 也只有重装Windows了, 如果不能解决问题, 建议求救专业的技
术支持.
附表一:
停机码 错误名
0x31 PHASEO_INITALIZATION_FAILED
0x5C HAL_INITIALITAION_FAILED
0x5D HEAP_INITIALITAION_FAILED
0x5E OBJECT_INITIALITAION_FAILED
0x5F SECURITY_INITIALITAION_FAILED
0x60 PROCESS_INITIALITAION_FAILED
附表二:
停机码 错误名
0x32 PHASE1_INITALIZATION_FAILED
0x61 HAL1_INITALIZATION_FAILED
0x62 OBJECT1_INITALIZATION_FAILED
0x63 SECURITY1_INITALIZATION_FAILED
0x64 SYMBOLIC_INITALIZATION_FAILED
0x65 MEMORY1_INITALIZATION_FAILED
0x66 CACHE_INITALIZATION_FAILED
0x67 CONFIG_INITALIZATION_FAILED
0x68 FILE_INITALIZATION_FAILED
0x69 IO1_INITALIZATION_FAILED
0x6A LPC_INITALIZATION_FAILED
0x6B PROCESS1_INITALIZATION_FAILED
0x6C REFMON_INITALIZATION_FAILED
0x6D SESSION1_INITALIZATION_FAILED
0x6E SESSION2_INITALIZATION_FAILED
0x6F SESSION3_INITALIZATION_FAILED
0x70 SESSION4_INITALIZATION_FAILED
这个蓝屏是啥意思
????
蓝屏死机(Blue Screen of Death,缩写为:BSoD),指的是微软Windows操作系统在无法从一个系统错误中恢复过来时所显示的屏幕图像。◆错误分析:通常是由有问题的驱动程序引起的(比如罗技鼠标的Logitech MouseWare 9.10和9.24版驱动程序会引发这个故障). 同时,有缺陷的内存、 损坏的虚拟内存文件、 某些软件(比如多媒体软件、杀毒软件、备份软件、DVD播放软件)等也会导致这个错误.
◇解决方案:检查最新安装或升级的驱动程序(如果蓝屏中出现"acpi.sys"等类似文件名, 可以非常肯定是驱动程序问题)和软件; 测试内存是否存在问题; 进入"故障恢复控制台", 转到虚拟内存页面文件Pagefile.sys所在分区, 执行"del pagefile.sys"命令, 将页面文件删除; 然后在页面文件所在分区执行"chkdsk /r"命令;进入Windows后重新设置虚拟内存.如果在上网时遇到这个蓝屏, 而你恰恰又在进行大量的数据下载和上传(比如:网络游戏、BT下载), 那么应该是网卡驱动的问题, 需要升级其驱动程序.WinDbg是免费软件,其微软官方下载地址参考扩展阅读,具体项目为Install Debugging Tools for Windows 32/64-bit Version。
使用WinDbg分析崩溃时的内存转储文件的前提是您要让系统在崩溃时自动生成一个内存转储文件,做法如下:
1、单击开始,然后单击运行。
2、键入 control sysdm.cpl
复制代码
,然后单击确定。您将会打开系统属性,请切换到高级选项卡。结果如下图所示:
3、在高级选项卡上,在启动和故障恢复部分中单击设置。这将打开启动和故障恢复对话框,如下图所示:
4、在写入调试信息列表中,选择“小内存转储(64 KB)”或“核心内存转储”,这样系统在崩溃时将会自动生成对应的内存转储文件。如果您不想让蓝屏只闪烁一下,而是想看清楚它直到您手动重新启动计算机,请清除系统失败部分中自动重新启动(R)项目前的复选框。然后单击确定。
5、在启动和故障恢复对话框中,单击确定。
6、单击确定关闭系统属性对话框。
7、在系统设置更改对话框中,如果要立即重新启动计算机,则单击是;如果要稍后重新启动计算机,则单击否。
注:?
Vista用户请类似操作。? 对于原版操作系统,以上设置是默认的(除了禁止自动重新启动)。? 对于第4点中的写入调试信息列表内容,现给出以下参照释义:
(以上三种转储文件的大小依次增大,关于三者的比较不在本文讨论范围之内,笔者仅推荐设置为“小内存转储”或者“核心内存转储”,一般性错误“小内存转储”就足够了,如不能完好分析请选择“核心内存转储”。为了数据的丰富性,您也可以直接选择“核心内存转储”,但笔者强烈不推荐完全内存转储。)
值得注意的是,为了确保崩溃时自动生成内存转储文件,您可能还须启用虚拟内存页面文件。特别地,当您选择记录核心内存转储时,您必须启用虚拟内存页面文件,而且由于核心内存转储文件的大小取决于该机器上操作系统和所有活动驱动程序已经分配的内核模式内存的数量,因此没有很好的办法来预测内核内存转储的大小。下表仅给出该情况下的参考虚拟内存大小设置值:
另外,除了页面文件占用的磁盘空间,内存转储文件(*.DMP)的生成位置所在的磁盘还要有足够的空闲空间来提取这个转储文件,否则一样会“生成不了”(实际上是丢失了)。
设置好这些之后,一旦您的系统发生蓝屏崩溃,系统就会在以上设置中选中的相应内存转储文件类型下对应的目录处生成转储文件。您所要做的就是立刻拿出利器——启动WinDbg进行分析。
笔者在此将结合一个实例进行详细说明,过程中包含了WinDbg调试蓝屏用到的一些命令,这些命令将不再额外整理,请于阅读过程中注意识记。
首先,您要配置WinDbg将要使用的调试符号文件(Symbol File)的位置。什么是调试符号文件呢?符号文件随DLL文件或者EXE文件建立时产生,提供包含在可执行文件和动态链接库 (DLL) 中的函数的占位空间。此外,符号文件还可以表示达到失败点的函数调用路线图。当我们使用各种Microsoft工具调试应用程序时,必须拥有符号信息,这样才能正确分析出问题根源。那我们该如何设置调试符号文件的位置呢?我们既可以从微软官网下载完整的符号文件包(同位于WinDbg下载页面),也可以使用微软的符号文件服务器(Microsoft Symbol Server)。笔者推荐后者,因为一次分析所要用到的符号文件局限于有限的几个而已,使用后者可以让程序自动下载,既节省时间,又可以确保符号文件是最新的并且是正确的。在WinDbg中点击“File”菜单,选择“Symbol File Path …”,在打开的对话框中输入
复制代码
后点击“OK”按钮即可。当然,还有一步就是再次点击“File”菜单,选择“Save Workspace”来保存当前的设置。
设置了符号文件之后,您就可以进行内存转储文件的分析了。同样点击“File”菜单,这次要选择“Open Crash Dump …”,然后通过文件打开对话框打开生成的待分析的内存转储文件。本例中设置的是核心内存转储类型,于是应该定位至“%SystemRoot%”(即系统盘Windows文件夹下),打开MEMORY.DMP文件。但是笔者已经事先将其转移至“E:\Memory Dump\MEMORY.DMP”,因此在后续的图片中,您看到的是这个地址。此时WinDbg会滚动显示一些信息并且会稍有挂起的感觉,直到从微软符号文件服务器下载完分析这个崩溃文件所需要的所有符号文件。
在上图中,我们看到就是这个打开的调试器命令窗口(Debugger Command Window)(已经将符号文件加载完毕,待命),我们先看看位于底部的区域6,这个小的长方条就是WinDbg的命令输入处(Command Entry),它又分为两个区域,左边显示“0: kd>”的是提示区,右边空白区是命令输入区。当刚打开这个窗口而符号文件尚未下载/加载完毕时,提示区域会什么都不显示,而命令输入区域将显示“Debuggee not connected”。直到符号加载完毕,窗口中显示出最后一行“Followup: MachineOwner”才会变为空闲状态。在空闲状态时,它将显示为与上图中类似的模样。为什么说类似呢?因为这个空闲待命提示根据调试类型、计算机处理器硬件配置不同,比如此例中,进行的是内核调试,于是显示“kd>”(kernel debug),系统为多(核)处理器,因此在“kd>”之前还显示一个“0:”,表明当前位于编号为0的处理器。在执行了某个命令之后,如果命令需要处理的任务较多(如“!analyze -v”),提示区域将显示为忙碌状态的“*BUSY*”,一旦显示为这个状态,您不论输入什么命令都不会立即执行,而是等待变为空闲状态时延缓执行。
如上图所示,图中区域1处将显示打开的这个内存转储文件的物理路经;区域2处显示的则是当前加载的符号文件的位置,本例中表明是从微软服务器下载;区域3共有三行,显示的为系统信息,第一行表明了系统为Windows XP,内核版本为2600(SP3),多处理器(2颗),32位,第二行表明了系统类型为NT系统,客户端系统,第三行表明系统的详细版本标识;区域4共两行,第一行表明该内存转储文件生成的时间,也就是系统崩溃的具体时间,本例中(这是去年12月得到的一个崩溃转储文件,现用作本例进行说明)为星期六(Sat),12月(Dec)27日,22:56:31.062,2008年,格林尼治标准时间东八区(GMT+8),第二行显示的是崩溃时自系统启动以来,系统共运行了0天4小时5分15.797秒。区域5是很关键的错误信息,它的第一行仅在加载符号文件遇到错误时显示,此例中,它告诉我们“对于BaseTDI.SYS文件,模块已经加载完毕但却不能够为其加载符号文件”,如果之前配置了正确的符号文件路径,这就告诉我们BaseTDI.SYS不是微软公司的文件,而是第三方驱动程序文件,这很可能是引起错误的原因,值得关注但须进一步分析。区域5的第二行是WinDbg自动分析的结果,它告诉我们,引起崩溃的原因(Probably caused by:)很可能是HookUrl.sys文件。一般情况下,这就是引起错误的罪魁祸首了,但是也有不少的例外,最典型的就是显示一个微软自己的文件在此处,您可要注意了,为了避免枉杀无辜,最好进一步分析来看看都有哪些模块牵扯在崩溃的最后一刻,这样就能够保证审判无误了!进一步分析的命令可以从“!analyze -v”开始。
我们既可以在命令输入区域手动键入命令
!analyze -v
复制代码
,也可以在上图中的区域7所示位置单击蓝色的这个命令。之后,提示区域将显示为“*BUSY*”,WinDbg将分析一段时间直到将结果显示完毕并再次转为空闲状态。下面我们根据一张例图阐释执行“!analyze -v”后显示的各种结果:
WinDbg经过自动的分析,可能会显示上图中区域1处所示第一行的错误检查说明(Bug Check Interpretation),而第二行则给出了详细的解释,从图中信息看得出,此例错误由于“驱动程序在队列工作项目完成之前卸载”造成的。这个“DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS”就应该是显示在蓝屏上方的错误说明字样,后面的Arguments1~4就是蓝屏时停止代码后面的四个参数。图中区域2所示的BUGCHECK_STR是WinDbg中分了类别的错误检查(Bug Check)的一项,此例中为0xCE,也是停止代码的分类简写,我们在命令输入区执行
.bugcheck
复制代码
命令,可以得到停止代码及其参数,这和上图的区域1、蓝屏上的信息是一致的。本例中可以得到如下结果:
0: kd> .bugcheck
Bugcheck code 000000CE
Arguments bacb0a4e 00000008 bacb0a4e 00000000
我们在Bugcheck code值前补上“0x”就可以得到蓝屏上的信息“***STOP: 0x000000CE (bacb0a4e, 00000008, bacb0a4e, 00000000)”。当然,关于这个错误如果您想了解更多,一个是可以在微软在线帮助和支持网站上搜索字符串“0x000000CE”,再就是可以利用上图中区域2的BUGCHECK_STR值“0xCE”执行
.hh bug check 0xCE
复制代码
命令,在打开的窗口左栏右下角点击“Display”按钮。如果要在WinDbg中显示一个停止代码或者错误检查类的详细说明(以此错误为例),键入命令
!analyze -show 0x000000CE
复制代码
或者
!analyze -show 000000CE
复制代码
,也可以是
!analyze -show 0xCE
复制代码
。区域3中显示的就是二审判决的重要信息——线程堆栈信息。特别注意红色框内的部分,第一行是“WARNING: Frame IP not in any known module. Following frames may be wrong.”意思就是“警告:堆栈帧IP(InstructionPtr,仅x86处理器,用于决定帧的堆栈回朔的指令指针)不存在于任何已知的模块中,下面的帧可能出现错误”。这个意思的解释已超出本文讨论范围,笔者仅告诉大家,这行文字下面的一行右侧的模块是系统蓝屏崩溃时刻使用的最后一个模块(除了Windows内核最后调用KeBugCheckEx牺牲自己,就是警告文字上方的三行),往往就是它引起了崩溃!我们来细看。大家如果了解了堆栈的数据结构或是Windows内存分配机制就应该知道,Windows为 线程分配额外内存时是从高地指向低地址进行的,就是说,蓝色区域3中的堆栈信息我们得倒过来由下往上看,这样才是系统崩溃之前的一刻内核态函数的调用和传递情况,比如此例,系统内核执行体(nt!,即Ntoskrnl.exe)通过函数IopfCallDriver调用了BaseTDI,然后BaseTDI又调用了HookUrl.sys(Unloaded_字样表示未加载),再然后就蓝屏了。那么在这最后一刻就涉及到了两个非Windows内核的模块——BaseTDI以及HookUrl.sys。之所以要进行这个“二审判决”,就是要避免一种情况——万一HookUrl.sys与BaseTDI是来自两个公司或者两个软件的模块,而最后加载的HookUrl.sys是没有问题的,出错是因为BaseTDI给HookUrl.sys传递了格式错误或者已被破坏的、或者非法的参数信息,HookUrl.sys接受此无效数据而引发了崩溃。如果我们不看线程栈,就根据之前的“Probably Cause by:HookUrl.sys”进行判决,我们很有可能枉杀无辜而让凶手逍遥法外。只有通过线程栈我们才能发现另一个驱动程序BaseTDI也被牵连进来。(在应用程序崩溃不致系统崩溃的调试分析中,由于处于用户态,WinDbg自动分析结果中的“Probably Cause by:”几乎都是错误的。在这种情况下,使用!thread命令是不能显示出任何信息的,因为这个命令仅对内核态的崩溃调试有效,然而kb命令也显示不出有用的信息,只有用“~*kb”来显示详细的全部线程栈才可能发现问题根源,有的时候还需配合其他命令,本文不作讨论)
当然,如果您熟练以后,觉得没有必要使用“!analyze -v”命令的话,可以直接使用
!thread
复制代码
或者
kb
复制代码
命令显示出核心的线程栈信息来二审判决。现在好了,犯罪嫌疑人目标锁定在BaseTDI和HookUrl.sys身上。现在,我们来看看它们究竟是什么、是哪个公司、哪个程序的模块。(从之前不能够自动从微软服务器为他们加载符号文件就可以知道,它们一定都是第三方驱动程序)
使用命令
lm kv m Basetdi*
复制代码
(使用lm(列出模块)命令和内核k选项、详细v选项以及参数m,配合包含通配符*的字符串BaseTDI,来列出当时已加载于内核模式的包含字符BaseTDI的所有驱动文件详细信息。使用通配符来取代完整的文件名后缀可以避免信息的局限性,借此也许可以发现多个相关的模块以提供更多诊断线索),我们得到下图结果:
从图中蓝色框选部分,我们可以看出,当时内核态下只有一个叫BaseTDI.SYS的文件,这个文件的路径位于System32\Drivers下,属于名称为“瑞星个人防火墙”(ProductName: Rising PFW, PFW=Personal Firewall)的程序组件,软件公司注册商标为“瑞星”(LegalTrademarks: RISING)。文件的这些英文描述信息如果您不知道,可以百度一下。当然,没有被笔者高亮显示的信息(如文件时间戳、版本、校验和等等)也是非常有用的,比如百度一下文件版本,也许您会发现该软件已经提供了更新的解决此问题的文件。同样,我们使用
lm kv m hookurl*
复制代码
来显示当时内核态下包含HookUrl的文件及其详细信息。结果如下:
图示是一个不令人满意的结果,因为如高亮部分所示,这个模块未被加载,因此没有信息被记录。不过我们有百度,不用急,百度一下你就知道。在搜索完HookUrl.sys之后,发现这个也是瑞星个人防火墙的文件。其实这个案例就是著名的“瑞星个人防火墙跨版本升级到2009版时引发蓝屏”事件。您可以通过关键字“瑞星防火墙2009升级造成蓝屏”进行百度搜索。到目前为止,瑞星官方都没有任何针对此事件的正式答复,虽然不是每个用户都出现此问题,但是非常多的用户都报告了此问题,瑞星也不承认这个是软件缺陷,只有官方卡卡论坛上有一个不知道是不是工作人员的人发帖要求大家遇到蓝屏就上传内存转储文件。说到这里,我对瑞星又要失望了,但是通过这个可见蓝屏内存转储文件的分析是多么的有用!
在这里,我还要给出两个要得到更多信息时可能会使用到的命令,一个是
!process 0 0
复制代码
,它可以列出当时运行着的所有进程的技术信息;另一个则是
!vm
复制代码
,它能够显示出当时的虚拟内存使用情况,这对于分析系统是否耗尽了虚拟内存、换页内存池或非换页内存池,并结合进程列表找到可能的内存泄漏错误非常有用,不过已超出了本文的讨论范围。
最后,我们来看看以下的两种特殊情况该如何使用WinDbg进行调试分析:
第一种情况是系统挂起,也就是“死机”、“系统没有响应”,在这种情况下,系统是根本无法自动生成内存转储文件的,而且您也不可能操作本地软件来查明是什么挂起了系统,这个时候我们需要手动让系统崩溃,以生成内存转储文件。具体做法为,在系统挂起之前,打开注册表编辑器并定位至
HKEY_LOCAL_MACHINE \System\CurrentControlSet\Services\i8042prt\Parameters
复制代码
,在该项下面建立一个名为
CrashOnCtrlScroll
复制代码
的DWORD类型键值(注意大小写),并将其设置为1,然后重新启动应用此更改。一旦系统挂起,就可以通过按住右边Ctrl键的同时击ScrollLock键两次来生成一个停止代码为0x000000E2(MANUALLY_INITIATED_CRASH)的手动崩溃。得到内存转储文件以后按照上面的方法分析。注意,此方法对插入USB口的USB键盘无效。(笔记本计算机键盘很多都是通过PS/2接口连接的,因此有效)
第二种情况是进不了系统就自动崩溃,无法提取出内存转储文件。这种情形以及当有特定的需要时,我们都可以采取双机调试的方法。我们将发生崩溃的机器称为“目标机”,将用来连接到“目标机”进行调试的机器称为“调试主机”,调试主机必须安装有WinDbg。
首先,我们需要在两台机器间建立连接,在新版的WinDbg中,这里一共有三种方式连接到目标机。第一种方式为通过COM端口连接,使用零调制解调器线缆(Null-Modem),也就是COM对接线——两个头都是孔的RS232线;第二种是利用IEEE 1394线缆连接,但是这种连接要求两台机器运行相同版本的至少为Windows XP的系统;第三种方式是使用特制的USB 2.0调试线缆连接,这不是普通的USB连接线,是一种内置硬件芯片来支持调试的线缆,而且这种方式要求目标机运行的系统至少为Windows Vista。使用这三种连接方式进行双机调试都需要在目标机上作出相应的设置调整,具体参见WinDbg帮助文件,这里仅讨论第一种连接方式的设置,因为这是XP及以上系统默认支持的最简单的方式。此时我们假设已经使用COM线缆连接好了两台机器。
其次,在调试主机上启动WinDbg,配制好符号文件之后,我们展开“File”菜单,选择“Kernal Debug…”,这将会打开如下的“Kernal Debugging”对话框:
默认打开的就是COM连接方式的配置页面。这里的“Baud Rate(传输速率)”以及“Port(端口)”需要根据下一个步骤的操作方式来配置。
最后一步,我们可以启动目标机,在引导Windows之前按下F8,在启动菜单中选择“调试模式”,这样,传输速率被系统默认设为19200,端口也默认被设为COM2,因此上一步骤中应该照此设置后点击“OK”。关于XP修改Boot.ini、Vista修改Bootcfg的方式启用指定端口、传输速率的调试,请参见WinDbg帮助文件,在此不再赘述。目标机一起动Windows,位于调试主机的WinDbg就能够有信息的显示,然后按照本文介绍的方法进行调试。另外,对于上面提到的系统挂起的情况,也可以采用这种双机调试,并且有新的命令
.crash
复制代码
强迫目标机在它的本地硬盘驱动器中生成一个崩溃转储,当系统重新引导以后就可以提取此转储,当然,也可以使用
.dump /m COM.dmp
复制代码
命令,在调试主机WinDbg所在目录下生成一个名叫“COM.dmp”的小内存转储文件(命令中的文件名可以改成其它的)。
编辑本段
预防电脑蓝屏的九个小技巧
1 定期对重要的注册表文件进行手工备份,避免系统出错后,未能及时替换成备份文件而产生不可挽回的错误。
2 尽量避免非正常关机,减少重要文件的丢失。如.VxD .DLL文件等。
3 对普通用户而言,只要能正常运行,没有必要去升级显卡、主板的BIOS和驱动程序,避免升级造成的危害。
4 定期检查优化系统文件,运行“系统文件检查器”进行文件丢失检查及版本校对。检查步骤参见前面相关介绍。
5 减少无用软件的安装,尽量不用手工卸载或删除程序,以减少非法替换文件和文件指向错误的出现。
6 如果不是内存特别大和其管理程序非常优秀,尽量避免大程序的同时运行,如果你发现在听MP3时有沙沙拉拉的声音,基本可以判定该故障是由内存不足而造成的。
7 定期用杀毒软件进行全盘扫描,清除病毒。
8 不上一些不熟悉的网站,对于一些网站上的带有诱惑性的图片和一些中奖的消息,不要点击。
9 定期升级操作系统,软件和驱动。
字多了点...........慢慢看哈 ╮(╯▽╰)╭“苦连个”孩子 参考技术A 你好,出现【D1】,这是:显卡的问题,更新一下【显卡驱动】!
试试,不行,就换【显卡】!
这是解决方法:(作者:力王历史)
1。试试开机,出完电脑品牌后,按F8,安全模式,光标选定:最后一次正确配置,
回车,回车,按下去!【关键一步】
2。再不行,进安全模式,回车,到桌面后,杀毒软件,全盘杀毒!
“隔离区”的东西,彻底删除!
3。再使用:360安全卫士,“功能大全”里的:“360系统急救箱”,
点:开始急救!重启后,点开“文件恢复区”,全选,彻底删除文件!
系统修复,全选,立即修复!【关键一步】
网络修复,开始修复,重启电脑!
360安全卫士,扫描插件,立即清理!360安全卫士,系统修复,一键修复!
【金山急救箱】,勾选:【扩展扫描】,立即扫描,立即处理,重启电脑!
4。再不行,拔下显卡和内存条,橡皮擦擦,再用毛刷,清理插槽灰尘和风扇,
更换内存插槽等!【台式机】
5。检查是否有同类功能的,多余类似软件,如:多款播放器,多款杀毒软件
等,卸载多余的,只留一款,因为同类软件,互不兼容!【关键一步】
6。再不行,下载“驱动人生”,升级:显卡驱动!
7。再开机,如果还是不行,需要“一键还原”或“重装系统”了!
8。硬件有问题,送修!本回答被提问者采纳 参考技术B 很高兴为您解答:
1。电脑中存有病毒(打开腾讯电脑管家一杀毒一扫描查杀)如果杀到木马或病毒后,应立即重启, 重启电脑后,来到“隔离|恢复”,彻底删除,木马和病毒!
2。电脑系统有顽固的病毒和木马或蠕虫干扰,或者丢失了系统文件(腾讯电脑管家的顽固木马查杀,打开腾讯电脑管家一工具箱一顽固木马查杀)
3。电脑中下载的软件有冲突,不兼容,(腾讯电脑管家,软件卸载,找到卸载,再:强力清扫)!比如:播放器重复或有相似的,杀毒,浏览器,游戏,输入法有同类多余的,卸载多余的,只留一款!
4。软件需要更新,(腾讯电脑管家,软件升级,下载,覆盖安装,winrar可以不升)
5。系统有新的漏洞等待安装,(打开腾讯电脑管家一漏洞修复一扫描修复)
6。显卡或内存cpu,或风扇的接触不良和松动或有灰尘覆盖,(拔下橡皮擦擦)
7。内存cpu过热,散热性不好!(开机时间不要太长,关机散热)
8。电脑存在恶评插件! (扫描出来,立即清理)或磁盘碎片过多,(使用腾讯电脑管家),清理碎片!
9。如果还是不行,说明系统文件丢失了!或者系统内存有很严重的错误了!
10。试试开机后按F8,回车,回车,进安全模式里,最后一次正确配置,按下去试试!或者,进安全模式,到桌面后,打开腾讯电脑管家,全盘杀毒!
11。玩游戏蓝屏,一般就是系统不支持这款游戏!(更换游戏版本或换xp系统)
12。下载的游戏,播放器,输入法,下载工具,浏览器,驱动,等等的程序不稳定!(使用腾讯电脑管家卸载重装或升级至最新版本)!
祝楼主工作顺利、生活愉快!! 参考技术C 电脑出现蓝屏的情况有很多种常见的有
1 软件与软件冲突造成蓝屏
2病毒干扰
3文件打开太多,造成内存不够用而蓝屏
4再就是cpu发热造成的蓝屏。
这个问题,不是用一两句话能说完的,长篇大论又太过繁琐。如果问题小的话您就将计算机重启一下。就可以再用了。一般没啥大问题。大不了把系统重装一下就可解决。 参考技术D 有时候 系统出错会出现蓝屏 LZ可以重启计算机 在开机时选择最后一次正确选择 然后开机 如果反复这样 LZ幸运的告诉你 你的内存条坏了 换一个要180 手机党为您服务
以上是关于电脑死机,蓝屏报错代码的含义的主要内容,如果未能解决你的问题,请参考以下文章
电脑蓝屏。安装windows 7和Ubuntu就蓝屏或死机,硬件问题出在哪?