技术教育社区
www.teccses.org

Effective Debugging 调试软件和系统的66个有效方法

封面

作者:(希)迪欧米迪斯·斯宾奈里斯(Diomidis Spinellis) 著 臧秀涛 译

页数:196

出版社:人民邮电出版社

出版日期:2025

ISBN:9787115651952

电子书格式:pdf/epub/txt

网盘下载地址:下载Effective Debugging 调试软件和系统的66个有效方法

内容简介

本书分为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.Effective系列产品,专业调试指南,面向高级开发者的效率工具书

2.分阶段解析调试策略与工具,全面覆盖调试全流程

3.66个实战技巧,直击复杂故障本质

4.技术含金量高,被众多开发者与企业广泛认可

5.帮助读者快速掌握调试技能,减少bug引发的时间与经济损失

目录

第 1 章 宏观策略 1条目 1:通过问题跟踪系统处理所有问题 1条目 2:使用有针对性的查询在网上搜索与问题相关的见解 3条目 3:确认前置条件和后置条件均已满足 5条目 4:从问题入手,自下而上追查 bug;从程序开始,自上而下追查 bug 6条目 5:寻找正常系统和故障系统之间的差异 8条目 6:使用软件自带的调试工具 10第 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:让故障的影响凸显出来 342 目录条目 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:捕获和重现 1514 目录条目 62:借助专用工具来发现死锁和竞争条件 156条目 63:隔离并消除非确定性 161条目 64:通过观察资源竞争情况来研究可伸缩性问题 163条目 65:使用性能计数器定位伪共享 166条目 66:考虑使用更高级别的抽象重写代码 169

赞助用户下载地址

立即下载

(解压密码:www.teccses.org)

Article Title:《Effective Debugging 调试软件和系统的66个有效方法》
Article link:https://www.teccses.org/33220.html