找到問題根源——評《Windows高階除錯》
除錯,是通過嘗試執行程式找到問題根源的過程。這和測試不同,測試是發現問題的過程,但不深究問題產生的位置、原因。除錯是開發人員必須具備的能力,即便是在分工很細緻的大企業中——設計、開發、測試往往由不同的工程師完成——除錯這項工作卻常常(甚至是必須)由開發人員自己進行。
除錯有兩個層面,一種是基本除錯,是我們每天都在接觸的。通常,一個完善的整合開發環境通常都自帶有偵錯程式;而如今開發人員的開發習慣,也是寫完一段語法完整的程式碼後就順手啟動偵錯程式除錯一下。這類除錯通常是特定語言的、原始碼級別的、使用者態的,對於上層的邏輯錯誤通常是足夠的;但如果遇到更深層次的問題,僅僅通過基本除錯就無能為力了。
另一種是高階除錯,這種除錯通常使用獨立的偵錯程式(未與開發環境整合),並能脫離原始碼進行除錯;甚至可以除錯作業系統的底層問題(核心除錯)。高階除錯並不是開發人員所必需具備的能力(甚至很多開發人員並不熟練掌握高階除錯),但掌握高階除錯可以大幅提高自身功力,對於開發技術的進階是必不可少的。
《Windows高階除錯》(以下簡稱《AWD》)一書正是講解如何在Windows作業系統上進行高階除錯的。其實“高階除錯”不過是“另一種除錯方法”而已,它也有自己的入門、進階、精通等程度。而《AWD》一書,在老劉看來應該是屬於“入門”和“進階”這兩個級別的,特別適合於掌握了一定的開發技術和基本除錯技術,想學習高階除錯的朋友。
《AWD》分為三部分,第一部分主要介紹高階除錯應具備的基本工具,包括偵錯程式和符號檔案等。雖然在第一章中介紹了很多種偵錯程式,但整本書用得最多的還是windbg.exe。
第二部分則從實踐的角度介紹了多種除錯場景,如記憶體、資源、程式間通訊和同步等。這一部分是整本書的核心,細讀下來不僅能掌握高階除錯的基本方法,還能對作業系統原理有更加深刻的掌握。
第三部分則是高階除錯中的高階主題,這一部分內容對於大多數開發人員來說可能並不是必須的,甚至日常工作根本用不到。但對於對除錯技術非常著迷的朋友,或者是系統開發者,這部分卻是必不可少的。正如Raymond McCollum所說,大多數書籍在涉及到如此高階的主題時,往往“留給讀者練習”或“請參閱其他高階參考書”,而本書則屬於那些“高階參考書”。
前面提到本書屬於“入門”和“進階”的級別,並非看輕此書。高階除錯技術本身就是相對複雜的,但本書卻沒有故弄玄虛,而是從多種常見的除錯場景入手,介紹如何使用偵錯程式來完成特定的除錯任務。這樣新進入除錯領域的開發者就能很快地上手,實際感受到除錯的快感和樂趣。而即便是經常使用偵錯程式的熟手,也可以將本書作為參考,快速查詢各種場景中的除錯命令。
《AWD》一書的遺憾在於,並沒有非常詳盡地介紹每種偵錯程式,所以讀者朋友不得不“參與其他文章或書籍”來掌握各種偵錯程式的基本操作。當然,如果不是這樣的話,您手中的書可就不是500餘頁這麼簡單了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15783504/viewspace-628688/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 《Windows高階除錯》點評Windows高階除錯
- 【根本原因分析】如何找到問題的根源?
- gdb高階除錯方法高階除錯
- JVM高階效能除錯JVM除錯
- .NET高階除錯系列-Windbg除錯入門篇高階除錯
- .NET 5 程式高階除錯-WinDbg高階除錯
- JVM高階效能除錯實戰JVM除錯
- 除錯cmp問題除錯
- 執行npm update等命令出錯後如何分析問題根源NPM
- go除錯的問題。Go除錯
- 關於 swoole 除錯問題除錯
- this問題 以及 webstorm 除錯介面WebORM除錯
- Windows 2000 高階問答 轉 (轉)Windows
- VS - 打斷點/本地除錯/遠端除錯 問題斷點除錯
- Cannot access a disposed object.問題根源所在.....Object
- [譯] Xcode 和 LLDB 高階除錯教程:第 3 部分XCodeLLDB高階除錯
- [譯] Xcode 和 LLDB 高階除錯教程:第 1 部分XCodeLLDB高階除錯
- 聊一聊 .NET高階除錯 核心模式堆洩露高階除錯模式
- Laravel+xdebug 除錯問題Laravel除錯
- shell 指令碼的除錯問題指令碼除錯
- Windows重置網路卡錯誤問題Windows
- 玩好.NET高階除錯,你也要會寫點彙編高階除錯
- 通過console.table()做高階JavaScript除錯JavaScript除錯
- 常見問題--windows平臺刪除ORACLEWindowsOracle
- 11+ chrome高階除錯技巧,學會效率直接提升666%Chrome高階除錯
- 聊一聊 .NET高階除錯 中必知的符號表高階除錯符號
- SQLServer2008 除錯問題SQLServer除錯
- 幽默:除錯程式碼問題的最佳方法除錯
- Linux MIPI 除錯中常見的問題Linux除錯
- android 除錯攝像機黑屏問題Android除錯
- linux下幾個問題的除錯Linux除錯
- 請教:除錯時出現的問題除錯
- JiveJdon 除錯執行了,但有兩個問題除錯
- Windows windbg kernel debug 雙機核心除錯 - USB3.0 除錯 USB除錯 除錯線Windows除錯
- oracle 10g asm windows 無法找到磁碟 的問題解決Oracle 10gASMWindows
- Windows 下如何除錯 PowerShellWindows除錯
- 【FFmpeg】Windows下FFmpeg除錯Windows除錯
- [譯] 虛構問題,低質量軟體的根源