最近終于把車考過去了
,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
指令會進入到函數里面執行
?
就這么簡單
~~
呵呵
?
?
基礎指令就到這里了
?
過段時間開始記點調試的東東了
呵呵
?
?
?