异常记录分为:CPU异常记录与软件模拟异常记录
CPU异常记录例如: 除零
软件模拟异常记录例如: throw 1(c++)
CPU异常记录分析:
CPU异常后直接进入了0号中断
0号中断调用流程分析:
一丶保存当前的环境信息到Trap_Frame结构体(位于当前堆栈的位置)
二丶调用Ki386CheckDivideByZeroTrap判断是否是除零异常,(如果是就获取异常码)
三丶调用CommonDispatchException,保存异常信息到EXCEPTION_RECORD结构体(位于当前堆栈位置)
图片效果:
电脑没电了,明天再更新用户异常记录
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课