B:
ba: 设置访问断点
ba w4 @@C++(&temp) ".echo test ba" : w代表write, 4代表只处理4个字节,后面是要处理的地址。
其中r/w支持1,2,4的数据长度,64位机器上也可以支持8的数据长度。但是e只能支持1的数据长度,只能写成e1。
bc: 删除breakpoint
bc * 删除所有
bc num1,num2 删除指定的ID为num1跟num2的breakpoint
bd: 禁用breakpoint
bd * 所有
bd num1,num2 禁用1,2
be: 启用breakpoint, 格式类似于bd
bl: 列出所有breakpoint
bp:设置breakpoint,
bp funName -> bp main bp main+0x8
bp address-> bp 00401000
bp Sample!main
bp ClassA::Fun
bp Sample!ClassA::Fun
bp Sample!ClassA__Fun
bp @@C++(Sample!ClassA::Fun)
bp main ".echo test main"
D:
d* 查看内存值。db按照字节查看,dw按照word, dd按照dword,比如db 012f5619. 如果不带任何参数,则会按照上一次的选项来查看。如果不带地址参数,则会查看上次结果的后续地址。dv 查看当前作用域下所有变量的值或者指定某个的值。du显示字符串,比如du 0x0f0f10d2
dt命令来查看结构。
E:
e* 修改内存值。用法跟d×类似,不同的只是这次是写入操作。
G:
g: 继续运行
K:
k: 显示调用栈
R:
r命令可以用来查看或者修改寄存器以及伪寄存器。
U:
u: 反汇编
其他:
.cls 清空窗口
.echo 向命令窗口输出字符串
.formats 转化成二进制
.reload 重新load模块跟symbol文件
.restart 重启调试目标
.symfix 自动将符号路径设置为指向Microsoft符号存储,如果是追加则是.symfix+。
~ 显示所有线程
~{id}s 切换到线程id, 如~0s 切换到线程
?: 查看符号所代表的值,比如? i, 显示i的地址
!address: 查看指定的内存地址信息,比如
!dml_proc: 通过DML 方式显示当前进程的信息