< >
每個軟體開發者與IT專家都知道高效除錯的重要性。除錯通常佔據開發者大部分的時間,而掌握技巧需要一輩子的投入。作者Diomidis Spinellis在這本書中提供了系統化分類、解析說明、最有效的除錯方法、策略、技巧以及工具,協助有經驗的程式設計師加速掌握技能。作者以超過三十五年以上的經驗幫助讀者擴展除錯技術,於各種情境選擇最佳方式。書中展示了大量通用原則、高階策略、扎實技巧、高效工具、創意絕招與行為軌跡的高效除錯範例。Spinellis的66個具體作法討論除錯的各種面向,並以一步步的指示與實際程式碼進行說明。他討論了現代軟體系統中發生的各種問題,特別是元件間的複雜互動與分散於全球主機環境中執行的服務。無論你正在處理個別的執行期錯誤或整個企業系統的災難,這本書都能幫助你快速無痛的完成任務。關鍵內容包括:‧處理各種問題的高階策略與方法‧適用於程式設計、編譯與執行程式的特定技巧‧更好的運用除錯工具‧值得學習的通用技巧與工具‧解決複雜謎團的進階點子與技巧‧讓程式易於除錯的建議‧多執行緒、非同步與嵌入程式除錯的特殊方式‧改善軟體設計、建構與管理以避免錯誤
Diomidis Spinellis 是AUEB的資管教授,專精於複雜系統的開發與除錯。他曾經任職於Google,擔任網站可靠性工程的資深軟體工程師;還在FreeBSD委員會服務過,對OS X與BSD Unix貢獻過程式;開發各種開源軟體,包括UMLGraph與CScout等。他的Code Reading與Code Quality兩本書均榮獲Software Development Productivity Award肯定。同時是Association for Computing Machinery與IEEE的資深成員。
chapter 01 高階策略 作法 01 透過問題記錄系統處理所有問題 作法 02 以精確的關鍵字上網查詢問題的線索 作法 03 確認滿足前後條件 作法 04 從問題向上到錯誤或從程式的開始向下到錯誤 作法 05 找出新舊系統間的差異 作法 06 使用軟體的除錯設施 作法 07 建構與執行環境的多元化 作法 08 專注於最重要的問題chapter 02 通用方法與實踐 作法 09 讓自己準備好 作法 10 有效的重複產生問題 作法 11 減少來回修改的時間 作法 12 複雜測試場合的自動化 作法 13 展示你的除錯資料 作法 14 更新你的軟體 作法 15 參考第三方原始碼 作法 16 使用專用監控與程式設備 作法 17 放大失敗的效應 作法 18 從你的桌面對遠端系統除錯 作法 19 除錯任務自動化 作法 20 除錯前後的清理工作 作法 21 修理有問題類別的所有實例chapter 03 通用工具與技巧 作法 22 以 Unix 命令列工具分析除錯資料 作法 23 使用命令列工具選項 作法 24 以編輯器探索除錯資料 作法 25 工作環境最佳化 作法 26 以版本控制系統追獵錯誤的成因與歷史 作法 27 使用系統的獨立行程監控工具chapter 04 除錯技巧 作法 28 使用符號除錯編譯的程式 作法 29 逐步執行程式 作法 30 使用程式與資料中斷點 作法 31 熟悉反向除錯 作法 32 沿著程序間的呼叫 作法 33 檢視變數與表達式的值以找尋錯誤 作法 34 知道如何將除錯工具附在行程上 作法 35 認識如何使用核心傾印 作法 36 調校你的除錯工具 作法 37 認識如何檢視組合語言程式碼與原始記憶體chapter 05 程式設計技巧 作法 38 審核與手動執行可疑程式碼 作法 39 與同僚一起檢視你的程式碼 作法 40 加入除錯功能 作法 41 加入日誌記錄陳述 作法 42 使用單元測試 作法 43 使用斷言 作法 44 擾動程式以檢驗你的推論 作法 45 將可行與失敗程式間的差異最小化 作法 46 簡化可疑程式 作法 47 以其他語言重寫可疑的程式 作法 48 改善可疑程式碼的易讀性與結構 作法 49 治本而非治標chapter 06 編譯期技巧 作法 50 檢視產生的程式碼 作法 51 使用靜態程式分析 作法 52 設定決定性建構與執行 作法 53 設定使用除錯函式庫chapter 07 執行期技巧 作法 54 建構測試案例以找出問題 作法 55 盡快失敗 作法 56 檢視應用程式日誌檔案 作法 57 系統與行程操作的側寫 作法 58 追蹤程式執行 作法 59 使用動態程式分析工具chapter 08 多執行緒程式除錯 作法 60 以剖析除錯分析死結 作法 61 擷取與複製 作法 62 以專用工具找出死結與競爭狀況 作法 63 隔離與移除不確定性 作法 64 檢視競爭以調查可擴展性問題 作法 65 以效能監視器找出假共用 作法 66 以高階抽象重寫程式網路資源索引
Effective JavaScript 中文版 Effective Ruby中文版 | 寫出良好Ruby程式的48個具體做法 Effective Python 中文版 | 寫出良好 Python 程式的 59 個具體做法
購買紙本書