Effective Debugging

Effective Debugging

《Effective Debugging》 這本書的作者是迪歐米迪斯·斯賓奈里斯,講述了軟體和系統調試的66個有效方法。

基本介紹

  • 中文名:Effective Debugging
  • 作者:迪歐米迪斯·斯賓奈里斯
  • 原作品:Effective Debugging: 66 Specific Ways to Debug Software and Systems
  • 譯者:愛飛翔
  • 出版社:機械工業出版社
  • 出版時間:2017年6月
  • 頁數:205 頁
  • 定價:59 元
  • ISBN:9787111568896
內容簡介,圖書目錄,

內容簡介

本書共分8章。
首先講解調試策略(第1章)、調試方法(第2章)以及調試時所用的工具與技巧(第3章),這些知識使我們能夠應對各種軟體故障及系統故障。
接下來討論在調試工作的各個階段所用到的具體技巧,也就是在使用調試器(第4章)、編寫程式(第5章)、編譯軟體(第6章)以及運行系統(第7章)時所用到的調試技巧。
與多執行緒和並發有關的bug是很難尋找的,所以本書後專門用一章(第8章)來講解特定的調試工具及調試技術,使大家能夠找出這些bug。

圖書目錄

譯者序
前言
致謝
第1章 巨觀策略 1
第1條:通過事務追蹤系統處理所有的問題 1
第2條:在網上確切地查詢你所遇到的問題,以尋求解決問題的靈感 4
第3條:確保前置條件與後置條件都能夠得到滿足 6
第4條:從具體問題入手向上追查bug,或從高層程式入手向下追查bug 7
第5條:在能夠正常運作的系統與發生故障的系統之間尋找差別 9
第6條:使用軟體自身的調試機制 13
第7條:試著用多種工具構建軟體,並將其放在不同的環境下執行 16
第8條:把工作焦點放在最為重要的問題上 20
第2章 通用的方法與做法 23
第9條:相信自己能夠把問題調試好 23
第10條:高效地重現程式中的問題 26
第11條:修改完代碼之後,要能夠儘快看到結果 29
第12條:將複雜的測試場景自動化 30
第13條:使自己儘可能多地觀察到與調試有關的數據 32
第14條:考慮對軟體進行更新 34
第15條:查看第三方組件的原始碼,以了解其用法 35
第16條:使用專門的監測及測試設備 37
第17條:使故障更加突出 40
第18條:從自己的桌面計算機上調試那些不太好用的系統 42
第19條:使調試任務自動化 44
第20條:開始調試之前與調試完畢之後都要把程式清理乾淨 46
第21條:把屬於同一個類型的所有問題全都修復好 47
第3章 通用的工具與技術 49
第22條:用Unix命令行工具對調試數據進行分析 49
第23條:掌握命令行工具的各種選項及習慣用法 55
第24條:用編輯器對調試程式時所需的數據進行瀏覽 57
第25條:最佳化工作環境 59
第26條:用版本控制系統尋找bug發生的原因及經過 64
第27條:用工具監測由多個獨立程式所構成的系統 67
第4章 調試器的使用技巧 71
第28條:編譯代碼時把符號信息包含進來,以便於調試 72
第29條:對代碼進行單步調試 76
第30條:設定代碼斷點和數據斷點 77
第31條:了解反向調試功能 80
第32條:查看例程之間的相互調用情況 83
第33條:查看變數及表達式的值,以尋找程式中的錯誤 84
第34條:了解怎樣把調試器連線到正在運行的進程上 87
第35條:了解怎樣運用核心轉儲信息來進行調試 89
第36條:把調試工具設定好 92
第37條:學會查看彙編代碼及原始記憶體 95
第5章 編程技術 100
第38條:對可疑的代碼進行評審,並手工演練這些代碼 100
第39條:審讀代碼並與同事討論 102
第40條:給軟體添加調試機制 103
第41條:添加日誌語句 107
第42條:對軟體進行單元測試 111
第43條:用斷言進行調試 114
第44條:改動受測程式,以驗證自己的推想 118
第45條:儘量縮小正確範例與錯誤代碼之間的差距 119
第46條:簡化可疑代碼 120
第47條:將可疑代碼改用另外一種程式語言來寫 123
第48條:改善可疑代碼的可讀性與結構 124
第49條:要清除bug的根源,而不僅僅消除其症狀 128
第6章 編譯時的調試技術 130
第50條:對生成的代碼進行檢視 130
第51條:使用靜態程式分析工具 133
第52條:對項目進行配置,令程式能夠以固定的方式構建和執行 138
第53條:對調試所用程式庫及構建代碼時所應執行的檢查進行配置 141
第7章 運行時的調試技術 147
第54條:通過構建測試用例來尋找錯誤 147
第55條:令軟體在遇到問題時儘早退出 151
第56條:檢視應用程式的日誌檔案 152
第57條:對系統和進程所執行的操作進行性能評測 156
第58條:追蹤程式的執行情況 160
第59條:使用動態程式分析工具 166
第8章 調試多執行緒的代碼 169
第60條:通過事後調試來分析死鎖問題 169
第61條:捕獲並重現 176
第62條:用專門的工具來探查死鎖與競爭條件問題 180
第63條:把不確定的因素隔離出來,或將其移除 186
第64條:檢查資源爭用情況,以解決與可伸縮性有關的問題 188
第65條:用性能計數器尋找偽共享問題 191
第66條:考慮用更為高級的抽象機制來重寫代碼 195
網上資源 203

相關詞條

熱門詞條

聯絡我們