windbg 调试手记
bp:打断点
一个按条件断点的例子 bp KERNELBASE!CreateFileW+0x3 "$<d:\\symbols\\script.txt"
script.txt的脚本内容为:
as /mu ${/v:string1} poi(esp+8)
.echo ${string1}
.if( $sicmp( "${string1}", "d:\abc.htm" ) = 0 ) {} .else {gc}
这个脚本的作用是讲第一个参数和“d:\abc.htm"进行对比, 可以显示出路径,但是 if执行出错。不知道为啥。。
bl:查看
bc:清除断点
ba:给地址打断点
lm:查看模块 lm m a* :查看以a开头的模块名
x user32!* 查看user32的所有符号名
du:显示unicode字符串
da:显示ascii字符串
dd:双字
$<Filename
$><Filename
$$< Filename
$$>< Filename
$$>a< Filename [arg1 arg2 arg3 ... ]
以上命令是运行脚本文件
as :用来定义一个别名
~查看所有线程,当前线程前有"."
!threads 的功能更全一些吧
.reload 重新加载符号表
~ ns 切换到第n个线程