bochs gdb 联合调试
2010-05-23 14:24
309 查看
系统终于还是出现了我无法短时间直接从代码看出来的错误,早就知道这是不可免去的。
我是ubuntu的系统,bochs必须自己编译方可支持与gdb的联合调试。
1.下载bochs.
http://bochs.sourceforge.net/ 下载最新版本。
2.安装依赖。
3.
4. $sudo make
5. $sudo make install
OK,完成了。试试。
其中11行是打开gdb联合调试。
把bochs做链接到/bin下就可以了
$bochs -q -f bochsrc
打开另一终端运行gdb
OK.
在调试内核的时候遇到了一个问题,就是gdb找不到symbol.最后才发现是自己一时疏忽,竟然在ld中用-s选项将symbol给清除了。
当然,在生成可执行内核时这是必须的,要不然内核会大好几倍。所以我的做法是在Makefile中修改,将ld的-s选项去掉,并在
生成内核的时候
我是ubuntu的系统,bochs必须自己编译方可支持与gdb的联合调试。
1.下载bochs.
http://bochs.sourceforge.net/ 下载最新版本。
2.安装依赖。
1: $apt-get install build-essential //编译工具链,这是必须的
2: $apt-get install xorg-dev //图形
3.
1: $tar xvf bochs-2.4.2.tar.gz
2: $cd bochs-2.4.2
3: $./configure --prefix=/opt/bochs/gdbstub --with-x11 --enable-gdb-stub --enable-disasm --enable-pci --enable-pcidev --enable-plugins --enable-ne2000 --enable-pnic --disable-docbook //prefix指定目录,自己随意指定即可,docbook在编译的时候会出错,我们把它去掉就是了
4:
4. $sudo make
5. $sudo make install
OK,完成了。试试。
1: //bochsrc
2:
3: 1.megs:32
4: 2 romimage: file=/opt/bochs/gdbstub/share/bochs/BIOS-bochs-latest
5: 3 vgaromimage:file=/opt/bochs/gdbstub/share/bochs/VGABIOS-lgpl-latest
6: 4 floppya:1_44=a.img,status=inserted
7: 5 ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
8: 6 ata0-master: type=disk, path="80m.img", mode=flat, cylinders=162, heads=16, spt=63
9: 7 boot:a
10: 8 log:out.txt
11: 9 mouse:enabled=0
12: 10 keyboard_mapping:enabled=1,map=/opt/bochs/gdbstub/share/bochs/keymaps/x11-pc-us.map
13: 11 gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0
14:
其中11行是打开gdb联合调试。
把bochs做链接到/bin下就可以了
$bochs -q -f bochsrc
打开另一终端运行gdb
1: >target remote localhost:1234
OK.
在调试内核的时候遇到了一个问题,就是gdb找不到symbol.最后才发现是自己一时疏忽,竟然在ld中用-s选项将symbol给清除了。
当然,在生成可执行内核时这是必须的,要不然内核会大好几倍。所以我的做法是在Makefile中修改,将ld的-s选项去掉,并在
生成内核的时候
1: cp -fv kernel.bin kernel.bin.tmp //复制一个带符号的副本
2: strip kernel.bin.tmp //将副本去掉符号
3: cp -fv kernel.bin.tmp /mnt/floppy/kernel.bin //将副本当做可执行文件放入盘区
4: rm -rf kernel.bin.tmp //删掉副本,只留下原来带符号的内核,以便gdb时用
相关文章推荐
- 使用bochs和gdb联合调试Linux内核
- 使用bochs和gdb联合调试Linux内核
- bochs和gdb联合使用调试程序_开始
- bochs gdb 联合调试
- ndk-gdb对java/native code联合调试
- bochs 2.2.6 编译和GDB调试
- gdb+qemu联合调试linux-4.15
- centOS+bochs+gdb调试linux0.11
- ndk-gdb对java/native code联合调试
- 终于可以通过GDB和BOCHS调试LINUX0.11内核了
- fedora17下用gdb和bochs调试linux-0.11内核
- 使用Bochs和GDB对内核进行源代码级调试
- CentOS 6 + bochs-2.6 + gdb 调试 linux 0.11
- ndk-gdb 对java/native code联合调试(升级版)
- CentOS 6 bochs-2.6 gdb 调试 linux 0.11——bochsrc-hdc-gdb.bxrc
- CentOS 6 bochs-2.6 gdb 调试 linux 0.11——bochsrc-hdc-gdb.bxrc
- GDB结合Bochs调试内核
- CentOS 6 + bochs-2.6 + gdb 调试 linux 0.11 —— 成功
- 编译bochs并启用GDB调试
- 使用eclipse/ndk-gdb对java/native code联合调试