第3课 - 调试环境的搭建

为了调试系统,我们需要一个调试环境,这里我们选择 Bochs虚拟机, 它支持对操作系统的调试(包括MBR等);我采用的是2.6.9版在linux上运行

Bochs

    
    
    bochs是一款专业 模拟x86架构的虚拟机
    开源且高度可移植
    由C++编写
    支持操作系统开发过程中的断点调试
    通过简单配置就能运行大多数主流操作系统
    相对而然Bochs大多采用仿真方式,所以速度比较慢;virtual PC仿真量不多不少,速度剧中;vmware很少采用仿真,速度很快;
    Bochs比其它两个虚拟机更适合像操作系统这样的 底层调试
    bochs网站: http://bochs.sourceforge.net/
    下载好源码后解压 tar -zxf bochs-2.x.x.tar.gz -C 解压目录(不用-C参数会解压到当前目录) 
    进入解压后的目录 cd bochs-2.x.x
    生成makefile文件 ./configure --enable-debugger --enable-disasm(注意不要忘记参数,否则无法调试及反汇编,可以使用./configure --help查看,其它参数自行查找)
    编译 make(好像花了一两分钟,如果提示找不到bochsdbg,就把bochs拷贝一份cp bochs bochsdbg;有些人可能没有gtk2.0包,请自行安装;可能还会有某些版本undefined reference to symbol pthread_create@GLIBC的问题,请自行百度)
    安装 make install(如果你的权限不够sudo make install,或者切换到超级用户)
    安装vgabios: emerge --ask vgabios我的是gentoo系统;对于unbuntu而然是 apt-get install vgabios;RedHat是 yum install vgabios;其它的自行百度)
    查询bochs安装路径: which bochs
    查询bgabios安装路径: whereis vgabios
  下面是刚解压后没有执行任何命令的文件
  

配置bochs

    bochs 解压后的源码目录有一个名叫.bochsrc的隐藏的默认配置文件截止到此,你可以删除bochs的解压文件了
        正确编写配置文件是正确运行软件的关键
         显示指定配置文件: bochs -f bochsrc_file
        隐式指定配置文件: bochs(默认会查找当前目录下的 .bochsrcbochsrcbochsrc.txt
    我的配置文件名为 /data/bochsrc(以后我会在/data/目录下使用隐式启动方式)
  
###############################################################
# Configuration file for Bochs
###############################################################
 
# how much memory the emulated machine will have
megs: 32
 
# filename of ROM images
# 注意下面2个路径,他们通过上面的which、whereis查找而来 romimage: file=/usr/local/share/bochs/BIOS-bochs-latest vgaromimage: file=/usr/share/vgabios/vgabios.bin # what disk images will be used
# 注意下面的路径,他是你的img软盘镜像所在 floppya: 1_44=/data/DTOS.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:keymap=/usr/local/share/bochs/keymaps/x11-pc-us.map # keyboard_mapping:enabled=1,map=/usr/local/share/bochs/keymaps/x11-pc-us.map

启动bochs

    使用命令行终端启动虚拟机
    
        如果你进入了上述界面,恭喜你,安装并配置成功。
    接下来 输入6或者回车进入调试模式(如果你安装正确的话应该有调试功能)
 
     
 
  这时候bochs空空如也,啥也没有, 因为我们开启了调试所以没有让它继续,这时候输入continue或者c即可 此时输入焦点已经切换到bochs虚拟机了,需要点击命令行窗口再输入
 
    
    这时候虚拟机启动完毕,输出了我们的字符串" \n\nHello,DTOS!\n\n"(注意前后是有两个换行的,由于没有安装声卡,所以没有声音,你可以到vmware或者实体机上测试)
 
    
    这时候需要通过虚拟机右上角的关机按钮进行关机,关机后终端才会回到正常可输入状态(当然你也可以暴力点,直接在终端ctrl C等等)

Bochs常用调试命令

    
    Bochs的调试命令和GDB类似

猜你喜欢

转载自www.cnblogs.com/Dua677/p/9046196.html