區域性變數
有兩個命令可以列印當前的區域性變數列表:x 和dv。x命令前文已經講過。dv是display local variable的縮寫。下面是對一段簡單的win32控制台**獲取其區域性變數的情況:
acsvio.exe
0:000:x86> x
0019ff34 argc = 0n1
0019ff38 argv = 0x04901a68
0019ff18 procadd = 0x7716f090
0019ff24 hlib = 0x77100000
0:000:x86> dv
argc = 0n1
argv = 0x04901a68
procadd = 0x7716f090
hlib = 0x77100000
§ /i:顯示變數詳細資訊(information),包括區域性變數、全域性變數、形參、函式變數等。
§ /t:顯示變數型別(type),如int、char等等。
§ /f:可指定進行分析的函式,需指定函式名。
命令中選項/f wmain是指針對wmain函式(即_tmain)分析其區域性變數。看第乙個變數argc,「prv param」對應/i開關選項;「@ebp+0×08」對應/v開關選項;「int」對應/t開關選項。
0:000:x86> dv /t argc
int argc = 0n1
0:000:x86> dv /v argc
0019ff34 argc = 0n1
0:000:x86> dv /i argc
prv param argc = 0n1
0:000:x86> dv /f main
@ebp+0x08 argc
@ebp+0x0c argv
@ebp-0x14 procadd
@ebp-0x08 hlib
顯示型別
利用dt命令可以檢視結構體的型別定義。命令dt是display type的縮寫。當我們要檢視一些核心結構體的定義時,dt命令是最直接有效的手段。
0:000:x86> dt argc
local var @ 0x19ff34 type int
0n10:000:x86> dt main
acsvio!main
main int (
int,
char**)
windbg使用筆記
當有進一步情況時,該貼會進行更新。參考 一直以來都遇到一些問題很難除錯,即使用vs2010自己去除錯也有些問題沒法定位,所以不得不去看下windbg如何使用。之前都有嘗試去用,但實在是不會用,也就放下多次了。現在又在除錯乙個程式,還是cpu占用高的問題,就想找到究竟是哪個執行緒導致的。我現在在除錯的...
windbg除錯學習 五
斷點 軟體斷點 軟體斷點的本質是 改寫,即 將int 3 為0xcc 指令替換到斷點所在指令處 第乙個位元組 並儲存被替換掉的 即乙個位元組內容 等執行到斷點處時,偵錯程式將因斷點而中斷,並將被替換的一位元組內容恢復到原記憶體中。其原理和 補丁是一樣的。原始碼或彙編模式下,最簡單的斷點設定方式,是定...
學習筆記(四)
第六章 法律法規 6.1 系統繼承單位資質管理辦法 6.2 專案經理資質管理辦法 6.3 著作權法 6.4 計算機軟體保護條例 6.5 其他相關知識 第七章 軟體工程國家標準 7.1 標準化基礎知識 gb q t z 9000標準族 7.2 基礎標準 gb t 11457 1995 gb 1526 ...