Bochs常用调试指令翻译

Bochs入门与实战:x86模拟器全面指南 Bochs是一款开源的x86架构全系统模拟器,能够在Linux、Windows、macOS等平台上精确模拟从CPU到外围设备的完整PC硬件环境。其核心优势在于周期级仿真能力——不仅解析x86指令集,还对BIOS、PIC、DMA控制器、硬盘接口等硬件组件进行细粒度建模,实现比QEMU更接近真实硬件的行为表现。这种高保真模拟使其成为操作系统开发中调试引导代码、实模式切换及内核初始化的理想工具。graph TDA[宿主机操作系统] --> B(Bochs模拟层)B --> C[虚拟CPU] 阅读详情
执行命令
 c                           继续执行
 stepi [count]               执行一定count数量的指令, 缺省值为1
 si    [count]               执行一定count数量的指令, 缺省值为1
 step [count]               执行一定count数量的指令, 缺省值为1
 s     [count]               执行一定count数量的指令, 缺省值为1
 Ctrl-C                      停止执行, 返回到命令行方式
 Ctrl-D                      如果命令行有空行,则退出(不知道什么意思)
 quit                        退出
 q                           退出
设置断点
 vbreak seg:off              设置一个虚拟地址断点
 vb     seg:off
 
 lbreak addr                 设置线性地址断点
 lb     addr
 
 pbreak [*] addr             设置物理地址断点
 pb     [*] addr             (*号代表可选的GDB能力)
 break [*] addr
 b      [*] addr
 
 info break                  显示所有断点
 delete n                    删除断点
 del    n
 d      n
操作内存
 x /nuf addr      显示在addr线性内存处的内存数据
 xp /nuf addr      显示在addr物理内存处的内存数据
n                 要显示的数据个数 
u                 显示单元大小; 下面其中之一
b 一字节 
h 2字节 
w 4字节 
g 8字节 
NOTE: 这里的格式和Intel的不一样,但是与GDB转换相一致 
f                 显示格式下面其中之一 
x 使用16进制 
d 使用10进制 
u 使用无符号10进制
o 使用8进制 
t 使用2进制 
n, f, 和 u 都是可选的参数. u 和 f 缺省值为上一次设置的值。如果没有指定
则缺省值为w和x。
n 的缺省值为1。
Addr 也是可选的参数。如果不指定则会自动地指定为下一个地址。
 
 setpmem addr datasize val    设置addr一片大小为datasize的物理内存的值为val
 
 crc addr1 addr2            显示范围从addr1到addr2的校验
 info dirty                   显示从上一次显示到现在为止的脏(被写到的)的物理页
显示的值为最上头的20个字节(页地址)
上面这些我自己看不明白什么意思
 
 
显示信息命令
 info program      程序执行情况可以用info p代替
 info registers    列出cpu的寄存器和寄存器里面的值可以用info r代替
 info break        当前所有断点的信息可以用info b代替
操作 CPU 寄存器
 set $reg = val    设置一个寄存器reg的值为val. 
寄存器可以是:
                      eax, ecx, edx, ebx, esp, ebp, esi, edi.
                    通常不应该修改下列:
                      eflags, cs, ss, ds, es, fs, gs.
 
    例子: set $eax = 0x01234567
              set $edx = 25
 
 info registers    查看寄存器信息
 dump_cpu          查看完整的cpu状态信息
 set_cpu           设置cpu状态
新命令
trace-on
每执行一条指令就显示出相应的反汇编命令,导致异常的指令并不是真正的执行,因此不能被追踪。
trace-off
禁止追踪.
ptime
显示当前时间(从开始模拟到现在为止的tick数量,以2^32为模)
sb delta
插入一个基于时间设置在之后的断点,delta是一个64位的后面有一个L字符的整型数,如1000L。好像是偏移的意思。
sba time
插入一个基于指定时间的断点
record filename
记录控制台输入到文件 filename. 文件由0和许多行”%s %d %x”组成, 第一个词为事件类型, 第二个是时间戳第三个是事件的数据细节
playback filename
从文件filename回放控制台输入. 可以在控制台窗口直接进行额外的输入.
print-stack [num words]
显示堆栈顶端num words个16位的字。只有堆栈段的基地址为0的时候才能可靠的工作在保护模式下。
watch stop
当遇到一个监视点时停下来回到提示命令行方式.
watch continue
碰到监视点时不停止
watch
显示当前监视点的状态.
unwatch
去掉所有监视点.
watch read address
在address地址出加入一个读监视点
watch write address
在address地址处加入一个写监视点.
unwatch read address
从address 地址处去掉一个读监视点.
unwatch write address
从address 地址处去掉一个写监视点. .
show [string]
 
 触发show信息.
 show – 显示当前的show模式
 show "mode" – 当处理器转换模式时显示
 show "int" – 当中断发生时显示
 show "call" – 当调用发生时显示
 show "ret" – 当iret发生时显示
 show "off" - toggles off symbolic info
 show "dbg-all" – 打开所有的show标记
 show "none" – 关闭所有的show标记
 
Bochs安卓X86虚拟机实战指南 Bochs 是一个开源的 x86 架构模拟器,能够完整模拟 PC 硬件环境,支持从 BIOS 到操作系统内核的全系统仿真。它在嵌入式开发、操作系统研究及逆向工程中具有广泛应用。随着移动设备性能的提升,将 Bochs 移植到 Android 平台成为可能,从而实现 Android 设备上运行 x86 架构的操作系统(如 MS-DOS、Linux 或 Windows 95/XP 等)。 阅读详情

相关推荐

Bochs 2.5.1 - 开源x86架构模拟器的探索之旅

Bochs是一款功能强大的开源x86架构模拟器,它为用户提供了一个可以在标准x86硬件上模拟完整计算机系统的能力。Bochs通过模拟真实硬件的每个细节,让用户可以在几乎不受限制的虚拟环境中进行操作系统开发、软件调试及教育演示等多种用途。它不仅支持广泛的x86指令集和多种操作系统,还可以模拟包括CPU、内存、磁盘、网络、显卡在内的多种硬件组件。Bochs 2.5.1作为该模拟器的一个重要版本,具备更多的功能改进和性能提升,例如更好地模拟特定硬件特性、提高模拟执行效率和改善用户界面等。

weixin_29476595的博客 847

bochs调试常用命令

文章目录一、跳转单步跳转1、指定步数跳转2、指定跳转位置二、查看1、寄存器查看2、内存查看三、补充四、退出 一、跳转 单步跳转 1、s 遇到循环,则进入 2、n 遇到循环,则跳过 1、指定步数跳转 1、s num 2、指定跳转位置 第一步:b address 设置断点address 第二步:c 持续执行直至遇到断点 二、查看 1、寄存器查看 1、通用寄存器 r reg 2、段寄存器查看 sreg 3、标志寄存器查看 info eflags 2、内存查看 1、线性地址方式 x address 仅查看一个双字的

dc12499574的博客 2552

基于NASM、DD与Bochs的操作系统开发工具包实战

操作系统是计算机硬件与应用程序之间的桥梁,其核心职责在于管理资源、抽象硬件并提供统一接口。开发一个操作系统,尤其是从零开始构建教学型OS,能极大加深对CPU架构、内存布局、中断机制等底层原理的理解。本章聚焦于基于x86实模式的最小化系统构建,采用NASM汇编器编写引导代码,通过DD命令生成可启动镜像,并在Bochs模拟器中运行调试。NASM 使用SECTION或SEGMENT关键字定义不同的内存区域。虽然在-f bin模式下所有段合并为单一平面空间,但仍可通过段名区分逻辑用途。

weixin_42181686的博客 802

bochs 调试基本指令大全

查看内存物理地址内容 xp /nuf addr xp /40bx 0x9013e。每执行一条指令就打印CPU信息 trace-reg trace-reg on。查看线性地址内容 x /nuf addr x /40bx 0x13e。显示当前所有断点信息 info break info break。显示 CPU 状态信息 info cpu info cpu。单步运行(遇到函数则跳过) n n。显示所有使用的寄存器值 r r。

larance的挨踢生活 1079

Linux-0.11内核与Bochs实验编译环境搭建指南

Linux-0.11内核是Linus Torvalds在1991年启动的一个开源项目,旨在构建一个完全自由和免费的类Unix操作系统核心。作为早期的Linux内核版本之一,它在操作系统研究和开发领域具有重要的历史意义。它不仅为Linux操作系统的后续发展奠定了基础,也为后来的开发者提供了学习操作系统设计和实现的宝贵资料。Bochs项目始于1994年,由Kevin Lawton发起,目的是为了模拟一个x86 PC,使其能够运行不同操作系统的软件。

weixin_33773084的博客 1082

避坑指南:SAP成本中心分割结构配置常见错误及解决(含KA06/KL01前置步骤)

本文深入解析了SAP成本中心会计中分割结构配置的关键步骤与常见错误。重点强调了配置前必须通过KA06创建次级成本要素(类别42)和通过KL01创建活动类型这两个核心前置步骤,并详细剖析了在OKES中定义分割规则及版本时的高频报错原因与解决方案,帮助顾问和运维人员有效规避配置陷阱,确保成本分摊的准确性。

pear55的博客 865

Bochs调试之查看内存

x /nuf [addr] 显示线性地址的内容 xp /nuf [addr] 显示物理地址的内容 n 显示的单元数 u 每个显示单元的大小 f 显示格式

Firas的专栏 7871

Proteus+汇编+8086电子时钟实战:从框架搭建到中断驱动的核心实现

本文详细介绍了使用Proteus仿真软件和8086汇编语言实现电子时钟的完整过程。从程序框架搭建、内存分段模型理解,到核心的8259中断控制器配置与编程,再到中断服务程序编写和数码管动态扫描显示驱动,系统阐述了底层软硬件协同开发的核心原理与实战步骤。该项目是深入理解计算机中断机制和汇编语言编程的绝佳实践。

weixin_29189381的博客 413

bochs虚拟机调试命令大全

操作系统开发必备工具bochs调试命令大全

yaoyuantao的博客 4660

CanOpen PDO映射实战:从原理到配置的完整指南

本文详细解析了CanOpen PDO映射的原理与配置流程,从基础通信机制到实战配置步骤,涵盖禁用PDO、清空映射、逐项映射和使能PDO等关键环节。特别针对西门子G120变频器、台达伺服和倍福CX控制器等不同厂商设备,提供了具体的配置技巧和常见问题排查指南,帮助工程师快速掌握多厂商设备间的PDO通信配置。

weixin_30718391的博客 516

用Python模拟随机游走:从一维到三维,直观理解马尔可夫链的常返性

本文通过Python模拟一维到三维的随机游走,直观展示马尔可夫链的常返性特性。使用NumPy和Matplotlib构建模拟器,揭示不同维度下随机游走的返回概率差异,帮助读者理解为什么一维和二维游走具有常返性,而三维游走可能永远迷失。文章包含完整的代码示例和可视化技巧,适合概率论和Python编程爱好者学习实践。

weixin_28694295的博客 399

Bochs 调试命令笔记

lb|lbreak if "expression":当条件为真时,在线性地址的指令处设置中断。pb if "expression":当条件为真时,在物理地址的指令处设置中断点。(3)set $cpu = :在模拟SMP时,将Debugger控制的cpu设置为cpu。(1)set = :设置寄存器的值为‘expr’。3、pb|pbreak|b|break :在物理地址的指令处设置中断点。

erhisme的专栏 943

16、保障Azure应用安全:密钥管理与身份认证

本文深入探讨了保障Azure应用安全的关键措施,包括使用网络安全工具(如Application Gateway和Azure Front Door)防范攻击,解决传统密钥和机密存储方式的安全隐患,以及通过Azure Key Vault实现敏感信息的安全管理。同时,介绍了使用托管标识实现Azure资源间安全访问的方法,并结合实际操作步骤展示了如何配置Key Vault、设置访问策略、存储机密以及授予Web应用对SQL Server的访问权限。最后,对不同安全措施进行了比较,并提出了在开发、测试及生产环境中的综合

rock5的博客 71

bochs在window环境下的调试

<br />最近头大之至,一直想用bochs调试,结果她的魅力远胜于想象。网上流传很多bochs的调试大多盲目转载且内容大为英文 帮助的翻译,下面是我在一大师的博客上转帖过来的,关于用bochs进行调试的步骤和实践过程中使用的例子。<br />     注:1.大师博客:http://www.cnblogs.com/smwikipedia/<br />           2.本文中所使用的bochs的版本为v2.1.1,否则有些命令不兼容<br />正文--------------------------

m1j2t3的专栏 1245

光通量与辐射通量之间的换算

由理论和实验可知存在两种定义: 1W1W1W(瓦特)的频率为540×1012Hz540\times10^{12}Hz540×1012Hz(赫兹)的单色辐射的辐射通量等于683lm(流明)683lm(流明)683lm(流明).。 1lm1lm1lm的频率为540×1012Hz540\times10^{12}Hz540×1012Hz的单色通量等于1683=0.001464W\frac{1}{683}=0.001464W6831​=0.001464W。 从上述定义中我们可以得到什么呢?我们知道光速: c=3×

u011699626的博客 3271

2026年医疗AI的可信革命全栈实现(上)

医疗AI可信化:贝叶斯网络与向量数据库的协同架构 本文探讨2026年医疗AI发展的关键转折点——从追求生成能力转向构建可信决策系统。核心观点认为,医疗AI下一阶段的竞争焦点在于不确定性量化和错误传播约束,而非单纯的问答流畅度。研究提出以Python为开发语言、结合向量数据库与贝叶斯网络的混合架构: 技术分层 语言层(LLM):处理自然语言交互与工具调用 证据层(Milvus/Qdrant):实现可审计的临床知识检索 概率层(pgmpy/PyMC):执行贝叶斯推理与风险路由 治理层:确保权限控制与人工复核机制

AllenLV的博客 1149

Bochs与QEMU全面对比:哪个x86模拟器更适合你的需求?

在虚拟化和系统模拟领域,x86模拟器是开发者和技术爱好者的重要工具。Bochs作为一款跨平台x86模拟器,以其高度精确的指令级模拟和调试能力著称,而QEMU则以其出色的性能和广泛的硬件支持受到青睐。本文将从核心功能、性能表现、适用场景等方面对两者进行全面对比,助你找到最适合自己需求的x86模拟器。 ## 🚀 核心功能对比:精确模拟 vs 高效虚拟化 ### Bochs:专注于精确指令级模拟

gitblog_00025的博客 738

IEC 60747-8 是由国际电工委员会(IEC)制定的标准,标题为《半导体器件 - 分立器件 - 第8部分:场效应晶体管》

IEC 60747-8 是由国际电工委员会(IEC)制定的标准,标题为《半导体器件 - 分立器件 - 第8部分:场效应晶体管》(Semiconductor devices - Discrete devices - Part 8: Field-effect transistors)。该标准详细规定了场效应晶体管(FETs)的测试方法,涵盖静态和动态特性测试,适用于多种类型的FET,包括结型场效应晶体管(JFETs)、绝缘栅场效应晶体管(MOSFETs,增强型和耗尽型)等。3. 标准其他部分(简要概述)

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 571

对bochs设置文档的初步翻译

开始熟悉bochs 针对bochsrc.txt的设置产生了一些疑问,也有一些心得。对bochsrc的翻译:#------------------------------------------------# 你应该用双引号把需要的路径包含起来,以防止你包含的路径中出现空格## 设置的界面(我的理解是在什么要的界面调试)#-------------------------------------...

weixin_30654419的博客 478

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

使用bochs和grub建立可引导硬盘镜像

bochs,发音同box,是我非常喜欢的虚拟机,灵活易用方便配置,功能极强,用来调试Linux内核是非常合适的。这篇博文主要讲解如何建立硬盘镜像,并且将grub安装上去,最后的结果就是bochs启动后能进入到grub引导界面。下一篇博客再讲解如何在镜像上安装Linux内核。 硬盘基础知识 硬盘的专业术语中有:柱面,磁头,扇区,每磁道扇区数这几个概念。 每个盘片有两个磁头,分别位于

Linux Kernel Developer 3470

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

汇编之调试环境搭建及调试步骤详解

学习一门语言,上手上机调试是非常重要的,它会带来一个感性的认知,所以学习汇编第一件事,推荐把开发环境搞起来。: 程序中的汇编代码需要转译为处理器指令,在提交给处理器执行 ,nasm负责这个事:因为处理器指令无法像java,go语言直接跑在现有的mac,window等笔记本机器上,是直接跑在处理器上的命令,所以需要安装模拟原生处理器的软件。bochs可模拟多种处理器,包括x86和x86-64的处理器模拟器。: Bochs模拟器需要调用显示库代码来渲染输出界面。

u013010890的博客 2361

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

bochs在window环境下的调试(有些命令如果不能用可能是因为版本比较新的原因)

最近头大之至,一直想用bochs调试,结果她的魅力远胜于想象。网上流传很多bochs的调试大多盲目转载且内容大为英文 帮助的翻译,下面是我在一大师的博客上转帖过来的,关于用bochs进行调试的步骤和实践过程中使用的例子。      注:1.大师博客:http://www.cnblogs.com/smwikipedia/            2.本文中所使用的bochs的版本为v2.1

ForTheBetterMe的专栏 672

【Bochs 官方手册翻译】 第一章 Bochs介绍

Bochs 是一个可以完全模拟 Intel x86 计算机的虚拟机系统。它包含了 Intel x86 CPU 仿真、常见设备仿真、以及定制 BIOS。Bochs 可以虚拟多种不同类型的 x86 CPU ,从早期的 386 到最新的 x86-64 Intel 和 AMD 处理器,甚至是市场上还没有销售的 CPU。 Bochs 会去解释从电源启动开始的每一条指令,以及所有 PC 标准外设:键盘、鼠标、...

weixin_30527551的博客 339

使用grub加载自己的os及bochs等杂乱笔记(原创)

第一节:使用minix硬盘映象 bochs主页(http://sourceforge.net/projects/bochs)上有个minix2.0映象, 编译器和源代码映象文件都已经有了,如果要mount到你自己的机器上编辑源程序, 可以使用下面的linux指令,为什么是1024和5669888,分析下硬盘分区表就知道了。 (1024 = 512 * 2; 5669888 = 512 * 11

拥剑的博客 1348
上一篇: 配置dos窗口更好的调试我们的操作系统
下一篇: 操作系统入门(五) - 混合C和汇编的kernel
魔芋
博客等级 码龄26年 37粉丝 71原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值