第1关:任务寄存器(TR)的分析

环境准备

cp /data/workspace/myshixun/exp1/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

gdb输入

b task1
c
p *current
p/x current->tss
p &current->tss
quit

退出gdb调试

 启动dbg,注意不是gdb 

./rundbg

再输入,最后按下回车键

b 0x7985
c
sreg
x/14wx 0x5cc0

 

 

第2关:1 号进程的状态变化

第一关环境下,gdb调试

b sys_pause if current->pid==1
b sched.c:120 if p->pid ==1
c
display current->state
n
c
p p->pid
p p->state
bt
disable
finish
finish
x/3i $eip
si
si
x/28i $eip
info registers

1.系统处于几号进程的上下文或者说,当前进程是几号进程?(0)
2.内核的函数调用栈中的底层函数是什么?(timer_interrupt)
3.内核处于哪种控制流?(B)
A.(系统调用)B.(中断)C.(异常)
4.后续回到用户态时,恢复点的位置是什么?(0x796c)
5.以前的断点位置是什么?(0x796c) 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐