第3课 - 调试环境的搭建

 

问题

编写主引导区的代码时,如果发现 bug, 如何调试代码?

 

Bochs(一款优秀的虚拟机软件)

  • 专业模拟 X86 架构的虚拟机
  • 开源且高度可移植,有 C++ 编写完成
  • 支持操作系统开发过程中的断点调试
  • 通过简单配置就能够运行绝大数主流操作系统

 

环境搭建

  • 解压压缩包
tar -xzvf bochs-2.xx.tar.gz
  • 进入目录
cd bochs-2.4.5
  • 执行配置文件
./configure --enable-debugger --enable-disasm
  • 进行编译(当前目录下)
make
  • 安装
sudo make install

 

在虚拟机上进行如上过程遇到的问题以及解决办法

  • 缺少 libgtk2.0-dev
sudo apt-get install libgtk2.0-dev

安装的时候报如下错误

E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

https://blog.csdn.net/u011596455/article/details/60322568

 

  • 编译 make 结果出现
gui/libgui.a(gtk_enh_dbg_osdep.o): In function `MakeGTKthreads()': /home/bcos/Desktop/bochs-test/bochs-2.4.pre1/gui/gtk_enh_dbg_osdep.cc:2120: undefined reference to `pthread_create' collect2: ld returned 1 exit status make: *** [bochs] Error 1

修改 Makefile.in 文件内容添加如下代码

注意的是修改 Makefile.in 这个文件的需要重新执行 ./configure --enable-debugger --enable-disasm ,然后在从新 make 一下,编译通过了。

 

Bochs 的安装与配置

  • 确定 bochs 的安装路径(which bochs)
  • 安装 vgabios ( apt-get install vgabios)
  • 确定 vgabios 的安装路径(whereis vgabios)
book@www.100ask.org:~$ which bochs
/usr/local/bin/bochs
book@www.100ask.org:~$ whereis vgabios
vgabios: /usr/share/vgabios

Bochs 的启动文件

###############################################################
# Configuration file for Bochs
###############################################################

# how much memory the emulated machine will have
megs: 32

# filename of ROM images
romimage: file=/usr/local/bin/bochs/BIOS-bochs-latest   // 具体填写
vgaromimage: file=/usr/share/vgabios/vgabios.bin  // 具体填写

# what disk images will be used
floppya: 1_44=a.img, status=inserted  // 具体填写

# choose the boot disk.
boot: floppy

# where do we send log messages?
# log: bochsout.txt

# disable the mouse
mouse: enabled=0

# enable key mapping, using US layout as default.
keyboard_mapping: enabled=1, map=/usr/local/share/bochs/keymaps/x11-pc-us.map
// 具体填写

启动 bochs 虚拟机

显示启动

bochs -f bochsrc-file

隐式方式

bochs

当前目录下的启动文件名

  • .bochsrc
  • bochsrc
  • bochsrc.txt

 

最终效果展示

 

Bochs 中的常用调试命令

 

 

小结

  • Bochs 是一款专业模拟 X86 架构的虚拟机
  • Bochs 的启动配置文件时正确运行的关机
  • Bochs 支持断点调试,其命令调试与 GDB 类似

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值