Bochs2.6.11常用命令
- 2020-11-02 08:55:00
- 赵勤松 原创
- 3076
一、系统命令
命令 | 参数 | 说明 |
h|help | 无 | 显示完整的帮助信息 |
|
<命令> | 显示具体命令的详细帮助 |
q|quit|exit | 无 | 退出模拟器的调试过程 |
set | <寄存器> = <值> |
设置寄存器的值 |
|
eflags = <表达式> |
设置eflags的值(并非所有标志都可以修改) |
|
$cpu = <N> | 在SMP模式中将调试器控制移动到指定的CPU |
|
$auto_disassemble = 0|1 | 设置调试器在每次执行停止时反汇编当前指令 |
|
u|disasm|disassemble on | 等同于"set $auto_disassemble = 1" |
|
u|disasm|disassemble off | 等同于"set $auto_disassemble = 0" |
instrument | <命令> | 使用命令调用BX_INSTR_DEBUG_CMD |
show | 无 | 显示当前的show模式 |
|
mode |
当处理器切换模式时显示信息(开启或关闭) |
|
int | 当发生中断时显示信息(开启或关闭) |
|
softint |
当发生软中断时显示信息(开启或关闭) |
|
extint | 当发生外部中断时显示信息(开启或关闭) |
|
call | 当发生call时显示信息(开启或关闭) |
|
iret | 当发生iret时显示信息(开启或关闭) |
|
all | 打开所有可切换的显示 |
|
off | 关闭所有可切换的显示 |
|
dbg_all |
打开所有bx_dbg标志 |
|
dbg_none | 关闭所有bx_dbg标志 |
trace | on | 打开指令跟踪(执行每条指令时显示指令的反汇编代码) |
|
off | 禁用指令跟踪 |
trace-reg | on | 打开寄存器状态跟踪(执行每条指令之前打印所有的寄存器内容) |
|
off | 关闭寄存器状态跟踪 |
trace-mem | on | 打开内存访问跟踪(打印指令执行期间发生的所有内存访问) |
|
off | 关闭内存访问跟踪 |
u|disasm | 无 | 显示当前地址开始的一条指令 |
|
起始地址 |
显示指定地址开始的一条指令 |
|
/数量 | 显示当前地址开始的多条指令 |
|
/数量 起始地址 | 显示指定地址开始的多条指令 |
|
起始地址 终止地址 | 显示从指定地址到终止地址的所有指令 |
|
switch-mode |
切换反汇编指令的语法形式(Intel与AT&T) |
|
hex on/off |
控制偏移和位移格式 |
|
size = n | 段大小(16|32|64) |
ldsym |
[全局] <文件名> 偏移值 |
从文件中加载符号定义 |
slist | 无 | 显示所有的符号定义 |
|
[字符串] | 显示指定字符串开头的符号定义 |
二、运行命令
命令 | 参数 | 说明 |
c|cont|continue | 无 | 继续执行直到断点 |
|
if "表达式" | 继续执行直到表达式成立 |
s|step | 无 | 单步执行 |
|
数量 |
执行指定数量的指令 |
|
[cpu] 数量 | 在执行的cpu上执行一定数量的指令 |
|
all 数量 | 在所有的cpu上执行一定数量的指令 |
p|n|next |
无 | 单步执行,跳过子程序和中断程序 |
modebp |
无 | 切换"模式更改"中断的状态(开启后,实模式与保护模式之间切换时触发) |
vmexitbp | 无 | 切换"虚拟机退出"中断的状态(开启后,虚拟机退出时触发) |
三、断点设置
命令 | 参数 | 说明 |
vb|vbreak | addr | 设置一个虚拟地址类型中断 |
|
addr if "expression" | 设置一个条件触发的虚拟地址类型中断 |
lb|lbreak | addr | 设置一个线性地址类型中断 |
|
addr if "expression" | 设置一个条件触发的线性地址类型中断 |
pb|pbreak|b|break | addr |
设置一个物理地址类型中断 |
pb | addr if "expression" | 设置一个条件触发的物理地址类型中断 |
sb | <delta> | 再过delta个脉冲周期就中断 |
sba | <time> | 执行到time个脉冲周期就中断(time为系统启动到现在的总数) |
blist | 无 | 显示所有的断点信息,与info break相同 |
bpe | <断点序号> | 应用指定断点序号(可用blist查询) |
bpd | <断点序号> | 禁用指定断点序号(可用blist查询) |
d|del|delete | <断点序号> | 删除指定的断点序号 |
watch | 无 | 显示所有的读写断点信息 |
|
stop | 遇到断点时停止运行 |
|
continue | 遇到断点时显示断点信息并继续执行 |
|
r|read addr | 将指定物理地址设为读断点 |
|
r|read addr <len> | 将指定物理地址开始的len字节设为读断点 |
|
w|write addr | 将指定物理地址设为写断点 |
|
w|write addr <len> | 将指定物理地址开始的len字节设为写断点 |
unwatch | 无 | 删除所有的读写断点 |
|
addr | 删除一个指定的读写断点 |
四、CPU和内存操作
命令 | 参数 | 说明 |
x | /nuf <addr> |
显示起始线性地址为addr的指定个数内存信 息 n为数字 u为以下格式:b(8bit),h(16bit),w(32bit),g(64bit) f为以下格式: x(16进制),d(10进制),u(10进制无符号),o(8进制),t(2进制),c(字符),s(ASCII),i(字符串) m为延续上一次使用的格式输出 |
xp | /nuf <addr> |
显示起始物理地址为addr的指定个数内存信 息 n为数字 u为以下格式:b(8bit),h(16bit),w(32bit),g(64bit) f为以下格式: x(16进制),d(10进制),u(10进制无符号),o(8进制),t(2进制),c(字符),s(ASCII),i(字符串) m为延续上一次使用的格式输出 |
setpmem | <addr> <datasize> <val> |
设置指定物理地址addr处datasize个字节的内容为val.( datasize最大为4字节) |
writemem |
<filename> <addr> <len> | 将指定物理地址addr开始的len个字节内存数据写入filename中 |
crc | <addr1> <addr2> | 显示addr1到addr2之间的CRC32值 |
info | break | 显示所有的断点信息 |
|
cpu | 显示所有的CPU寄存器信息 |
|
idt | 显示保护模式下中断描述符表信息 |
|
ivt | 显示实模式下的中断向量表信息 |
|
gdt | 显示GDT段描述符表信息 |
|
tss | 显示TSS任务描述段信息 |
|
tab | 显示页表 |
|
eflags | 显示标志寄存器信息 |
|
symbols [string] |
|
|
device | 显示支持查看的设备信息 |
|
device [string] | 显示指定设备的状态信息 |
|
device [string] [string] | 附加参数显示指定设备的状态信息 |
r|reg|regs|registers |
无 | 显示CPU寄存器以及其内容 |
fp|fpu | 无 | 显示FPU状态 |
mmx |
无 | 显示MMX状态 |
xmm|sse | 无 | 显示SSE状态(xmm寄存器) |
sreg | 无 | 显示段寄存器 |
dreg | 无 | 显示调试寄存器 |
creg | 无 | 显示控制寄存器 |
page | 线性地址 | 显示线性地址所在页面到物理页面的映射 |
ptime | 无 | 打印当前时间 |
print-stack | <word数> | 打印栈顶以下指定个数的word数据,默认是16个 |
?|calc | 表达式 |
表达式中可以引用任何通用寄存器,opmask寄存器和段寄存器,可以使用任何算术和逻辑运 算 支持特殊的":"运算符来计算地址,实模式和v86模式下为"段:偏移",或保护模式下的"选择子:偏移" |
联系人: | powereye |
---|---|
Email: | zqs@someapp.cn |
QQ: | 1134846 |
微信: | powereye |