fedora17下用gdb和bochs调试linux-0.11内核
2014-01-10 14:41
549 查看
买了本赵炯博士<<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窗口中会打印出相应启动信息。
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窗口中会打印出相应启动信息。
相关文章推荐
- 终于可以通过GDB和BOCHS调试LINUX0.11内核了
- ubuntu9.04下用bochs安装及调试linux0.11内核
- ubuntu 8.04 bochs 调试linux 0.11内核
- Ubuntu 12.04安装带调试功能的Bochs 2.6.2, 调试linux 0.11 内核
- 使用bochs和gdb联合调试Linux内核
- bochs调试linux 0.11内核
- CentOS 6 + bochs-2.6 + gdb 调试 linux 0.11 —— 成功
- gdb调试linux0.11内核。
- 使用bochs和gdb联合调试Linux内核
- 利用bochs调试linux 0.11内核
- ubuntu8.04下bochs安装及调试linux 0.11内核
- CentOS 6 + bochs-2.6 + gdb 调试 linux 0.11
- bochs + gdb 调试linux0.11
- CentOS 6 bochs-2.6 gdb 调试 linux 0.11——bochsrc-hdc-gdb.bxrc
- bochs+gdb源码级调试Linux 0.12内核测试环境构建
- 利用bochs调试linux 0.11内核
- SUSE 11.2 下使用bochs调试linux-0.11内核(原创)
- ubuntu+bochs2.2.1+gdb+gcc3.4.1+linux0.11=内核雏形研究神器
- Ubuntu 12.04安装Bochs 2.6.2, 调试linux 0.11 内核
- ubuntu 8.04 bochs 调试linux 0.11内核 .