Bochs 下的程序调试入门
2022/6/27 1:50:19
本文主要是介绍Bochs 下的程序调试入门,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
(一) Bochs 软件说明
Bochs 是一款开源的虚拟机软件,它用软件来模拟处理器取指令和执行指令的过程,以及整个计算机硬件。当它开始运行时,就直接模拟计算机的加电启动过程。
Bochs 本身是一个虚拟机,类似于 VirtualBox,可以作为类似于 VirtualBox 的虚拟机来使用,因此它很容易让你单步跟踪硬盘的启动过程,查看寄存器的内容和机器状态。所以,Bochs 虚拟机可以用来查看程序的运行效果,也可以用来调试程序。
(二) 调试相关
Bochs 虚拟机启动后,首先在当前的工作文件夹下寻找并读入配置文件 bochsrc.bxrc,然后按它的参数调整当前虚拟机的各种“软硬件”配置和工作参数。
就像一台真正的计算机一样,Bochs 的“处理器”在加电之后,要开始取指令并执行指令。但是,与真正的处理器不同,Bochs 在执行它启动之后的第一条指令时,会停下来,等待你的调试命令。
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. 调试命令的使用示意图
(三) 参考书籍
《x86汇编语言:从实模式到保护模式》
这篇关于Bochs 下的程序调试入门的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享