netroc
從事了數年的軟體開發,我覺得工作中最考腦筋的有兩個方面:軟體設計和軟體除錯。通常技術人員個人能力的高低,很大程度上也是看這兩方面的能力。以往討論軟體設計的書都已經很多,但是軟體除錯卻似乎一直沒有得到足夠的關注。當我個人試圖從程式設計師的視角轉換出來,更多的從全域性的眼光來觀察軟體生命週期中的方方面面 時,很高興能夠讀到《windows高階除錯》這本好書。
《windows高階除錯》(後面簡稱awd)是一本實用化的書。整本書都是聯絡軟體除錯中的實際操作來講述的。第二部分中分類講解了各種常見的bug問題的除錯方法,每一部分都是按照如何識別問題、如何分析原因、如何除錯確認這樣的流程。這是非常符合我們在實際的除錯工作中的思維方式的。
awd是一本包含作者很多除錯經驗的書。令我印象非常深刻的是第二章中的一句話:"由於擴充套件命令!dreg的引數是非常長的,因此我們經常將這些引數從之前的除錯會話中複製過來。一種常見的情況是,在每次分析除錯會話之前,首先在檔案中儲存一組命令,然後再將根據需要將這些命令複製到除錯會話中。"就像是一位除錯經驗豐富的朋友在談話中偶爾傳達給大家的經驗之談。雖然看起來不起眼,但是卻常常能對工作起到很好的幫助。實際上,之前我自己在除錯的時候就是像作者所說的這樣做的。
剛剛接觸軟體除錯和有豐富除錯經驗的開發人員都能從awd中找到自己需要的東西。新手可以從作者講解的分析思路中學到當遇到實際問題的時候應該從什麼方面去思考。書中也還介紹了一些東西,需要相當除錯經驗才能理解它的作用,例如第6章對堆記憶體分配機制的內容。通常來說很多問題並不需要了解堆分配的細節就能解決,但是有一些特殊情況,例如通過工具和命令不能自動分析,必須手動分析堆管理器的內部資料時。關於軟體除錯的內容,有很多是可以馬上用到手上的,但是也有很多需要在讀完之後在漫長的實踐和經驗積累中才能慢慢體會到作用的。
如果想全面了解軟體除錯技術,單看awd這一本書是不夠的。這本書比較遺憾的是沒有系統的介紹偵錯程式和各種除錯工具的使用。很多命令和工具是穿插在除錯場景中介紹的。不過這方面的內容也足以寫一本幾百頁的書了,awd的篇幅可能沒有辦法面面俱到。關於偵錯程式和除錯工具的使用,建議讀者也專門找一些資料來學習,例如windbg的幫助文件就是非常好的資源。
2009-07-10
《Windows高階除錯》評價
從事了數年的軟體開發,我覺得工作中最考腦筋的有兩個方面 軟體設計和軟體除錯。通常技術人員個人能力的高低,很大程度上也是看這兩方面的能力。以往討論軟體設計的書都已經很多,但是軟體除錯卻似乎一直沒有得到足夠的關注。當我個人試圖從程式設計師的視角轉換出來,更多的從全域性的眼光來觀察軟體生命週期中的方方面面...
windows環境除錯
一 除錯 1 除錯 debug 又稱除錯,是發現和減少電腦程式和電子儀器中程式錯誤的乙個過程 2 除錯的步驟 發現程式錯誤的存在 以隔離 將 分成一塊一塊 消除等方式對錯誤進行定位 確定錯誤產生的原因 提出糾正錯誤的解決辦法 對程式錯誤予以改正 3 debug和release debug 除錯版本,...
windows指令碼除錯howto
如果你經常用vbs或者js寫些windows指令碼並且只知道用列印變數的方式來除錯你的程式的話 那麼你可以先去吐一下血,然後看完本文。下面分別講講如何除錯html頁面和hta中的指令碼,wsh指令碼和asp指令碼,這裡偵錯程式分為兩種 那個簡單的指令碼偵錯程式這裡簡稱sd,vs的就簡稱為vs代表vs...