第1关:进程创建前后TR寄存器值的分析
编程要求
根据相关知识,回答问题:(将答案填写在/data/workspace/myshixun/第一关.txt
中)
准备阶段
本实训需要设置内核版本 1 为调试分析的对象,用 gdb 调试内核,内核版本 1 的压缩文件存放在/data/workspace/myshixun/exp1
中。
首先先解压内核,敲熟悉的老铁已经形成手指肌肉记忆,秒搞定,还不会的友友可以跟着来。
1.打开终端,分别输入以下指令。
cp /data/workspace/myshixun/exp1/1.tgz ~/os/cd ~/os/linux-0.11-labtar -zxvf ../1.tgz 1rm -rf curln -s 1 curcd 1/linux makecd ../.../rungdb
2.环境配置完了。打开另一个终端,输入以下指令。前面一个不要关闭。
cd ~/os/linux-0.11-lab./mygdb
3.接着我们会进入到GDB DEBUGING,如图所示。
输入以下指令:
(gdb)b 145(gdb)c(gdb)n(gdb)x/5i $eip(gdb)si(gdb)x/5i $eip(gdb)quity./rundbg<bochs>b 0x68e8<bochs>c<bochs>sreg<bochs>n<bochs>sreg
第2关:1 号进程创建前后的GDT和PCB分析
编程要求
根据相关知识,回答问题:(将答案填写在/data/workspace/myshixun/第二关.txt
中)
注:操作过程中只能出现一个0x0000690a
。
准备阶段
本实训需要设置内核版本 1 为调试分析的对象,用 gdb 调试内核,内核版本 1 的压缩文件存放在/data/workspace/myshixun/exp1
中。
内核环境配置不再说,可以看前面的。第一关过的到了第二关可以不用再解压和修改内核,如果重置环境则要。
打开一个终端
cd ~/os/linux-0.11-lab./rungdb
再打开一个终端,前一个不要关闭.
cd ~/os/linux-0.11-lab./mygdb(gdb)b 145(gdb)c(gdb)n(gdb)x/5i $eip(gdb)si(gdb)p &task[0]->tss(gdb)ni (gdb)p task(gdb)x/20wx gdt(gdb)p &task[1]->tss(gdb)p/x task[1]->tss
课堂练习3.2:进程的创建的两关就算全部搞定了,如果对这些指令运行原理感兴趣的话,或者是说答案怎么从这些指令中找出,可以跟我交流噢!OK了,以上是本次文章的全部内容,stay tuned!