C/C++教程

Bochs 下的程序调试入门

本文主要是介绍Bochs 下的程序调试入门,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

(一) Bochs 软件说明

Bochs 是一款开源的虚拟机软件,它用软件来模拟处理器取指令执行指令的过程,以及整个计算机硬件。当它开始运行时,就直接模拟计算机的加电启动过程。

Bochs 本身是一个虚拟机,类似于 VirtualBox,可以作为类似于 VirtualBox 的虚拟机来使用,因此它很容易让你单步跟踪硬盘的启动过程,查看寄存器的内容和机器状态。所以,Bochs 虚拟机可以用来查看程序的运行效果,也可以用来调试程序。

(二) 调试相关

Bochs 虚拟机启动后,首先在当前的工作文件夹下寻找并读入配置文件 bochsrc.bxrc,然后按它的参数调整当前虚拟机的各种“软硬件”配置和工作参数。

就像一台真正的计算机一样,Bochs 的“处理器”在加电之后,要开始取指令并执行指令。但是,与真正的处理器不同,Bochs 在执行它启动之后的第一条指令时,会停下来,等待你的调试命令。

image

1. 调试的命令

  • s 命令
    单步执行命令 s (step),用于执行一条指令,然后停下来,显示下一条即将执行的指令
  • b 命令
    断点指令 b (break),所谓断点,就是事先设置一个 物理内存地址,当处理器执行到这个地址时,就自动停下来。例如,在主引导程序加载到物理内存地址 0x7c00 处打断点:b 0x7c00
  • c 命令
    c(continue)命令是持续执行的意思,该命令要求处理器不间断地持续执行指令,如果设置了断点,会在断点处停下来
  • r 命令
    r(register)命令用来显示通用寄存器的内容
  • sreg 命令
    sreg 命令用来显示段寄存器的内容
  • xp 命令
    xp(eXamine memory at Physical address)命令用来显示指定物理内存地址处的内容(xp 命令每次只显示一个双字)
    显示一个双字:xp 0xB8000
    显示两个双字:xp/2 0xB8000
    显示 n 个双字:xp/n 0xB8000
  • q 命令
    q(quit)命令用来退出 Bochs 调试过程

2. 调试命令的使用示意图

image

(三) 参考书籍

《x86汇编语言:从实模式到保护模式》

这篇关于Bochs 下的程序调试入门的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!