什么是致命异常错误

原创 2004年09月24日 15:57:00

概要

尝试关闭计算机、启动 Windows 或 Windows 内的程序时,可能遇到类似下面的错误消息:
xxxx:xxxxxxxx 位置发生了致命异常 XY
致命异常错误是由程序在下列情况下返回的代码:
  • 发生了对非法指令的访问
  • 访问了无效的数据或代码
  • 某个操作的权限级别无效
出现上述任何一种情况时,处理器都会向操作系统返回一个异常错误,接着,该异常错误被作为“致命异常错误”加以处理。多数情况下,异常错误是不可恢复的,而且系统必须重新启动或关闭,这取决于错误的严重程度。

在上面列出的示例错误消息中,XY 代表实际的处理器异常号(从 00 至 0F)(请注意,在下面的说明中,0E、0F 等后面的 h 通常在错误消息中省略。)xxxx:xxxxxxxx 值代表了指向代码段的增强型指令指针;这个 32 位地址是发生异常错误的实际地址。

Windows 不会引发这些错误,但 Windows 具有针对这些特殊处理器异常的异常处理例程,错误消息就是由这些例程显示的。

备注:本文主要提供相关信息。单击下面的链接可转到本文的“致命异常错误的故障排除”一节:

致命异常错误的故障排除

更多信息

处理器异常及其定义



00: Divide Fault(除法错误)



当处理器遇到除法错误时,将返回本异常。如果执行除以 0 操作,或操作结果不符合目标操作数的要求,就会发生除法错误。

02: NMI interrupt(NMI 中断)



2 号中断是为硬件发生非屏蔽中断保留的。不会通过 2 号中断捕获异常。

04: Overflow Trap(溢出捕获)



执行了 INTO 指令并且 0F 位被设为 1 时,就会出现溢出捕获。

05: Bounds Check Fault(边界检查错误)



BOUND 指令将把数组脚标与上、下边界进行对比。如果脚标超出范围,处理器就会捕获到 05 号中断。

06: Invalid Opcode Fault(无效操作码错误)



如果下列任何条件之一为成立,即返回该错误:
  • 处理器试图对某个与任何合法计算机指令都不对应的位结构进行解码。
  • 处理器试图执行某个包含无效操作数的指令。
  • 当处理器正运行于虚拟的 8086 模式下时,试图执行保护模式的指令。
  • 处理器试图用某个无法锁定的指令来执行 LOCK 前缀。

07: Coprocessor Not Available Fault(协处理器不可用错误)



如果计算机没有算术协处理器,而且寄存器 CR0 的 EM 位指示当前正在使用“数字数据处理器”仿真,就会出现该错误。每当执行浮点运算时,就会发生 07 号中断。

如果使用算术协处理器并执行任务切换,也会发生此类错误。07 号中断告诉处理器:需要保存协处理器的当前状态,以便其它任务使用。

08: Double Fault(双重错误)



对异常的处理有时会触发另一个异常。出现该情况时,处理器将为双重错误发出 08 号中断。

09: Coprocessor Segment Overrun(协处理器段超限)



如果浮点指令引起内存存取超过了段尾,就会发生该错误。如果浮点运算数的起始地址位于段外,就会发生“常规保护错误”(0D 号中断)。

10 (0Ah):Invalid Task State Segment Fault(无效任务状态段错误)



由于“任务状态段”中包含很多描述符,多种情况可引发 0A 异常。通常,处理器可以从“任务状态段”收集到足够的信息,来发出指向实际问题的另一个错误。有关详细信息,请参见 Microsoft's Programming the 80386/80486 Guide

11 (0Bh):Not Present Fault(不存在错误)



“不存在”中断允许操作系统通过分段机制实现虚拟内存。当某个段被标记为“不存在”时,该段即被换出到磁盘中。当应用程序需要访问该段时,即触发 0B 号中断错误。

12 (0Ch):Stack Fault(堆栈错误)



如果某个指令所引用的内存超出了堆栈段的限制,就会发生“堆栈错误”,其错误代码为 0。如果操作系统支持向下扩展的段,则增加堆栈的大小应当能缓解该问题。向堆栈段加载无效描述符将引发常规保护错误。

13 (0Dh):General Protection Fault(常规保护错误)



未被其它任何处理器异常所涵盖的任何条件都将引发常规保护错误。该异常指示在内存中此程序已被损坏,通常导致程序立即终止。

14 (0Eh):Page Fault(页面错误)



“页面错误”中断允许操作系统根据分页的需要来实现虚拟内存。访问分页目录项或分页表时,如果存在位为 0(即不存在),通常就会发出 14 号中断。操作系统将使该页存在(通常从虚拟内存中检索并调回该页),然后重新发出有错误的指令,这样,该指令即可访问该段。如果违反分页保护规则(检索失败,或检索到的数据无效,或者发出错误的代码破坏了处理器的保护规则),也会引发页面错误。上述情况下,操作系统将接管控制,并进行相应的处理。

16 (10h):Coprocessor Error Fault(协处理器出错错误)



当某个未屏蔽的浮点异常发出以前的指令时,就会引发该中断。(由于 80386 无法访问“浮点单元”,因此它需要检查 ERROR/ 管脚来测试这种情况。)如果在 CR0 设置了“模拟算术协处理器”位,则 WAIT 指令也会触发该中断。

17 (11h):Alignment Check Fault(对齐检查错误)



该中断仅用于 80486 CPU。下列情况下将发出 17 号中断:在环权限 3 上的代码试图访问某个未在偶数地址范围内的字运算数,或者试图访问无法被 4 整除的双字运算数,或者试图访问其地址不能被 8 整除的长实型或临时实型运算数。CPU 首次加电时将禁用对齐检查,它仅在保护模式下启用。

致命异常错误的故障排除



干净启动计算机



因为引起致命异常错误的条件各不相同,所以解决问题的第一步是缩小可能范围。为此,可尝试“干净启动”计算机。

所谓“干净启动”故障排除,是指减少由于计算机环境所产生的问题。出现的许多问题是由相互冲突的驱动程序、内存驻留程序 (TSR) 以及其它启动计算机时所装载的设置而引起的。关于如何干净启动计算机的其它信息,请单击以下文章编号,查看相应的 Microsoft Knowledge Base 文章:

192926 如何进行干净启动以排除 Windows 98 故障

243039 如何在 Windows 95 中执行干净启动

查询 Microsoft Knowledge Base



要确定您收到的错误消息在 Microsoft Knowledge Base 中是否有记录,请执行以下步骤:
  1. 连接下列 Microsoft 支持联机 Web 站点:

    http://support.microsoft.com/support/

  2. 单击 Searchable Knowledge Base 链接,然后在 My search is about 框中单击 Windows 95Windows 98Windows 98 第二版Windows Millennium Edition
  3. I want to search by 框中选择要执行的查询类型,然后在 My question is 框中键入一个或多个与您的问题有关的查询字。

    备注:键入查询字时,可以不使用错误消息的准确地址。不同的计算机上该地址可能会有所不同,但问题却可能是相同的。例如,如果收到错误消息“IOS VXD”,请使用以下查询字:iosvxdfatalexception,然后单击 Go
  4. 单击 Go 之后,将看到一个文章列表,其中包含所键入的查询字。查阅这些文章,看哪些主题可能适用于您遇到的问题。
有关如何查询 Microsoft Knowledge Base 的其它信息,请单击以下文章编号,查看相应的 Microsoft Knowledge Base 文章:

168242 如何在 Knowledge Base 中搜索 Windows 95/98 文章

242450 如何使用关键字查询 Microsoft Knowledge Base

有关致命异常错误消息的文章



有关致命异常错误消息的其它信息,请单击以下文章编号,查看相应的 Microsoft Knowledge Base 文章:

133440 错误消息:该程序在 00457:000040B1 位置导致致命异常 0D 并将被终止

192803 使用 ATI All-in-Wonder Pro Video Adapter 时致命异常 0D

175211 打开或关闭“控制面板”时出现致命异常错误

171195 暂停和继续执行 MSDLC32 时出现致命异常错误

187214 错误消息:在 0028:C02A0201 位置出现致命异常错误 0E...

190123 错误消息:下列位置已出现致命异常 06 ...

252523 试图连接 Internet 时出现致命异常错误消息

189655 错误消息:在 0028:<XXXXXXXX> 位置出现致命异常 0E

备注:上述文章列表并未包括所有文章。如果某篇文章未能解决您的问题,请使用本文“查询 Microsoft Knowledge Base”部分中的步骤,查找更为详细的信息。

这篇文章中的信息适用于:

  • Microsoft Windows Millennium Edition
  • Microsoft Windows 98 Second Edition
  • Microsoft Windows 98
  • Microsoft Windows 95

人性的致命弱点

人性的致命弱点--------无法克致,无法改变,无法摆脱。人性的致命弱点----------性、懒惰、不知道自己真实需求、懦弱、不敢面对陌生的环境,不敢面对未知的事物,把自己封闭在一个虚拟,自弱的空...
  • flyingdream123
  • flyingdream123
  • 2011年06月12日 22:40
  • 756

Unix/Linux下几个最致命的命令

本文主要参考了以下原文: http://www.linuxpromagazine.com/Online/News/Seven-Deadliest-Linux-Commandshttp://ubunt...
  • liangxiaozhang
  • liangxiaozhang
  • 2012年12月18日 09:23
  • 594

ORA-03106:致命的双工通信协议错误

问题描述:1.接到运维同事的电话,说是A库上执行存储过程hung住,存储过程是通过link访问B库;2.存储过程中有远端库的三个表,select其中一个,hung住,无报错;3.在B库查询该表,报OR...
  • amethystqi
  • amethystqi
  • 2011年07月19日 15:51
  • 11591

泽无水,困。君子以致命遂志

【泽无水,困。君子以致命遂志】 ------------------------------------ 这是易辞困卦。意思是:泽中无水,自己以立于困境之中,并且四周无援,乃至绝望。要想摆脱困境,...
  • wyq1153
  • wyq1153
  • 2017年07月24日 15:45
  • 354

使用桥接模式时要注意的问题

什么是桥接模式?举个例子:平时我们我们的USB(Universal Serial Bus(通用串行总线)),其实其设计的模式就是桥接模式。桥接模式的作用就是:将抽象部份与它的实现部份分离,使它们都可以...
  • a374826954
  • a374826954
  • 2014年11月26日 00:06
  • 2176

ORA-07445: 出现异常错误: 核心转储 [qctosop()+1263] [ACCESS_VIOLATION] [ADDR:0x170] [PC:0x9556D97] [UNABLE_TO_R

今天开发报了一个问题,就是再点击页面上的某个按钮的时候出现标题所示的错误,在metalink上查了一下,说是一个bug,当然这个问题先是想飞哥的论坛里提问的,具体的连接请见文章尾部,从alter和tr...
  • u011128148
  • u011128148
  • 2013年08月08日 22:01
  • 1717

异常错误

1.提交表单: info: You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_S...
  • AAA3A12
  • AAA3A12
  • 2016年05月02日 12:53
  • 188

Intellij 代理抛出异常错误: java.rmi.server.ExportException: Port already in use: 1099,端口被占用

代理抛出异常错误: java.rmi.server.ExportException: Port already in use: 1099 端口被占用 解决方案: 1.查找出占用进程id 2.杀死进...
  • wang7898258
  • wang7898258
  • 2016年09月05日 10:17
  • 5384

将项目构件deploy到远程仓库时 maven 编译器中出现异常 “bug parade 中没有找到该错误”

将项目构件deploy到远程仓库时 遇到 Failure executing javac, but could not parse the error:  编译器 (1.6.0_21) 中出现异常...
  • frank0417
  • frank0417
  • 2012年12月17日 14:45
  • 2740

wallpaper显示相关问题

Wallpaper是由哪个程序绘制的? 如果是静态墙纸,例如系统自带的墙纸,或者从文件系统、图框选择的图片。 这种情况是先通过WallpaperManager的接口把图片剪裁后保存到Wallpape...
  • wangjicong_215
  • wangjicong_215
  • 2017年05月31日 17:07
  • 286
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:什么是致命异常错误
举报原因:
原因补充:

(最多只允许输入30个字)