异常分类

来源:互联网 发布:知乎孔雀东南飞 编辑:程序博客网 时间:2024/05/29 14:53

处理器探测异常依据发生异常时eip保存的值而分为3种类型。

1. 故障:故障是一种可恢复的异常,故障发生时eip保存的是引起异常的这条指令,当异常处理程序完成时,cpu从该指令不失连贯性的继续执行。常见的故障有缺页异常。

               还有许多cpu指令执行中遇到的问题都属于故障,如除0异常,段错误,General protection,无效的指令,对于这些异常cpu会想引起异常的进程发送一个关联的unix信号,如果处理进程并没有挂接处理函数,内核又不知如何处理故障,那么异常处理程序往往只有杀死进程。

2. 陷阱: 保存在eip中的是一个随后要执行的指令地址。异常处理程序执行完,cpu从下一条指令开始不失连贯性的执行。常见的陷阱有调试断点、单步执行等。

3.异常中止:代表内核控制单元出了问题,eip中无法保存引起异常的确切地址。异常中止发出一个非常紧急的信号,而异常服务程序除了中止异常进程外别无选择。如协处理器错误,总线错误。

可编程异常:

在编程者发出请求是发生,通常由int int3指令出发;而into(溢出检查)和bound(边界校验)返回不为真时也会触发。可编程异常时当做陷阱来处理的。可编程异常两种常见的用途为系统调用和向程序发出一个信号以供调试。


原创粉丝点击