调试环境的搭建
在Hello DTOS中,使用汇编语言直接基于x86架构的硬件完成了第一个主引导程序,实在是大功一件。
Hello DTOS博客中,存在着这样一个问题:在开发的过程中没有任何可用的调试环境,当主引导程序越来越复杂时,出现bug根本没法调试。
本篇博客就来搭建高效可用的调试环境
调试环境搭建(上)
问题:如何调试主引导区的代码?
Bochs(另一款优秀的虚拟机软件)
-专业模拟x86架构的虚拟机
-开源且高度可移植,由C++编写完成
-支持操作系统开发过程中的中断调试
-通过简单配置就能运行绝大数主流的操作系统
支持调试功能的Bochs版本
1. 下载源码:https://sourceforge.net/projects/bochs/files/
2. 解压缩bochs-2.x.x.tar.gz->bochs-2.x.x
3. 进入源码目录:cd bochs-2.x.x
4. ./configure --enable-debugger --enable-disasm
5. make
6. sudo make install
安装完成bochs后,直接运行bochs,会出现崩溃,为什么?
调试环境搭建(中)
-确定bochs的安装路径(which bochs)
-安装vgabios(apt-get install vgabios)
-确定vgabios的安装路径(whereis vgabios)
Bochs想要运行必须经过配置,所以说必须准备一个配置好的启动文件。有了启动文件,Bochs就知道如何运行具体的操作系统了。
当上面这些关键值设置好了以后,就可以通过启动文件来将bochs成功的启动起来了。
启动bochs虚拟机
-显示方式:bochs -f bochsrc_file(启动文件的名字)
-隐式方式:bochs
.bochsrc 首先在当前目录下查找有没有bochsrc文件,如果有就以bochsrc作为启动文件,否则以第二种方式启动。怎么感觉与 第一种一样
bochsrc 如果有就以bochsrc作为启动文件,否则就以bochsrc.txt作为启动文件
bochsrc.txt
配置好了之后,再次运行bochs就不会出现问题了。然后再运行continue,就会出现hello DTOS了。
调试环境搭建(下)
已经操作系统的搭建环境调试好了,接下来应该干什么呢?
使用这个高端大气上档次的调试环境,和使用gdb调试差不多。下面是Bochs中的常用调试命令
小结:
Bochs是一款专业模拟x86架构的虚拟机
从源码安装Bochs可以获得调试功能的支持
Bochs的启动配置文件是正确运行关键
Bochs支持断点调试,其调试命令与GDB类似