OS实验2-1 课堂练习2.1 外部中断

OS实验2-1 课堂练习2.1 外部中断

第1关:时钟中断的发生

本关任务:

在这里插入图片描述

解题过程:

1.版本1调试内核准备

在这里插入图片描述
在这里插入图片描述打开1.tgz内核文件所在位置,复制到os/linux-0.11-lab文件夹中(也可以在命令行中使用cp命令复制,不过这样比较方便)

cd os/linux-0.11-lab
tar xvzf 1.tgz
打开命令行输入以上命令。第一句命令是打开1.tgz文件所在位置,第二句命令是对1.tgz进行解压。

在这里插入图片描述调整linux内核cur指向

在这里插入图片描述进入1/linux文件夹对其进行编译

cd ../..
回到主文件夹准备进行调试

2.调试过程

./rungdb
输入命令启动bochs虚拟机

打开另一个命令行窗口,cd进入主文件夹
./mygdb
输入命令开始gdb调试

在这里插入图片描述函数do_timer是时钟中断的处理函数,故在函数do_timer处设置断点。
全局变量jiffies存放程序运行至此时钟中断次数,可通过p jiffies命令查看。
在刚刚设置的断点处输入command命令,实现自动查看。

在这里插入图片描述不断键入c(或者回车),直到虚拟机首行被字符填满

在这里插入图片描述此时jiffies为36

补充:此关通过检测条件是查看
display jiffies
无此命令结果不能通过,故可在jiffies出现36后输入以上命令再查看一边,或者直接讲command中改为此命令

补充知识:

  1. tar解压命令

    -x 从档案文件中释放文件。
    -v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
    -z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。
    -f 使用档案文件或设备,这个选项通常是必选的。

  2. make编译命令

    make clean用来清除上次编译后生成文件,这里使用是为了保险;make用来编译

  3. 设置断点

    b设置断点
    info b 查看断点
    command 1 在1号断点处设置命令

第2关:第一次时钟中断

本关任务:

在这里插入图片描述

解题过程:

1.版本1调试内核准备

同第一关

2.调试过程

./rungdb
输入命令启动bochs虚拟机

打开另一个命令行窗口,cd进入主文件夹
./mygdb
输入命令开始gdb调试

要查看第一次时钟中断恢复点,首先要跟随第一次时钟中断执行完毕
函数do_timer是时钟中断的处理函数,故在函数do_timer处设置断点。

在这里插入图片描述输入bt命令查看栈帧信息,了解到timer_interrupt函数调用了do_timer,故do_timer函数执行完毕后将返回timer_interrupt函数继续执行,timer_interrupt即为时钟中断处理函数。

在这里插入图片描述finish命令执行完毕do_timer,进入timer_interrupt

在这里插入图片描述使用disas命令查看汇编指令,输入si继续执行下一条,直到进入<ret_from_sys_call>

在这里插入图片描述再次使用disas查看,可知函数末尾返回指令iret地址,设置新断点执行至此

在这里插入图片描述可知恢复点地址为0x796c

补充知识:

  1. bt命令

    显示程序的调用栈信息

  2. si/ni命令

    si:“单步步入”(step into),遇到函数调用,进入函数内部
    ni:遇到函数调用直接跳过,不进入函数体内部

  3. disas命令

    全名为disassemble命令,有三种用法:
    不带参数:默认的反汇编范围是所选择地址附近的汇编代码
    单个参数:当然也可以是函数名,因为函数名也是一个 地址
    两个参数:就是内存地址范围

  4. finish命令

    执行函数到正常退出该函数

第3关:第六次时钟中断

本关任务:

在这里插入图片描述

解题过程:

1.版本1调试内核准备

同第一关

2.调试过程

设置断点后,运行到第六次时钟中断

在这里插入图片描述可使用command命令,便于查看时钟中断次数

在这里插入图片描述此时虚拟机输出字符串为0100

查看恢复点位置,同第二关

在这里插入图片描述恢复点位置为0x7982,且该条指令为loop

在这里插入图片描述查看ecx寄存器,可知仍在循环中,其断点指令仍为loop指令

故断点恢复点地址均为0x7982

猜你喜欢

转载自blog.csdn.net/weixin_67752743/article/details/128266155