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節點的下乙個節...