00 【哈工大_操作系统】Bochs 汇编级调试方法及指令

本文将介绍一下哈工大李治军老师《操作系统》课程在完成Lab时所使用到的 Bochs 调试工具的使用方法。这是一款汇编级调试工具,打开调试模式非常简单,只需在终端下输入如下指令:

1、bochs 调试基本指令大全

功能 指令 举例
在某物理地址设置断点 b addr b 0x90000
运行到断点位置 c c
单步运行(遇到函数则进入) s s
单步运行(遇到函数则跳过) n n
继续运行上调指令 回车 回车
显示当前所有断点信息 info break info break
显示所有使用的寄存器值 r r
显示段寄存器值 sreg sreg
显示控制寄存器值 creg creg
显示 CPU 状态信息 info cpu info cpu
显示浮点寄存器值 fp fp
退出调试模式 q q
查看堆栈 print-stack print-stack
每执行一条指令就打印CPU信息 trace-reg trace-reg on
查看内存物理地址内容 xp /nuf addr xp /40bx 0x9013e
查看线性地址内容 x /nuf addr x /40bx 0x13e
反汇编一段内存 u start end u 0x30400 0x3040D
反汇编执行的每一条指令 trace-on trace-on
查看 bochs 基本命令 help help

2、 使用方法

(1)进入调试模式

shell 复制代码
cd oslab      // 进入 oslab 文件夹下
./dbg-asm     // 启动 bochs 调试模式

出现如下界面,即表示成功进入boch调试模式。

(2)调试方法

在 0x7e00 处打上断点(即setup的启动位置),并运行到断点处,出现如下界面。此时 bootsect.s 已经运行至导入 setup.s 处,但 setup.s 还未运行。

shell 复制代码
b 0x7e00       // 在 0x7e00 处加载断点
c              // 运行到断点为止

需要注意的是:终端上显示的代码是下一行将要执行的,是还未执行的代码。

此外,我们还可以通过单步运行来一行一行运行代码,或者查看寄存器信息。

shell 复制代码
n              // 单步运行
回车            // 继续上次的命令
r              // 查看常用寄存器信息
sreg           // 查看段寄存器信息
q              // 退出 debug

显示段寄存器信息:

至此,关于李治军老师的操作系统课程 bochs 使用方法已介绍完毕,更加具体的使用方法可以参考 Bochs使用手册 Bochs User Manual (sourceforge.io)

相关推荐
崎岖Qiu12 小时前
【OS笔记35】:文件系统的使用、实现与管理
笔记·操作系统·存储管理·文件系统·os
顾林海13 小时前
Android文件系统安全与权限控制:给应用数据上把“安全锁”
android·面试·操作系统
清风拂山岗 明月照大江14 小时前
同步与死锁
操作系统
崎岖Qiu14 小时前
【OS笔记38】:设备管理 - I/O 设备原理
笔记·操作系统·os·设备管理·io设备
崎岖Qiu1 天前
【OS笔记36】:文件存储空间管理(一)- 空闲区表法
笔记·操作系统·存储管理·文件系统·os
柏木乃一3 天前
进程(11)进程替换函数详解
linux·服务器·c++·操作系统·exec
羑悻的小杀马特5 天前
【Linux篇章】穿越网络迷雾:揭开 HTTP 应用层协议的终极奥秘!从请求响应到实战编程,从静态网页到动态交互,一文带你全面吃透并征服 HTTP 协议,打造属于你的 Web 通信利刃!
linux·运维·网络·http·操作系统·网络通信
彩妙不是菜喵6 天前
操作系统中的Linux:进程详解--->(深入浅出)从入门到精通
linux·操作系统
农民真快落6 天前
【操作系统】手撸xv6操作系统——types.h/param.h/memlayout.h/riscv.h/defs.h头文件解析
操作系统·risc-v·嵌入式软件·xv6
小当家.1056 天前
操作系统期末考试基础知识点速成:高频考点与题集精要
考研·操作系统·计算机基础·速成·大学·期末考试