Bochs常用调试指令

前端之家收集整理的这篇文章主要介绍了Bochs常用调试指令前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
执行命令@H_301_4@@H_301_4@
c 继续执行@H_301_4@@H_301_4@
stepi [count]@H_301_4@ 执行一定count数量的指令,缺省值为1
si [count] 执行一定count数量的指令,缺省值为1
step[count] 执行一定count数量的指令,缺省值为1@H_301_4@@H_301_4@
s@H_301_4@ [count] 执行一定count数量的指令,缺省值为1
Ctrl-C 停止执行,返回到命令行方式@H_301_4@@H_301_4@
Ctrl-D 如果命令行有空行,则退出(不知道什么意思)@H_301_4@@H_301_4@
quit 退出@H_301_4@@H_301_4@
q 退出@H_301_4@@H_301_4@
设置断点@H_301_4@@H_301_4@
vbreak seg:off 设置一个虚拟地址断点@H_301_4@@H_301_4@
vb seg:off@H_301_4@@H_301_4@
@H_301_4@
lbreak addr 设置线性地址断点@H_301_4@@H_301_4@
lb addr@H_301_4@@H_301_4@
@H_301_4@
pbreak [*] addr 设置物理地址断点@H_301_4@@H_301_4@
pb [*] addr (*号代表可选的GDB能力)@H_301_4@@H_301_4@
break[*] addr@H_301_4@
b [*] addr@H_301_4@@H_301_4@
@H_301_4@
info break@H_301_4@ 显示所有断点
delete n 删除断点@H_301_4@@H_301_4@
del n@H_301_4@@H_301_4@
d n@H_301_4@@H_301_4@
操作内存@H_301_4@
x/nuf addr@H_301_4@ 显示在addr线性内存处的内存数据
xp /nuf addr 显示在addr物理内存处的内存数据@H_301_4@@H_301_4@
n @H_301_4@显示的数据个数 
u 显示单元大小; 下面其中之一 @H_301_4@@H_301_4@
b 一字节 @H_301_4@
h 2字节 @H_301_4@
w 4字节 @H_301_4@
g 8字节 @H_301_4@
NOTE: 这里的格式和Intel的不一样,但是与GDB转换相一致 @H_301_4@
f 显示格式下面其中之一 @H_301_4@@H_301_4@
x 使用16进制 @H_301_4@
d 使用10进制 @H_301_4@
u 使用无符号10进制@H_301_4@
o 使用8进制 @H_301_4@
t 使用2进制 @H_301_4@
n,f,和 u 都是可选的参数.u 和 f 缺省值为上一次设置的值。如果没有指定@H_301_4@
则缺省值为w和x。@H_301_4@
n 的缺省值为1。@H_301_4@
Addr 也是可选的参数。如果不指定则会自动地指定为下一个地址。@H_301_4@
@H_301_4@
setpmem addr datasize val 设置addr一片大小为datasize的物理内存的值为val@H_301_4@@H_301_4@
@H_301_4@
crcaddr1addr2 显示范围从addr1到addr2的校验@H_301_4@@H_301_4@
info dirty 显示从上一次显示到现在为止的脏(被写到的)的物理页@H_301_4@@H_301_4@
显示的值为最上头的20个字节(页地址)@H_301_4@
上面这些我自己看不明白什么意思@H_301_4@@H_301_4@
@H_301_4@
@H_301_4@
显示信息命令@H_301_4@
info program 程序执行情况可以用info p代替@H_301_4@@H_301_4@
info registers 列出cpu的寄存器和寄存器里面的值可以用info r代替@H_301_4@@H_301_4@
info break 当前所有断点的信息可以用info b代替@H_301_4@@H_301_4@
操作 cpu 寄存器@H_301_4@
set $reg = val 设置一个寄存器reg的值为val.@H_301_4@@H_301_4@
寄存器可以是:@H_301_4@
 eax,ecx,edx,ebx,esp,ebp,esi,edi.@H_301_4@@H_301_4@
 通常不应该修改下列:@H_301_4@@H_301_4@
 eflags,cs,ss,ds,es,fs,gs.@H_301_4@@H_301_4@
@H_301_4@
 例子: set $eax = 0x01234567@H_301_4@@H_301_4@
 set $edx = 25@H_301_4@@H_301_4@
@H_301_4@
info registers 查看寄存器信息@H_301_4@@H_301_4@
dump_cpu 查看完整的cpu状态信息@H_301_4@@H_301_4@
set_cpu 设置cpu状态@H_301_4@@H_301_4@
新命令@H_301_4@
trace-on@H_301_4@
每执行一条指令就显示出相应的反汇编命令,导致异常的指令并不是真正的执行,因此不能被追踪。@H_301_4@
trace-off@H_301_4@
禁止追踪. @H_301_4@
ptime@H_301_4@
显示当前时间(从开始模拟到现在为止的tick数量,以2^32为模)@H_301_4@
sb delta@H_301_4@
插入一个基于时间设置在之后的断点,delta是一个64位的后面有一个L字符的整型数,如1000L。好像是偏移的意思。@H_301_4@
sba time@H_301_4@
插入一个基于指定时间的断点@H_301_4@
record filename@H_301_4@
记录控制台输入到文件 filename@H_301_4@. 文件由0和许多行”%s %d %x”组成,第一个词为事件类型,第二个是时间戳第三个是事件的数据细节 @H_301_4@
playback filename@H_301_4@
文件filename回放控制台输入. 可以在控制台窗口直接进行额外的输入.@H_301_4@
print-stack [num words]@H_301_4@
显示堆栈顶端num words个16位的字。只有堆栈段的基地址为0的时候才能可靠的工作在保护模式下。 @H_301_4@
watch stop@H_301_4@
当遇到一个监视点时停下来回到提示命令行方式. @H_301_4@
watch continue@H_301_4@
碰到监视点时不停止 @H_301_4@
watch@H_301_4@
显示当前监视点的状态. @H_301_4@
unwatch@H_301_4@
去掉所有监视点. @H_301_4@
watch read address@H_301_4@
address@H_301_4@地址出加入一个读监视点 @H_301_4@
watch write address@H_301_4@
address地址处加入一个写监视点@H_301_4@. @H_301_4@
unwatch read address@H_301_4@
address 地址处去掉一个读监视点@H_301_4@. @H_301_4@
unwatch write address@H_301_4@
从address 地址处去掉一个写监视点@H_301_4@ . . @H_301_4@
show [string]@H_301_4@
@H_301_4@
触发show信息.@H_301_4@
show – 显示当前的show模式@H_301_4@
show "mode" – 当处理器转换模式时显示@H_301_4@
show "int" – 当中断发生时显示@H_301_4@
show "call" – 当调用发生时显示@H_301_4@
show "ret" – 当iret发生时显示@H_301_4@
show "off" - toggles off symbolic info@H_301_4@
show "dbg-all" – 打开所有的show标记@H_301_4@
show "none" – 关闭所有的show标记@H_301_4@

猜你在找的VB相关文章