Bochs虚拟机debug指令

在学习《Linux内核完全注释》时,为了方便,直接使用了赵博提供的linux-0.11-devel-040923.zip来debug,帮助理解代码。

后来又在哈工大的网站上发现了他们操作系统课程的实验,同样是关于Linux 0.11版本的。

后来在使用的过程中,我发现赵博使用的是bochs 2.1.1,而哈工大的oslab使用的是bochs 2.3.7版本。两者的debug指令有几个差别:

操作 2.1.1 2.3.7
显示通用寄存器状态 info r r
显示CPU状态 info cpu dump_cpu
查看段选择符状态 sreg dump_cpu
查看控制寄存器状态 creg dump_cpu

除了最新版本增加了几个debug指令外,其他都相同。

这里再列举出几个重要的debug指令:

操作 指令 举例
连续执行 c
单步执行 s [count] s 10
打印栈 print-stack [num words] print-stack 10
查看数据段内容 x /[nuf] [addr] x /4x ds:0x1918a
在物理地址上设置断点 b [addr] b 0x641c
在虚拟地址上设置断点 vb [seg:addr] vb 0x0000:0x7c00
查看断点 info b info b
删除断点 delete [n] delete 1
查看从当前指令开始的给定行数的反汇编 u /[n] u /100
对给定的线性地址范围内的指令进行反汇编 u [start] [end] u 0x7410 0x7450

更详细的指令说明请参考bochs的debugger指令说明

阅读更多
换一批

没有更多推荐了,返回首页