基础概念集合¶
最后来点概念了。一堆英语名词解释,让我们尽情地晕吧。无所谓。
- 失败(failure)——用户在程序外看到的错误。
- 错误(error)——偏离了正确,不再正确的都是错误。晕。
- 缺陷(defect)——代码中的error,将有效的状态变成错误的状态,进而可能引起程序的失败(failure)。
- Fault——也就是缺陷(defect),不过它还用于描述数据data的问题。
- Bug——缺陷的最著名的说法,等价。指bug本不属于代码的一部分,自己爬进来的。但Zeller认为bug就是程序员写出来的,所以他更偏好defect这个词。
- Infection(不清楚有没有对应的术语)——程序状态中的错误,由带缺陷的语句引入。
上面几个名词间还有一些比较绕的关系,什么不是每个什么都是什么什么的。
再提一个后续单元经常用到的概念。
- Cause effect chain,我只能想到翻译成因果链。因果链其实就是 defect (代码中的缺陷) -- infection (运行时的缺陷) -- progate(扩散) -- failure (失败)。
调试的目的就是
发现因果链,并打破它(从源头解决)。
其他概念¶
- 科学方法
- 清晰调试
- 冥界、仙界调试指南