Homework: boot xv6(MIT6.828 LEC2作业)

地址:Homework: boot xv6

环境部署

  1. 复制项目到本地
    在目录6.828下面使用命令:git clone git://github.com/mit-pdos/xv6-public.git将项目复制到本地。之后使用make即可。

  2. 使用gdb调试
    打开两个终端,都进入6.828/xv6-public目录下。第一个终端使用命令make qemu-gdb,第二个使用命令gdb[1]。在运行gdb的终端里面打断点0x10000c,输入c命令运行。并使用info reg查看各寄存器值,使用x/24x $esp查看栈里面的内容。

[1]:如果使用gdb调试的时候不成功,那么可以尝试在~/.gdbinit文件里面加入下面的内容:
add-auto-load-safe-path /home/(你的用户名)/6.828/xv6-public/.gdbinit
set auto-load safe-path /

栈内容解析

通过上面的调试,可以得到当指令执行到0x10000c处时,各寄存器的值为:

eax            0x0	0
ecx            0x0	0
edx            0x1f0	496
ebx            0x10074	65652
esp            0x7bdc	0x7bdc
ebp            0x7bf8	0x7bf8
esi            0x10074	65652
edi            0x0	0
eip            0x10000c	0x10000c
eflags         0x46	[ PF ZF ]
cs             0x8	8
ss             0x10	16
ds             0x10	16
es             0x10	16
fs             0x0	0
gs             0x0	0

栈里面的内容为:

0x7bdc:	0x00007d8d	0x00000000	0x00000000	0x00000000
0x7bec:	0x00000000	0x00000000	0x00000000	0x00000000
0x7bfc:	0x00007c4d	0x8ec031fa	0x8ec08ed8	
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值