fedora17下用gdb和bochs调试linux-0.11内核

买了本赵炯博士<<Linux内核完全注释>>,开始学习内核源代码,首先就是动手搭建实验环境,所用操作系统为fedora17,首先下载安装bochs,root下用yum search bochs查看一下是否有bochs相关的安装包,发现有,则执行yum install bochs.i686,安装完毕。然后 根据http://www.oldlinux.org/oldlinux/viewthread.php?tid=3878中的步骤测试了http://oldlinux.org/Linux.old/bochs/linux-0.11-devel-050518.zip中的4个.bxrc文件,当然对于我安装的高版本的bochs-2.5需要根据www.oldlinux.org/oldlinux/viewthread.php?tid=13229&extra=page%3D1修改配置文件(可能还有其他的需要注释),并且将路径中‘\’改为'/',所有的都运行通过后,然后根据www.oldlinux.org/oldlinux/viewthread.php?tid=3809的描述下载了调试版的压缩包,在fc17下可以通过安装bochs-gdb来调试内核,同样通过yum安装bochs-gdb.

1)命令行下执行bochs-gdb -q -f bochsrc-fd1-gdb.bxrc,会发现有错误,将romimage: file=$BXSHARE/BIOS-bochs-latest,address=0xf0000后面的‘,address=0xf0000’删了,然后再执行,发现还有错误,此时只要根据错误提示将无法解析的配置选项用'#'注释了即可.此时再次运行,命令行会打印出Waiting for gdb connection on port 1234,模拟器的屏幕无内容输出。

2)打开另外一个shell,cd linux-gdb-rh9/linux/,执行和gdb tools/system,进入调试状态,在main处设置断点‘b main’,然后执行target remote localhost:1234,在之前的shell中将打印出Connected to 127.0.0.1,本shell中将输出

Remote debugging using localhost:1234

0x0000fff0 in sys_mkdir (pathname=0x0, mode=0) at namei.c:481

481    namei.c: 没有那个文件或目录.

3)在gdb环境中再执行命令“c”,则会执行到刚刚设置的断点init/main.c的main()函数处,就可以调试了,调试时bochs窗口中会打印出相应启动信息。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值