Effective Debugging:調試軟件和系統的66個有效方法 Effective Debugging: 66 Specific Ways to Debug Software and Systems
[希]迪歐米迪斯·斯賓奈裡斯(Diomidis Spinellis)
- 出版商: 人民郵電
- 出版日期: 2025-01-01
- 定價: $479
- 售價: 8.5 折 $407
- 語言: 簡體中文
- 頁數: 176
- ISBN: 7115651957
- ISBN-13: 9787115651952
- 此書翻譯自: Effective Debugging: 66 Specific Ways to Debug Software and Systems (Paperback)
-
相關翻譯:
Effective Debugging 中文版 | 軟體與系統除錯的 66 個具體作法 (Effective Debugging: 66 Specific Ways to Debug Software and Systems) (書況略舊,不介意在下單) (繁中版)
下單後立即進貨 (約4週~6週)
相關主題
商品描述
本書分為8章,共包含66個條目。本書首先講解了調試策略(第1章)、調試方法(第2章)以及調試時所用的工具與技術(第3章),旨在幫助讀者調試各類軟件故障和系統故障。緊接著介紹了可應用於調試工作各階段的技術,涵蓋使用調試器(第4章)、編寫程序(第5章)、編譯軟件(第6章)和運行系統(第7章)等階段。本書最後一章(第8章)專註於介紹一些特定的調試工具和調試技術,這些工具和技術用於定位多線程和並發代碼中那些棘手的bug。
作者簡介
迪欧米迪斯·斯宾奈里斯(Diomidis Spinellis)是希腊雅典经济与商业大学管理科学与技术系教授。他的研究涵盖软件工程、IT安全和云系统工程。他撰写了两本屡获殊荣的技术图书,《代码阅读方法与实践》(Code Reading: The Open Source Perspective)和《高质量程序设计艺术》(Code Quality: The Open Source Perspective)。他曾是IEEE Software杂志编辑委员会成员长达十年之久,并定期为“Tools of the Trade”专栏撰稿。他不仅为OS X和BSD UNIX贡献过代码,还是UMLGraph、CScout和其他一些开源的软件包、库和工具的开发者。他拥有英国帝国理工学院的软件工程硕士和计算机科学博士学位。他是ACM和IEEE的高级会员。在2015至2018年期间,他一直担任IEEE Software杂志主编。
目錄大綱
第 1 章 宏觀策略 1
條目 1:通過問題跟蹤系統處理所有問題 1
條目 2:使用有針對性的查詢在網上搜索與問題相關的見解 3
條目 3:確認前置條件和後置條件均已滿足 5
條目 4:從問題入手,自下而上追查 bug;從程序開始,自上而下追查 bug 6
條目 5:尋找正常系統和故障系統之間的差異 8
條目 6:使用軟件自帶的調試工具 10
條目 7:多樣化你的構建和執行環境 14
條目 8:將工作重點放在最重要的問題上 17
第 2 章 通用方法與實踐 20
條目 9:為調試的成功做好準備工作 20
條目 10:確保問題能夠高效重現 22
條目 11:盡可能縮短從做出修改到看到結果的時間 24
條目 12:將復雜的測試場景自動化 25
條目 13:盡量比較全面地將調試數據展示出來 27
條目 14:考慮更新軟件 29
條目 15:查閱第三方軟件的源代碼,深入瞭解其正確使用方式 30
條目 16:使用專門的監控和測試設備 32
條目 17:讓故障的影響凸顯出來 34
2 目錄
條目 18:支持在自己的桌面上調試復雜系統 36
條目 19:將調試任務自動化 38
條目 20:在調試前後做好清理工作 39
條目 21:修復所有犯同樣錯誤的代碼 40
第 3 章 通用工具與技術 42
條目 22:使用 UNIX 命令行工具分析調試數據 42
條目 23:命令行工具的各種選項和習慣用法 47
條目 24:用編輯器研究調試數據 49
條目 25:優化你的工作環境 51
條目 26:使用版本控制系統追蹤 bug 的原因和歷史 55
條目 27:使用監控工具處理包含多個獨立進程的系統 57
第 4 章 調試器使用技巧 61
條目 28:編譯代碼時啟用符號調試 61
條目 29:單步執行代碼 65
條目 30:使用代碼和數據斷點 66
條目 31:熟悉反向調試 68
條目 32:沿著例程之間的調用關系尋找問題 71
條目 33:通過檢查變量和表達式的值查找錯誤 72
條目 34:將調試器附加到正在運行的進程上 74
條目 35:處理核心轉儲文件 77
條目 36:配置優化自己的調試工具 79
條目 37:查看匯編代碼和原始內存 82
第 5 章 編程技巧 86
條目 38:審查並手動執行可疑代碼 86
條目 39:與同事一起審查代碼並推理問題 88
目錄 3
條目 40:添加調試功能 89
條目 41:添加日誌語句 92
條目 42:使用單元測試 96
條目 43:使用斷言 99
條目 44:通過擾動被調試程序來驗證自己的假設 101
條目 45:盡量縮小可以正常工作的示例和故障代碼之間的差異 102
條目 46:簡化可疑代碼 103
條目 47:考慮用另一種語言重寫可疑代碼 106
條目 48:改進可疑代碼的可讀性和結構 107
條目 49:從根源上解決問題,而不是解決表象 110
第 6 章 編譯時技術 112
條目 50:檢查生成的代碼 112
條目 51:使用靜態程序分析工具 115
條目 52:通過配置保證構建和執行的確定性 119
條目 53:對調試庫和所執行的檢查進行配置 121
第 7 章 運行時技術 126
條目 54:通過構建測試用例來找到錯誤 126
條目 55:快速失敗 130
條目 56:檢查應用程序的日誌文件 131
條目 57:剖析系統和進程的運行情況 134
條目 58:跟蹤代碼的執行 138
條目 59:使用動態程序分析工具 142
第 8 章 調試多線程代碼 145
條目 60:利用事後調試分析死鎖 145
條目 61:捕獲和重現 151
4 目錄
條目 62:借助專用工具來發現死鎖和競爭條件 156
條目 63:隔離並消除非確定性 161
條目 64:通過觀察資源競爭情況來研究可伸縮性問題 163
條目 65:使用性能計數器定位偽共享 166
條目 66:考慮使用更高級別的抽象重寫代碼 169