最近终于把车考过去了,windbg的学习耽搁了好多 前几天每天都在练车~搞死我了 不过还好在海边练景色很宜人~舒服~HOHO
上次说啥来着?
哦 对了 就是这几个命令~呵呵
堆栈显示指令kb , kp, kP , kv
反汇编指令 u,uf
跟踪指令 T,TA,TB,TC
执行相关指令 P,PA,PC
跟踪查看指令 WT
这些差不多了 到时候调试篇忘记了会把这些命令说明插进去~HOHO 这里仅做个整理
----------------------------------------------------------------------------
堆栈显示指令
k [b|p|P|v]
在内核调试的时候,k命令用来显示内核栈的内容
先说说内核栈用来干嘛的 看了些资料个人理解是这样的
比如我们的代码运行时,肯定会有函数函数然后还会调用函数 但是系统如何记录是哪个父函数调用了这个子函数,在子函数调用之前整个状态又是怎样的,其实系统是利用了堆栈记录的 栈这个东西好阿 先进后出 最近调用的函数记录在最顶层 函数执行完后就从栈内弹出之前记录的参数,如果调用函数 一样的把函数压进栈内就好了 这样一来 一旦子函数执行完,从栈内弹出的第一个函数肯定是该子函数的老爹 我们可以看上层堆栈的状态等等 功能大家慢慢去体会吧我也没用过 呵呵 不好说什么 下面说些细节的东西
b
显示传给函数的前三个参数
p
显示传给函数的全部参数
P(
大写)
跟上面那个一样 只不过是显示形式不同而已
V
外加显示一些额外的信息
----------------------------------------------------------------------------
u [f]
反汇编指令,嘿嘿 超级有用的指令哟虽然说内核很多东西很复杂 认识偶尔小小反下也是可以的
u
反汇编当前寄存器指向的代码
uf
函数名(比如nt!ZwCreateFile)
反汇编指定的函数
----------------------------------------------------------------------------
t [r]
单步跟踪
r
打开指显示寄存器的详细信息,状态的开关(下面指令一样有效,在用1次就会关闭哦~)
ta
地址
让程序执行到指定地址
tb
让程序运行到分支语句时停止
tc
让程序运行到下一个函数调用停止
----------------------------------------------------------------------------
p [r]
单步执行一跳指令
r
打开指显示寄存器的详细信息,状态的开关(下面指令一样有效,在用1次就会关闭哦~)
pa
让程序执行到指定地址
pc
让程序执行到函数调用就停止
----------------------------------------------------------------------------
wt
在想查看指定函数的信息而又不想单步通过该函数时很有用。可以到函数的起始地址并执行
wt
命令。(摘自翻译文档)
这个感觉用处不是很大.不细细研究了
----------------------------------------------------------------------------
Ps:
很多人不清楚到底p指令和t指令有什么区别 其实很简单 p指令执行到函数时把这个当做一个指令来执行也就是说不会进入函数执行,但是t指令会进入到函数里面执行 就这么简单~~呵呵
基础指令就到这里了 过段时间开始记点调试的东东了 呵呵