windbg學習筆記 四

2021-08-14 07:25:48 字數 1418 閱讀 1063

區域性變數

有兩個命令可以列印當前的區域性變數列表: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 ...