【头歌】操作系统 课堂练习2.2:中断/异常的处理过程
课堂练习2.2中断/异常的处理过程第1关除零异常分析任务分析版本 1.1 内核回答下列问题1.在函数 main 的语句jiffies jiffies/0;所对应的汇编指令片段中有一个 idiv 指令此指令的地址是多少2.在该 idiv 指令执行之前当前指令位置CS:EIP和栈位置SS:ESP分别是多少3.使用 si 命令执行了该指令后新指令位置和栈位置分别是多少此时栈中保存的恢复点位置和用户栈位置分别是多少第1关 任务过程打开终端输入以下代码ls /data/workspace/myshixun/exp1 cp /data/workspace/myshixun/exp1/1.1.tgz ~/os cd ~/os/linux-0.11-lab tar -zxvf ../1.1.tgz 1.1 rm -rf cur ln -s 1.1 cur ls cd 1.1/linux make打开另一个终端输入以下代码cd ~/os/linux-0.11-lab ./rungdb在打开得第一个终端中继续输入以下代码kill y quitcd ../.. ./mygdb此时会进入gdb中输入以下代码b main.c:147 c x/6i $eip si si si info registers si info registers退出gdb调试kill y quit输入相应答案第2关int指令分析任务分析版本1内核回答下列问题1.函数 task1 的第一个int 0x81指令执行之前当前指令位置CS:EIP和栈位置SS:ESP分别是多少2.使用 si 命令执行了该指令后新指令位置和栈位置分别是多少此时栈中保存的恢复点位置和用户栈位置分别是多少第2关 任务过程打开终端输入以下代码cp /data/workspace/myshixun/exp2/1.tgz ~/os cd ~/os/linux-0.11-lab tar -zxvf ../1.tgz 1 rm -rf cur ln -s 1 cur cd 1/linux make打开另一个终端输入以下代码cd ~/os/linux-0.11-lab ./rungdb在第一个终端中继续输入以下代码cd ~/os/linux-0.11-lab ./mygdb此时会进入gdb输入以下代码b task1 c x/5i $eip si x/5i $eip info registers si info registers x/5wx $esp退出gdb调试kill y quit输入相应答案第2关iret指令分析任务回答下列问题1.函数 task1 的第一个int 0x81指令执行时会转到对应的中断/异常处理程序去运行请问在该处理程序的 iret 指令执行之前指令位置CS:EIP和栈位置SS:ESP分别是多少此时栈中保存的恢复点位置和用户栈位置分别是多少2.使用 si 命令执行了该 iret 指令后新指令位置和栈位置分别是多少第2关 任务过程打开终端输入以下代码cd ~/os/linux-0.11-lab ./rungdb打开另一个终端输入以下代码cd ~/os/linux-0.11-lab ./mygdb此时会进入gdb输入以下代码b task1 c x/5i $eip si x/5i $eip info registers si bt disas b *0x795e c x/5i $eip info registers x/5wx $esp si info registers退出gdb调试kill y quit输入相应答案
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2564466.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!