Bochs安装和启动中遇到的问题解决方案

在bochs编译过程中出现错误:“fatal error gtk/gtk.h no such file or directory”

1. sudo apt-get install libgtk2.0-dev
2. make dist-clean
3. ./configure –enable-debugger –enable-disasm
4. make


在bochs启动过程中出现错误“invalid choise core2_penryn_t9600”引起“cpu directive malformed”

1. bochs -help cpu

将显示出所有支持的CPU类型

2. 修改.bochsrc文件中cpu: model=core2+penryn_t9600为cpu: model=上一条查到的所支持的CPU类型之一



启动过程中出现“message:ata0-0:could not open hard drive image file ’30M.sample’”

1. 修改.bochsrc文件,将ata0-master: type=disk, mode=flat, path="30M.sample"注释掉


bochs和freedos如何一起调试引导程序

参考:http://blog.csdn.net/tianzhhy/article/details/5802278

在.bochsrc中将magic_break: enabled=1的注释取消。然后在程序需要添加断点的地方加上一句xchg bx,bx,运行到这条指令时会断到Bochs调试器。

编译、拷贝到pm.img中启动bochs、敲入c 后回车、在freedos中进入b盘,运行pmtest.com、在bochs的调试窗口中将会停在xchg bx,bx处,即可继续在bochs中继续单步调试程序


汇编和C同时使用时:

因为是64位的操作系统,nasm默认编译为32位的文件,而gcc默认编译位64位目标代码。因此会出现“ld: i386 architecture of input file `foo.o' is incompatible with i386:x86-64 output”这个错误。

解决办法是:

32位的编译链接指令

 nasm -f elf foo.s  -o  foo.o
 gcc  -m32  -c  bar.c  -o bar.o
 ld  -m elf_i386 -s -o foobar foo.o bar.o





你可能感兴趣的:(old)