ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Bochs 下的程序调试入门

2022-06-26 12:04:48  阅读:181  来源: 互联网

标签:入门 虚拟机 命令 指令 Bochs xp 断点 程序调试


(一) 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,xp,断点,程序调试
来源: https://www.cnblogs.com/wanghuizhao/p/16413232.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有