Bochs几条基本指令:

通过物理地址查看内存时,可以不加参数'/nuf':

其中n指定显示的单元数,默认是1;

u 指定每个显示单元的大小(b表示字节、h表示字(2字节)、w表示双字(4字节)),默认是w;

f 指定显示格式(x 十六进制、d 有符号十进制、u 无符号十进制、o 八进制、t 二进制、c 字符),默认是x

1、指令断点

1.1、设置断点

1.1.1、设置在物理地址

b/break addr

1.1.2、设置在线性地址

lb/lbreak addr

1.1.3、设置在虚拟地址

vb/vbreak seg:off  seg是段选择子,off是段内偏移。

1.2、禁用/启用断点

bpd|bpe bn  禁用/启用断点,相当于WinDBG的“be”和“bd”。bn是断点号,可以用blist命令查询。

1.3、删除断点

d/del bn  bn是断点号,可以用blist命令查询。

1.4、显示现有断点(断点号和地址)

blist/info b/info break

2、读写断点

2.1、设置读写断点

watch read addr

watch write addr

2.2、删除读写断点

unwatch read addr

unwatch write addr

unwatch  删除所有现有的读写断点

2.3、显示现有读写断点

watch

3、执行控制

3.1、单步执行(遇到call和int进入函数、中断内)

s/step [count]  单步执行count条指令,count 默认为 1。相当于WinDBG的“t”。

3.2、单步执行(遇到call和int不进入函数、中断内)

p/n/next  相当于WinDBG的“p”。

3.3、继续执行,直到遇到断点

c/cont  相当于WinDBG的“g”。

4、查看寄存器

4.1、查看通用寄存器

r/info r/info reg

4.2、查看段寄存器和段描述符寄存器

sreg

info gdt  查看全局描述符表的信息

info idt  查看中断描述符表的信息

info ldt  查看局部描述符表的信息

info tss  查看任务状态段的信息

4.3、查看控制寄存器

creg

5、查看内存

5.1、通过物理地址查看

xp [/nuf] addr

其中n指定显示的单元数,默认是1;

u 指定每个显示单元的大小(b表示字节、h表示字(2字节)、w表示双字(4字节)),默认是w;

f 指定显示格式(x 十六进制、d 有符号十进制、u 无符号十进制、o 八进制、t 二进制、c 字符),默认是x

5.2、通过线性地址查看

x [/nuf] addr  nuf的意义同上

5.3、查看堆栈

print-stack

5.4、反编译

u/disas/disassemble [/n] [start] [end]

n是反编译的指令的数目,默认是1;start是开始反汇编的地址,默认是当前指令指针所指的地址;end是结束反汇编的地址

6、停止调试并退出

q/quit/exit

可以通过输入命令help查看相关命令参数信息

例:help x

help b

bochs调试命令的更多相关文章

  1. 用bochs调试自己写的系统引导代码

    1 安装和配置bochs 首先从bochs.sourceforge.net里面把BOCHS给download下来,鉴于Windows的普及,仅仅谈BOCHS在win下的使用方法,其实在其它的OS中方法 ...

  2. 利用bochs调试Linux 0.11内核

    引导程序调试软件bochs,跟配套的linux0.11内核img下载地址分别是: http://sourceforge.net/projects/bochs/http://www.oldlinux.o ...

  3. Bochs调试加载符号文件的问题

    1. Bochs中的调试命令ldsym没有触发的情况. 参考:http://www.ibm.com/developerworks/cn/linux/sdk/lex/ Lex 代表 Lexical An ...

  4. bochs 调试 com 文件 magicbreak

    参考 https://blog.csdn.net/housansan/article/details/41833581 在网上看到2中解决此问题的方法:1.使用dos下的debug32工具单步跟踪pm ...

  5. 使用bochs调试汇编程序

    使用bochs调试汇编程序 前面我们已经搭建好了bochs的环境,并且将我们的汇编程序写入了硬盘里面,现在我们来看看如何通过bochs来调试我们的程序. 前文:https://www.cnblogs. ...

  6. GDB调试命令小结

    1.启动调试 前置条件:编译生成执行码时带上 -g,如果使用Makefile,通过给CFLAGS指定-g选项,否则调试时没有符号信息.gdb program //最常用的用gdb启动程序,开始调试的方 ...

  7. Windbg调试命令详解

    作者:张佩][原文:http://www.yiiyee.cn/Blog] 1. 概述 用户成功安装微软Windows调试工具集后,能够在安装目录下发现四个调试器程序,分别是:cdb.exe.ntsd. ...

  8. jdb调试命令

    常用调试命令: run GeoHashTest #带参数运行 stop at GeoHashTest:22 #断点GeoHashTest文件的22行 stop in GeoHashEncode.Enc ...

  9. 基础调试命令 - .dump/.dumpcap/.writemem/!runaway

    Windbg是windows平台上强大的调试器,它相对于其他常见的IDE集成的调试器有几个重要的优势, Windbg可以做内核态调试 Windbg可以脱离源代码进行调试 Windbg可以用来分析dum ...

随机推荐

  1. IO是否会一直占用CPU?(转)

    原文来自知乎:https://www.zhihu.com/question/27734728 这是一个很好的关于并发/并行系统的问题.简单回答就是:IO所需要的CPU资源非常少.大部分工作是分派给DM ...

  2. Spring Cloud Alibaba学习笔记(14) - Spring Cloud Stream + RocketMQ实现分布式事务

    发送消息 在Spring消息编程模型下,使用RocketMQ收发消息 一文中,发送消息使用的是RocketMQTemplate类. 在集成了Spring Cloud Stream之后,我们可以使用So ...

  3. Windows中的库编程

    Windows操作系统中,库分为动态链接库(dll)和静态链接库(lib) 动态库是Windows中实现代码共享的一种方式.它是一个二进制式文件,不可单独运行,需要调用方调用才能运行.在Windows ...

  4. 前端开发 Vue -4promise解读1

    JS(JavaScript) - Promise 2015年6月, ES2015(即 ECMAScript 6.ES6) 正式发布.其中 Promise 被列为正式规范,成为 ES6 中最重要的特性之 ...

  5. @app.route源码流程分析

    @app.route(), 是调用了flask.app.py文件里面的Flask类的route方法,route方法所做的事情和add_url_rule类似,是用来为一个URL注册一个视图函数,但是我们 ...

  6. JS 客户端(浏览器)存储数据之 localStorage、sessionStorage和indexDB

    基本概念 1.localStorage和sessionStorage是HTML5 Web存储的提供的两种存储方式,在IE7以上以及大多数浏览器都是支持的 2.localStorage和sessionS ...

  7. Bootstrap源码

    1.Bootstrap Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML.CSS.JavaScript 开发的简洁.直观.强悍的前端开 ...

  8. Nginx 安装目录 和 编译参数

    安装目录详解 查看安装nginx之后总共生成了哪些文件 rpm -ql nginx 在上面的文件中包括配置文件和日志文件 /etc/logrotate.d/nginx 类型:配置文件 作用:Nginx ...

  9. [476] Database Mail is not enabled for agent notifications. Cannot send e-mail to

    配置完DB Mail后JOB的的通知邮件不能发送,日志报错476] Database Mail is not enabled for agent notifications. Cannot send ...

  10. Android笔记(十三) Android中的基本组件——文本

    Android中常用的文本组件有 普通文本框(TextView)和编辑框(EditText)两种 EditText是TextView的子类,作用就是在界面上显示文本,区别是EditText允许用户编辑 ...