硬件缺陷和软件错误是“技术侦探”的劲敌,它们负隅顽抗,见缝插针。本书提出的九条简单实用的规则,适用于任何软件应用程序和硬件系统,可以帮助软硬件调试工程师检测任何bug,不管它们有多么狡猾和隐秘。
作者使用真实示例展示了如何应用简单有效的通用策略来排查各种各样的问题,例如芯片过热、由蛋酒引起的电路短路、触摸屏失真,等等。本书给出了真正能够隔离关键因素、运行测试序列和查找失败原因的技术。
无论你的系统或程序发生了设计错误、构建错误还是使用错误,本书都可以帮助你用正确的方法来思考,使bug自动暴露,进而一网打尽,斩草除根。
第1章 简介 1
1.1 本书如何教会你调试 1
1.2 这些规则都很显而易见 2
1.3 本书适用于任何人 3
1.4 本书可用于调试各种问题 3
1.5 本书的主旨不在预防、保证或筛选 4
1.6 调试不仅仅是故障检修 5
1.7 有关案例故事 6
1.8 精彩内容,即将上演 6
第2章 总体规则 8
第3章 理解系统 10
3.1 阅读手册 12
3.2 逐字逐句阅读整个手册 13
3.3 知道什么是正常的 15
3.4 知道工作流程 16
3.5 了解你的工具 17
3.6 查阅手册 18
3.7 小结 20
第4章 制造失败 21
4.1 制造失败 24
4.2 从头开始 24
4.3 引发失败 25
4.4 不要模拟失败 25
4.5 如何处理间歇性bug 27
4.6 如果做了所有尝试之后问题仍然间歇性发生 29
4.6.1 仔细观察失败 29
4.6.2 不要盲目相信统计数据 30
4.6.3 是已修复bug,还是仅仅由于运气好,它不再发生了 31
4.7 “那不可能发生” 33
4.8 永远不要丢掉调试工具 34
4.9 小结 36
第5章 不要想,而要看 37
5.1 观察失败 41
5.2 查看细节 43
5.3 问题忽隐忽现 46
5.4 对系统进行插装 46
5.4.1 设计插装工具 46
5.4.2 过后构建插装 48
5.4.3 不要害怕深入研究 50
5.4.4 添加外部插装 51
5.4.5 日常生活中的插装 51
5.5 海森堡测不准原理 52
5.6 猜测只是为了确定搜索的重点目标 53
5.7 小结 54
第6章 分而治之 55
6.1 缩小搜索范围 59
6.1.1 确定范围 60
6.1.2 你在哪一侧 61
6.2 插入易于识别的模式 62
6.3 从有问题的支路开始查找问题 63
6.4 修复已知bug 64
6.5 首先消除噪声干扰 65
6.6 小结 66
第7章 一次只改一个地方 67
7.1 使用步枪,而不要用散弹枪 69
7.2 用双手抓住黄铜杆 71
7.3 一次只改变一个测试 72
7.4 与正常系统进行比较 73
7.5 自从上一次能够正常工作以来你更改了什么 74
7.6 小结 77
第8章 保持审计跟踪 78
8.1 记下你的每步操作、顺序和结果 80
8.2 魔鬼隐藏在细节中 81
8.3 关联 83
8.4 用于设计的审计跟踪在测试中也非常有用 84
8.5 好记性不如烂笔头 84
8.6 小结 85
第9章 检查插头 86
9.1 怀疑自己的假设 88
9.2 从头开始检查 89
9.3 对工具进行测试 90
9.4 小结 92
第10章 获得全新观点 93
10.1 寻求帮助 94
10.1.1 获得全新观点 94
10.1.2 询问专家 94
10.1.3 借鉴别人的经验 95
10.2 到哪里寻求帮助 96
10.3 放下面子 97
10.4 报告症状,而不是理论 98
10.5 小结 99
第11章 如果你不修复bug,
它将依然存在 101
11.1 检查问题确实已被修复 103
11.2 检查确实是修复措施解决了问题 103
11.3 bug从来不会自己消失 104
11.4 从根本上解决问题 105
11.5 对过程进行修复 107
11.6 小结 107
第12章 通过一个案例讲述所有规则 109
第13章 牛刀小试 113
13.1 灯和吸尘器的故事 113
13.2 大量出现的bug 115
13.3 宽松的限制 119
13.4 识破bug 123
第14章 从帮助台得到的观点 128
14.1 帮助台的限制 130
14.2 规则,帮助台风格 130
14.2.1 理解系统 131
14.2.2 制造失败 132
14.2.3 不要想,而要看 132
14.2.4 分而治之 134
14.2.5 一次只改一个地方 134
14.2.6 保持审计跟踪 135
14.2.7 检查插头 136
14.2.8 获得全新观点 136
14.2.9 如果你不修复bug,它将依然存在 137
14.3 小结 137
第15章 结束语 139
15.1 调试规则网站 139
15.2 如果你是一名工程师 139
15.3 如果你是一名经理 140
15.4 如果你是一名教师 141
15.5 小结 141
《浮生六记》内容简介:本书既是沈复作为一介书生对人生的快意告慰,也是他作为一位深情夫君写给爱妻的绵长悼文,有闺房记乐,有闲
◆腾讯P4专家产品经理倾力推荐!◆揭开腾讯内部亿级产品的“产品内功”。◆解密腾讯如何成为“产品经理的黄埔军校”。◆向腾讯学
《人生真不如陶渊明那一杯酒》内容简介:陶渊明用他一生的行动,告诉我们如何找到通向宁静生活的道路;告诉我们热爱什么都不如热爱
《数据化网站运营深度剖析》内容简介:近些年,互联网促进经济迅速发展,越来越多的企业把互联网当作产品营销的重要渠道。网络营销
C.NET程序设计 本书特色 《C#.NET程序设计》:教材特色这是一本为高职高专学生量身定做的计算机类专业的项目课程教材。 任务引领本教材以任务为载体,将知识...
CalltoActionincludestheinformationbusinessesneedtoknowtoachievedramaticresultsfr...
《死亡之旅(原书第2版)》对各种“死亡之旅”项目进行了全面而系统的剖析,涵盖整个项目的生命周期,深刻分析了这种现象的本质,
《云计算:大数据时代的系统工程》主要讲述了,在互联网带来的“大”问题压力下,我们需要全新的思想,通过“积木化”的改变,来重
《Wireshark数据包分析实战(第2版)》从网络嗅探与数据包分析的基础知识开始,渐进地介绍Wireshark的基本使用方法及其数据包分析功
《openGauss数据库核心技术》内容简介:本书系统论述了openGauss数据库理论、技术及应用。本书共11章,首先介绍数据库发展历史,包
本书介绍了正交频分复用(OFOM)技术的原理及其在无线通信领域内的应用。全书共分10章。第1章简要介绍了移动通信的发展现状、无线
Thetwomainthemesofthisbook,logicandcomplexity,arebothessentialforunderstandingth...
《基础会计实训教程》内容简介:“基础会计实训”是会计及相关专业的专业基础实训课程,在会计系列课程中占有重要地位。本书依据最
内容简介本书全面介绍了统计自然语言处理的基本概念、理论方法和最新研究进展,内容包括形式语言与自动机及其在自然语言处理中的
Django Web应用开发实战 本书特色 本书由一线资深软件工程师结合多年Python开发经验倾力编撰,集Django架站、案例实践、前瞻技术于一体,是一本精...
《中国工程船研发史》内容简介:本书是中国船舶研发史丛书之一。工程船是专门用于各种水上、水下工程建设的船舶。本书从工程船定义
《自然语言处理简明教程》,本书系统地阐述了自然语言处理的基本方法,描述了每一种方法的技术原理及操作过程。本书可供计算机科
本书详细阐明了碳纤维的生成机理、生产工艺及生产设备,对碳纤维的结构与性能进行了深层次的论述,并对碳纤维复合材料的性能、制
ThisbookprovidesacompletereferencefortheC++programminglanguage.ItconsistsoftheC+...
《世界级城市群视阈下的天津发展》内容简介:近年来,世界级城市群在区域经济中的功能不断扩展、地位迅速提升,对国家经济增长和世