為異常處理做準備,熟悉一下WinDbg工具

2022-03-20 21:02:16 字數 1993 閱讀 8858

ibinary原創  部落格連線:

馬上開始異常處理第二講,但是在講解之前,還有熟悉一下我們的windbg工具,當然你如果熟悉這個工具,那麼就可以不用看了.

剛開始開啟windbg就是這個介面,現在我們開啟乙個32位程式,開啟file選單,看下內容

第乙個,除錯原始檔,一般用不到,每個編譯器都在帶偵錯程式,自己用自己的就好

第二個,開啟乙個可執行檔案,很常用

第三個,附加乙個程序,這個和od很類似,當程式開啟之後可以附加

現在我們用第二個,開啟乙個我們的可執行程式(注意,32位程式就用x86 的windbg,64反之)

開啟之後就乙個命令視窗,但是我們可以通過下面的快捷鍵設定

記住快捷鍵: 

alt - 9  的快捷鍵

alt + 1 命令列

alt + 2 監視視窗

alt + 3 本地變數

alt + 4 暫存器

alt + 5 記憶體

alt + 6 呼叫堆疊

alt + 7 反彙編視窗

alt + 8 開啟乙個記錄本

alt + 9 程序和執行緒

ctrl + n 命令瀏覽器

1.注意符號路徑的設定,如果不設定,那麼你反彙編的時候,將看不到windbg翻譯出來的函式了

這個是od做不到的,你呼叫什麼函式,windbg都能知道,歸功於符號路徑的設定

ctrl + s 開啟符號路徑設定,或者在選單點選

2.常用除錯手法

windbg和od不一樣,快捷鍵也有區別了

它的快捷鍵適合vc++6.0的一樣

f9 設定斷點

f5 執行

ctrl + shift + f5  重新執行(相當於ollydbg中的ctrl + f2)

shift + f5  停止除錯

f10 單步一次

f11 遇到函式進去,步進一次

常用的怎麼多.

windbg常用的命令很多.具體可以搜尋msdn這裡只簡單列舉一下

bp 命令,設定斷點

bm 命令,設定執行符號斷點,可以多個符號下段點

ba  命令,設定記憶體訪問斷點

bl   命令,檢視斷點列表

bc *  清除所有斷點.

反彙編:

u 指令,向下反彙編

ub指令,向上反彙編

uf 反彙編整個函式

彙編:a指令,可以寫入彙編**

檢視型別指令,預設顯示所有型別,加餐食 -b 顯示子型別資訊

dt 或者

dt -b

檢視棧指令 

k指令單獨使用時,之顯示棧位址、返回位址、函式名資訊。如果需要其他資訊需要使用引數。常見的有

b 顯示函式呼叫時的前三個引數

c 只顯示函式名

p 顯示函式的所有引數,包括引數的名字、型別、值。

v 顯示幀指標遺漏(fpo)資訊。在基於x86處理器,顯示器還包括呼叫約定資訊

n 顯示呼叫棧的每幀編號

f 顯示呼叫棧的每幀占用位元組數

預設情況下使用k顯示當前執行緒棧,如果加上執行緒命令字首,可以檢視某個執行緒棧,如~* k檢視所有執行緒棧

等等

ibinary原創  部落格連線:

為實習筆試做準備

1.二叉樹遍歷 前序 根 左 右 中序 左 根 右 後序 左 右 根 一般題目會給出後序,記住最後乙個為根節點,然後慢慢推導左右子樹 2.霍夫曼編碼 霍夫曼 huffman 編碼屬於碼詞長度可變的編碼類,是霍夫曼在1952年提出的一種編碼方法,即從下到上的編碼方法。同其他碼詞長度可變的編碼一樣,可區...

為面試做準備之計數排序

計數排序的優點是 1 時間複雜度是o n 2 穩定。缺點是空間複雜度是o n 計數排序無需需要乙個輔助陣列,和乙個輸出陣列。輔助陣列先存放輸入陣列中每個數字的個數,然後修改為相同陣列的最後乙個的位置。實現時需要注意兩點 1 在輸入最大數字k時,分配輔助陣列需分配k 1個空間。2 由於最後在輔助陣列中...

雙向迴圈鍊錶(為STL LIST 做準備)

struct list struct list 鍊錶構建容易錯誤的地方在於插入和刪除。插入 我們把n節點插入p節點之後。需要1.用n的next指標指向p的下乙個節點l。2用l的prev指標指向n。3.用n的prev指標指向p。刪除 刪除時我們一般 1.建立乙個指標tmp指向所要刪除的p節點的下乙個節...