深入学习XV6系统(2)

之前用gdb结合QEMU调试XV6,没怎么记录整理,这里总结一下:

///

环境

Win7+VBox+Ubuntu 14.04

source code 可以从下面地址拿到,如何编译上一节深入学习XV6系统(1)有讲到

git clone git://github.com/mit-pdos/xv6-public.git

如何debug xv6?

http://zoo.cs.yale.edu/classes/cs422/2011/lec/l2-hw

我是按照以上Yale的课程的方法: GDB+QEMU, 简单的step就是:

1)cd 到xv6代码目录,这里假定xv6已编译

2)make qemu-gdb

172145_ZmZc_617541.png

这时候QEMU启动但是XV6还木有跑起来QEMU在等待gdb的指示boot xv6。

注意红框里面的值是26000TCP端口号

3)再开一个terminal, cd 到xv6代码目录: gdb kernel

4)这里比较关键了,gdb和qemu如何交互的具体原理上面Yale课程里面的链接有介绍, 简单的理解是gdb通过socket同qemu进行通讯。

如何建立socket连接使用gdb的命令 

target remote localhost:26000

localhost是主机名, 26000是端口号,这些信息在2)的输出中可以找到

这样就建立了连接

打上断点:b exec,然后一路c(continue)下去, Xv6就跑起来了

174231_6N6f_617541.png

174309_G0BX_617541.png

174310_v9DT_617541.png

一直等到$出现, 就说明xv6 ready了,可以敲命令调试了, 比如b fork, 然后xv6的界面输入ls


注意: yale链接里面的代码有可能编译不过,至少在我这里是,这样比较麻烦,所以用mit的链接的git repo比较安全

以上


转载于:https://my.oschina.net/u/617541/blog/539701

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值