soft-ice

约 646 个字 预计阅读时间 2 分钟

d ss:sp see memory dump bpmb addr x set hardware execute breakpoint bc * clear all breakpoints u addr jump to address in code window wd x set data window height wc x set code window height ? expression can calculate expression .return to cs:ip in code window

exit rd stop debugging

copy data in data window: 用bochs自带调试器,writememory,记住地址,换成物理地址 help writemem "<filename>" <laddr> <len> filename 是bochs外地址

soft-ice常用命令
任何时候按ctrl+d可以呼出soft-ice, 再按ctrl+d可以隐藏
单步跟踪操作跟TD完全一样, 即F7=trace into, F8=step over, F4=goto cursor
ec     在命令窗与代码窗之间切换(enter code), 快捷键F6
rs     查看用户屏(restore screen), 快捷键F5
.      表示回到当前cs:ip, 相当于TD里面的ctrl+o
?                           显示帮助信息
?      表达式               计算表达式的值
d      段地址:偏移地址      查看该地址处内存变量的值(dump)
u      段地址:偏移地址      查看该地址处的指令(unassemble)
e      段地址:偏移地址 值   修改该地址处内存变量的值(edit), 例如: e ds:0 12 34 56 78
a      段地址:偏移地址 指令 修改该地址处的指令(assemble), 例如:a cs:ip mov ah, 2
s      地址 L长度 值        在[地址,地址+长度-1]范围内搜索该值, 例如: s cs:0 L10 B4 4C
f      地址 L长度 值        把该值填入[地址,地址+长度-1], 例如: f ds:0 L10 0
m      地址1 L长度 地址2    把[地址1,地址1+长度-1]范围内的块复制到地址2, 例如: m ds:0 L 10 ds:100
x      继续执行, 相当于debug中的g命令, 快捷键F9或ctrl+d
p ret  运行到返回(执行到ret或iret), 快捷键F12
bpx    段地址:偏移地址      设置软件断点,快捷键F2
bpmb   段地址:偏移地址 x    设置硬件执行断点
bpmb   段地址:偏移地址 r    设置硬件读断点
bpmb   段地址:偏移地址 w    设置硬件写断点
bpint  中断号n AH=m         当发生中断n且ah=m时断住
bpio   n                    当n号端口有i/o时断住
i3here on/off               当cpu执行到int 3指令时要不要让soft-ice弹出

map        查看内存分配, 可以用此命令查到各个进程的psp段址及占用内存的节长度(1节=16字节)
BL         显示所有断点
BC     n   清除第n个断点
BD     n   禁止第n个断点
BE     n   允许第n个断点
BC     *   清除所有断点
exit   rd  若调试时产生了非法操作导致dos系统崩溃,此命令可以强制恢复中断向量表。
hboot      重启(hard boot)

bochs: pb: physical breakpoint