Windbg斷點命令

2021-05-28 03:17:24 字數 1161 閱讀 2838

windbg斷點命令

1) bu bp bm設定軟體斷點

a). bp設定位址關聯的斷點

b). bu設定符號關聯的斷點

c). bm支援設定含萬用字元的斷點,可以一次建立乙個或多個bu或bp (bm /d)斷點

bp和bu的主要區別

a) bp所設斷點和位址關聯,如果模組把該位址的指令移到其它地方,斷點不會隨之移動,而是依然關聯在在原來的位址上; 而bu所設斷點是和符號關聯,如果符號的位址改變了,斷點依然保持和原來的符號關聯。

b) 如果bp所設斷點的位址在載入的模組中被找到,後來軟體模組被解除安裝,斷點會被自動移除;而bu所設斷點則會一直存在。

c) bp設定的斷點不會被儲存windbg的workspace中,bu設定的斷點會則會被儲存下來。

2)ba設定硬體斷點(資料斷點)

硬體斷點是指當乙個記憶體位址被訪問(讀、寫、執行)或io埠被訪問時觸發的斷點。

bl 列舉所有斷點和它們的狀態

bc 刪除對應斷點

bd 禁用對應斷點

be 啟用對應斷點

.bmcmds 列舉所有斷點以及建立它們的命令

1) 軟體斷點 - 除錯工具控制的斷點。當偵錯程式在某個位址設定乙個斷點,它會首先把該位址的內容儲存,零時插入一條中斷指令(如int3 (0xcc)),當程式執行到該位址是cpu進入除錯狀態,當除錯結束,程式重新載入該位址原先的指令重新執行下去。

2) 硬體斷點 - 又稱為資料斷點,是處理器控制的斷點,可以用來監控某個記憶體位址的訪問(讀、寫、執行)和io位址的訪問(讀、寫)。處理器中有相應的除錯暫存器,用來記錄資料斷點的位址,當該位址(記憶體位址或io埠位址)被訪問時,斷點將被觸發,cpu進入除錯狀態。

3) 軟體斷點和硬體斷點的區別

a)理論上我們可以設定無窮多個軟體斷點,但設定軟體斷點會使程式變慢,尤其在核心態影響比較大,偵錯程式大多會對斷點數量加以限制。例如windbg在核心態最多支援32個軟體斷點,在使用者態則支援任意多個;硬體斷點數量取決於處理器,例如x86支援四個斷點(80386有八個除錯暫存器-dr0~dr3用於斷點,dr4~dr5保留,dr6~dr7用於控制)。

b)軟體斷點需要修改相應**,所以它不能除錯時flash和rom中的**;而硬體則沒有這個限制。

1. 2.

3. 4.

5. 6.

Windbg斷點命令

文章 1 bu bp bm設定軟體斷點 a bp設定位址關聯的斷點 b bu設定符號關聯的斷點 c bm支援設定含萬用字元的斷點,可以一次建立乙個或多個bu或bp bm d 斷點 bp和bu的主要區別 a bp所設斷點和位址關聯,如果模組把該位址的指令移到其它地方,斷點不會隨之移動,而是依然關聯在在...

Windbg斷點 dt命令

bl 列出所有斷點 bc 清除斷點 bd 禁用斷點 be 啟動被bd 命令經用的斷點 windbg提供dt命令來顯示符號型別資訊 dump symbolic type information 有以下3種用法 1 dt modulename typename,若省略模組名,則自動查詢所有已載入的模組,...

WinDBG常用斷點命令

windbg提供了多種設斷點的命令 還bu 可以對還不能識別的符號設定斷點,當系統中有新模組載入進來時,偵錯程式會對未定斷點再次進行識別,如果找到了匹配的符號則會設定它。而bp 斷點會失敗 因為函式位址不存在 bu 斷點則可以成功。新版的windbg中 bp失敗後會自動被轉成bu 以上三個命令是對 ...