Ay's Blog@CNSSUESTC

windbg学习笔记 FOR 内核调试(二)

最近终于把车考过去了 ,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 指令会进入到函数里面执行   就这么简单 ~~ 呵呵

 

 

基础指令就到这里了   过段时间开始记点调试的东东了 呵呵

 

 

 

posted on 2009-01-24 00:51 __ay 阅读(675) 评论(0)  编辑 收藏 引用 所属分类: 操作系统&&内核


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理