当前位置:首页 » 《随便一记》 » 正文

课堂练习2.2:中断/异常的处理过程

25 人参与  2023年04月13日 18:06  分类 : 《随便一记》  评论

点击全文阅读


第1关:除零异常分析

任务描述
分析版本 1.1 内核,回答下列问题:
1.在函数 main 的语句jiffies = jiffies/0;所对应的汇编指令片段中,有一个 idiv 指令,此指令的地址是多少?
2.在该 idiv 指令执行之前,当前指令位置(CS:EIP)和栈位置(SS:ESP)分别是多少?
3.使用 si 命令执行了该指令后,新指令位置和栈位置分别是多少?此时栈中保存的恢复点位置和用户栈位置分别是多少?

相关知识
为了完成本关任务,你需要掌握:
1.如何设置某版本的内核为分析对象;
2.如何开始用 gdb 调试内核;
3.查看 C 语句编译之后对应的汇编指令片段;
4.分析响应中断/异常时,CPU 做了哪些工作;
5.查看当前寄存器的状态;
6.查看当前栈顶的状态。

gdb调试过程

(gdb) b main.c:147Breakpoint 2 at 0x6903:

点击全文阅读


本文链接:http://zhangshiyu.com/post/59500.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1