关于Fault,Trap,Abort异常的区分和执行到什么阶段以及断点保存的差异

一句话结论:
Fault 和 Trap 都是在指令“边界”被处理的(保证原子性),但触发时机不同;Abort 则是无法保证原子性的,可能在指令执行中途就让系统直接挂掉。

三类异常的严格区分

1. Fault(故障型异常)


2. Trap(陷阱型异常)


3. Abort(终止型异常)


Fault 和 Trap 都是在指令执行完才进行处理?Abort 呢?


对比总结表

类型 检测点 处理点 返回后执行哪条指令 可恢复性 典型例子
Fault 指令执行中 指令边界(假装未完成) 当前指令重试 可恢复 缺页、除零、段不存在
Trap 指令执行完成后主动触发 指令完成后 下一条继续 本来就正常 系统调用、调试断点
Abort 执行任意时刻(严重错误) 不保证边界,直接停机 无法保证 不可恢复 总线错误、硬件损坏