最近终于把车考过去了
,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
指令会进入到函数里面执行
就这么简单
~~
呵呵
基础指令就到这里了
过段时间开始记点调试的东东了
呵呵