大家能談談是怎麼學習windbg的嗎?
01-05
感覺挺難入手的,有沒有什麼好的參考?
是時候關注我的專欄了 ):----------------------------------
我最開始學得時候是死記命令,但是這樣並沒有什麼用,依然不會調試。當時也能看懂彙編,但是遇到dump就是不知道如何調試,無從下手。後來突然有一天就頓悟了,原來調試就是要有調試的思想,然後根據這個思路去找自己應該用什麼命令,這一切都是建立在會彙編基礎之上的。如果你是練習源碼調試,那和vs沒多大區別,快捷鍵都一樣,命令用習慣了就記住了
多用,多看文檔(安裝目錄下的debugger.chm),很快就熟悉了。推薦兩份入門文檔,一個是WinDbg_A_to_Z_color_百度文庫,還有一個是DebugInfo.com,後者在bbs.pediy.com好像有一個譯文。另外,張銀奎老師的《格蠹彙編――軟體調試案例集錦》是極好的windbg教材,建議購買一本隨時翻閱。
入門的話,張銀奎的《軟體調試》第30章,還有一本叫什麼什麼高效排錯的;自己寫個demo把常見問題(av,high cpu、deadlock等)試試;不會了就看文檔,英文不好有翻譯版;
無他,唯手熟爾。
文檔 + 3本書
1. 軟體調試 (豆瓣)
2. Windows高級調試 (豆瓣)3. 格蠹彙編 (豆瓣)如果要調試.net再加入.NET高級調試 (豆瓣)微軟有個官方博客 ntdebugging 講了很多例子可以參考。另外有個作者 Dmitry Vostokov出了很多相關的書。再有試試 python windbg extension 也可以學很多
其他人推薦的書我都看過,不過我感覺最適合入門的是inside windows debugging,去這上面找吧WinDbg。
等後面想深入學習調試子系統,可以看軟體調試 還有OpenRCE這上面有幾篇講調試器幕後原理的,對照Index of /reactos/源碼看吧。
windbg自帶的文檔很不錯的!
用戶態高效排錯,advanced windows debugging
推薦閱讀:
※同一個指針,作為父類類型被delete,但作為子類類型仍能訪問成員變數,為什麼?
※這次dmlc發布的深度學習框架mxnet比之caffe有什麼優缺點?
※C++什麼情況下,需要重載一個成員函數的const和非const版本?
※為什麼 C++ 有指針了還要引用?
TAG:MicrosoftWindows | C | 軟體調試 |