在bochs编译过程中出现错误:“fatal error gtk/gtk.h no such file or directory”
1. sudo apt-get install libgtk2.0-dev在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