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