bochs下的debug命令—中文版..doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
bochs下的debug命令—中文版.

Bochs是一个基于LGPL的开源x86 虚拟机软件。Bochs的CPU指令是完全自己模拟出来的,这种方式的缺点是速度比较慢;优点是具有无以伦比的可移植性:有Gcc的地方就可以有 Bochs。甚至已经有了跑在PocketPC上的Bochs。 现在的Bochs 已经实现了一定程度的调试功能,虽然在易用性和功能上还无法和WinDbg、SoftICE相比,但优势也是很明显的:对跑在Bochs里面的代码来说,这就是“硬件调试器”。 对Windows 版本的Bochs来说,安装目录下的bochsdbg.exe就是Bochs的调试版本。用它来运行Bochs虚拟机就可以进行“硬件调试”。 Bochs的调试命令风格是按照GDB习惯来设计的,这对于用惯了WinDbg的人来说无疑是痛苦的,好在这是个开源软件,看着不顺眼可以考虑自己改改。 目前版本的Bochs(Version 2.1.1)支持的调试命令如下: [注意] 1、Bochs的文档和帮助信息中的使用说明与真实情况之间存在很大的差错和缺失, 下面的命令说明根据源码作了很多补充和修正。 2、其中涉及到的seg(段)、off(偏移)、addr(地址)、val(值)等数字, 可以使用十六进制、十进制或者八进制,但必须按照如下形式书写: 十六进制 0xCDEF0123 八进制 十进制 123456789 尤其要注意,Bochs不能自动识别16进制的数字,也不接这种写法。 [执行控制] c|cont 向下执行,相当于WinDBG的“g”。 s|step|stepi [count] 单步执行,相当于WinDBG的“t”,count 默认为 1。 p|n|next 单步执行,类似于WinDBG的“p”。 q|quit|exit 退出调试,同时关闭虚拟机。 Ctrl-C 结束执行状态,返回调试器提示符。 Ctrl-D if at empty line on command line, exit (至少在Windows版本中我没有发现Ctrl-D有什么功能) [执行断点] vb|vbreak [seg:off] 在虚拟地址上下断点。 lb|lbreak [addr] 在线性地址上下断点,相当于WinDBG的“bp”。 pb|pbreak|b|break [addr] 在物理地址上下断点。(为了兼容GDB的语法,地址前可以加上一个“*”)。 blist 显示断点状态,相当于WinDBG的“bl”。 bpd|bpe [num] 禁用/启用断点,WinDBG的“be”和“bd”。num是断点号,可以用blist命令查询。 d|del|delete [num] 删除断点,相当于WinDBG的“bc”。mum是断点号,可以用blist命令查询。 [读写断点] watch read [addr] 设置读断点。 watch write [addr] 设置写断点。 unwatch read [addr] 清除读断点。 unwatch write [addr] 清除写断点。 watch 显示当前所有读写断点。 unwatch 清除当前所有读写断点。 watch stop|continue 开关选项,设置遇到读写断点时中断下来还是显示出来但是继续运行。 [内存操作] x /nuf [addr] 显示线性地址的内容 xp /nuf [addr] 显示物理地址的内容 n 显示的单元数 u 每个显示单元的大小,u可以是下列之一: b BYTE h WORD w DWORD g DWORD64 注意: 这种命名法是按照GDB习惯的,而并不是按照inter的规范。 f 显示格式,f可以是下列之一: x 按照十六进制显示 d 十进制显示 u 按照无符号十进制显示 o 按照八进制显示 t 按照二进制显示 c 按照字符显示 n、 f、u是可选参数,如果不指定,则u默认是w,f默认是x。如果前面使用过x或者xp命令,会按照上一次的x或者xp命令所使用的值。n默认为1。 addr 也是一个可选参数,如果不指定,addr是0,如过前面使用过x或者xp命令,指定了n=i,则再次执行时n默认为i+1。 setpmem [addr] [size] [val] 设置物理内存某地址的内容。 需要注意的是,每次最多只能设置一个DWORD: 这样是可以的: setpmem 00x4 0 x /4

文档评论(0)

dashewan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档