- 浏览: 1072339 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (379)
- eclipse (6)
- java基础 (21)
- opencms (4)
- tomcat (10)
- kettle (13)
- spring (7)
- 生活点滴 (3)
- linux (61)
- database (1)
- php (4)
- mac (3)
- mysql (37)
- maven (5)
- Asterisk (2)
- android (4)
- birt (2)
- hadoop (52)
- pentaho (46)
- distributed (2)
- Storm (2)
- 数据挖掘 (1)
- cassandra (0)
- spark (0)
- greenplum (3)
- R (1)
- liferay (3)
- 深度学习 (2)
- 数学 (1)
- Docker (3)
- Rancher (2)
- html (1)
- oracle (0)
- 交易 (0)
- Davinci (0)
最新评论
-
gujunge:
劝退。不支持两步验证登录、复制Session无效
Linux下SecureCRT的替代品:PAC Manager -
huangtianleyuan:
各位大神,有没有集成好的,请不吝赐教 qq:375249222 ...
在Web中集成Kettle -
梦行Monxin商城系统:
Dapper,大规模分布式系统的跟踪系统 -
hunter123456:
您好,请问一下,pentaho5.X 以上的版本,在服务器上建 ...
pentaho 4.8 添加 kettle 文件资源库的支持 -
hunter123456:
你好!pentaho5上 cas 单点登录,除了 修改appl ...
作为一个BI开发人员,我要发布报表,元数据,OLAP的模型到BI服务器
Bochs的调试命令风格是按照GDB习惯来设计的,这对于用惯了WinDbg的人来说无疑是痛苦的,好在这是个开源软件,看着不顺眼可以考虑自己改改。
目前版本的Bochs(Version 2.1.1)支持的调试命令如下:
[注意]
1、Bochs的文档和帮助信息中的使用说明与真实情况之间存在很大的差错和缺失, 下面的命令说明根据源码作了很多补充和修正。
2、其中涉及到的seg(段)、off(偏移)、addr(地址)、val(值)等数字, 可以使用十六进制、十进制或者八进制,但必须按照如下形式书写:
十六进制 0xCDEF0123
八进制 01234567
十进制 123456789
尤其要注意,Bochs不能自动识别16进制的数字,也不接受12345678h这种写法。
[执行控制]
c|cont 向下执行。
s|step|stepi [count] 单步执行,count 默认为 1。
p|n|next 单步执行。
q|quit|exit 退出调试,同时关闭虚拟机。
Ctrl-C 结束执行状态,返回调试器提示符。
Ctrl-D if at empty line on command line, exit
[执行断点]
vb|vbreak [seg:off] 在虚拟地址上下断点。
lb|lbreak [addr] 在线性地址上下断点。
pb|pbreak|b|break [addr] 在物理地址上下断点。
blist 显示断点状态。
bpd|bpe [num] 禁用/启用断点。num是断点号,可以用blist命令查询。
d|del|delete [num] 删除断点。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 0x00000000 0x4 0x11223344
x /4 0x00000000
[bochs]:
0x00000000 : 0x11223344 0x00000000 0x00000000 0x00000000
这样也可以:
setpmem 0x00000000 0x2 0x11223344
x /4 0x00000000
[bochs]:
0x00000000 : 0x00003344 0x00000000 0x00000000 0x00000000
或者:
setpmem 0x00000000 0x1 0x20
x /4 0x00000000
[bochs]:
0x00000000 : 0x00000020 0x00000000 0x00000000 0x00000000
下面的做法都会导致出错:
setpmem 0x00000000 0x3 0x112233
Error: setpmem: bad length value = 3
setpmem 0x00000000 0x8 0x11223344
Error: setpmem: bad length value = 8
crc [start] [end] 显示物理地址start到end之间数据的CRC。
[寄存器操作]
set $reg = val 设置寄存器的值。现在版本可以设置的寄存器包括:
eax ecx edx ebx esp ebp esi edi
暂时不能设置:
eflags cs ss ds es fs gs
r|reg|registers reg = val 同上。
dump_cpu 显示完整的CPU信息。
set_cpu 设置CPU状态,这里可以设置dump_cpu所能显示出来的所有CPU状态。
dump_cpu和set_cpu格式如下:
"eax:0x%x\n"
"ebx:0x%x\n"
"ecx:0x%x\n"
"edx:0x%x\n"
"ebp:0x%x\n"
"esi:0x%x\n"
"edi:0x%x\n"
"esp:0x%x\n"
"eflags:0x%x\n"
"eip:0x%x\n"
"cs:s=0x%x, dl=0x%x, dh=0x%x, valid=%u\n"
"ss:s=0x%x, dl=0x%x, dh=0x%x, valid=%u\n"
"ds:s=0x%x, dl=0x%x, dh=0x%x, valid=%u\n"
"es:s=0x%x, dl=0x%x, dh=0x%x, valid=%u\n"
"fs:s=0x%x, dl=0x%x, dh=0x%x, valid=%u\n"
"gs:s=0x%x, dl=0x%x, dh=0x%x, valid=%u\n"
"ldtr:s=0x%x, dl=0x%x, dh=0x%x, valid=%u\n"
"tr:s=0x%x, dl=0x%x, dh=0x%x, valid=%u\n"
"gdtr:base=0x%x, limit=0x%x\n"
"idtr:base=0x%x, limit=0x%x\n"
"dr0:0x%x\n"
"dr1:0x%x\n"
"dr2:0x%x\n"
"dr3:0x%x\n"
"dr4:0x%x\n"
"dr5:0x%x\n"
"dr6:0x%x\n"
"dr7:0x%x\n"
"tr3:0x%x\n"
"tr4:0x%x\n"
"tr5:0x%x\n"
"tr6:0x%x\n"
"tr7:0x%x\n"
"cr0:0x%x\n"
"cr1:0x%x\n"
"cr2:0x%x\n"
"cr3:0x%x\n"
"cr4:0x%x\n"
"inhibit_int:%u\n"
"done\n"
[反汇编命令]
u|disas|disassemble [/num] [start] [end]
反汇编物理地址start到end 之间的代码,如 果不指定参数则反汇编当前EIP指向的代码。num是可选参数,指定处理的代码量。
set $disassemble_size = 0;16;32 $disassemble_size变量指定反汇编使用的段大小。
set $auto_disassemble = 0;1 $auto_disassemble决定每次执行中断下来的时候(例如遇到断点、Ctrl-C等)是否反汇编当前指令。
[其他命令]
trace-on;trace-off Tracing开关打开后,每执行一条指令都会将反汇编的结果显示出来。
ptime 显示Bochs自本次运行以来执行的指令条数。
sb [val] 再执行val条指令就中断。val是64-bit整数,以L结尾,形如“1000L”
sba [val] 执行到Bochs自本次运行以来的第val条指令就中断。val是64-bit整数,以L结尾,形如“1000L”
modebp 设置切换到v86模式时中断。
record ["filename"] 将输入的调试指令记录到文件中。文件名必须包含引号。
playback ["filename"] 回放record的记录文件。文件名必须包含引号。
print-stack [num] 显示堆栈,num默认为16,表示打印的条数。
?|calc 计算表达式的值。
load-symbols [global] filename [offset]
载入符号文件。如果设定了“global”关键字,则符号针对所有上下文都有效。offset会默认加到所有的symbol地址上。symbol文件的格式为:"%x %s"。
[info命令]
info program 显示程序执行的情况。
info registers|reg|r 显示寄存器的信息。
info pb|pbreak|b|break 相当于blist
info dirty 显示脏页的页地址。
info cpu 显示所有CPU寄存器的值。
info fpu 显示所有FPU寄存器的值。
info idt 显示IDT。
info gdt [num] 显示GDT。
info ldt 显示LDT。
info tss 显示TSS。
info pic 显示PIC。
info ivt [num] [num] 显示IVT。
info flags 显示状态寄存器。
info cr 显示CR系列寄存器。
info symbols 显示symbol信息。
info ne2k|ne2000 显示虚拟的ne2k网卡信息。
上述的一些命令都是bochs常用的命令。
发表评论
-
ssh登录一段时间后断开的解决方案
2019-06-05 14:50 0Method 1: 修改/etc/ssh/sshd_con ... -
解决 docker 容器的中文乱码问题
2018-11-27 11:51 4342进入服务器上的 docker 容器查看 logs 时,发现 ... -
sh脚本异常:/bin/sh^M:bad interpreter: No such file or directory
2018-09-13 15:32 559在Linux中执行.sh脚本,异常/bin/sh^M: ba ... -
wget crul POST 数据
2016-11-08 10:35 14331.wget wget --post-data=&q ... -
CentOS软件卸载和依赖
2016-02-26 19:24 4399CentOS在软件安装过程中可能会出现依赖问题 软件包冲突 ... -
linux查看磁盘io的几种方法
2015-06-25 10:45 0怎样才能快速的定位到并发高是由于磁盘io开销大呢?可以通过 ... -
Vnc viewer与windows之间的复制粘贴
2015-03-16 14:04 11264用VNC连接到Linux之后,最纠结的问题就是无法复制粘贴。 ... -
linux中查看和修改计算机名.
2015-02-02 14:08 1434查看计算机名:在终端输入hostname 修改的话 ho ... -
Linux之特殊权限(SUID/SGID/SBIT)
2015-01-17 10:06 2183特殊权限的介绍 Set UID 当s这个标志出现在文件 ... -
kerberos安装配置
2015-01-15 22:14 1931安装步骤: 1.下载krb5-1.9 http://web ... -
pfSense是一款功能强大的免费路由器软件
2015-01-12 11:52 5007pfSense是一款功能强大的免费路由器软件,它是在著名的路 ... -
linux双机互备文件
2014-11-14 16:58 920只同步目录,不同步文件: rsync -av -e &q ... -
linux失手卸载应用
2014-11-14 11:24 813linux 手误删除了应用的文件,这个时候如何修复呢? y ... -
Linux中利用LVM实现分区动态扩容
2014-10-08 15:56 1934LVM的全称为Log ... -
nginx 日志中记录http响应头
2014-09-28 15:40 4274背景:一个很 ... -
在 CentOS 6.5 上安装 CloudStack
2014-09-10 14:42 3032又到年底,下月开始休假,所以这周基本上算今年 ... -
在iptables中,如何指定某个IP地址可以访问本机IP的所有端口
2014-08-25 18:50 13866针对ip某个端口范围 iptabels -A INPUT -p ... -
linux命令中文件大小小于多少的输出
2014-08-03 13:54 1095ls -l|awk '{if($5 < 某个值) pri ... -
使用expect实现ssh自动交互
2014-07-10 15:00 1568#!/usr/bin/expect -f #auto ssh ... -
Linux如何卸载挂载文件
2014-07-08 16:39 886在我们进行远程文件操作的时候,我们经常会出现文件服务出现卸载掉 ...
相关推荐
linux0.11 bochs 调试.txt linux0.11 bochs 调试.txt
使用bochs调试MBR1
wrk源码分析之WinDbg+Bochs调试
用Bochs调试NTLDR, 详细介绍了Bochs的用法,以及如何调试NTLDR
MinGW32+insight+bochs调试linux-0.11的环境:linux-0.11-insight.rar,完整版本。
bochs调试指令,很详细
利用GDB和Bochs调试内核源代码.txt
Bochs 调试器
很好的手册,跟着一步一步来
首先从bochs.sourceforge.net里面把BOCHS给download下来,鉴于Windows的普及,仅仅谈BOCHS在win下的使用方法,其实在其它的OS中方法差不多,不过我仅仅在Window和Linux下安装使用过。
大家可能都会想到VMWare,Bochs也是一个虚拟机,但是和VM在用途上还是不同的,你如果正在学习操作系统,比如某个版本的linux,或者学习系统引导程序boot等等,它是作为开发使用的虚拟机,可以进行操作系统开发调试,...
Trans.cpp还是有错,如果VirtualAddress>0xffff,那么生成的system.bin就错了,bochs调试时会一直重启。 权宜之计,把0xffff再改成0x3ffff,这样VirtualAddress就不能大于0x3ffff,不知谁有更好的解决方法, 08/4/...
最新的bochs2.6.8 虚拟机,带调试界面,带调试文档和配置文档
此中文版PDF, 高清,比50多兆那种高清很多, 内容可以复制, 可以转换成word, 带完整书签 《IDA Pro权威指南(第2版)》共...然后讲解了其高扩展性及其在安全领域的实际应用,最后介绍了IDA的内置调试器(包括Bochs调试器)
首先介绍了反汇编与逆向工程的基本信息和IDA Pro的背景知识,接着讨论了IDA Pro的基本用法和高级用法,然后讲解了其高扩展性及其在安全领域的实际应用,最后介绍了IDA的内置调试器(包括Bochs调试器),一方面让用户...
首先介绍了反汇编与逆向工程的基本信息和IDA Pro的背景知识,接着讨论了IDA Pro的基本用法和高级用法,然后讲解了其高扩展性及其在安全领域的实际应用,最后介绍了IDA的内置调试器(包括Bochs调试器),一方面让用户对...
首先介绍了反汇编与逆向工程的基本信息和IDA Pro的背景知识,接着讨论了IDA Pro的基本用法和高级用法,然后讲解了其高扩展性及其在安全领域的实际应用,最后介绍了IDA的内置调试器(包括Bochs调试器),一方面让用户...
首先介绍了反汇编与逆向工程的基本信息和IDAPro的背景知识,接着讨论了IDAPro的基本用法和高级用法,然后讲解了其高扩展性及其在安全领域的实际应用,最后介绍了IDA的内置调试器(包括Bochs调试器),一方面让用户对...
首先介绍了反汇编与逆向工程的基本信息和IDA Pro的背景知识,接着讨论了IDA Pro的基本用法和高级用法,然后讲解了其高扩展性及其在安全领域的实际应用,最后介绍了IDA的内置调试器(包括Bochs调试器),一方面让用户...
Bochs-2.1.1 调试操作系统的必备工具 可作虚拟机使用