大家能談談是怎麼學習windbg的嗎?

感覺挺難入手的,有沒有什麼好的參考?


是時候關注我的專欄了 ):

----------------------------------

我最開始學得時候是死記命令,但是這樣並沒有什麼用,依然不會調試。當時也能看懂彙編,但是遇到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 | 軟體調試 |