摆正心态 (编程哲 ♂ 学)
不管是 crash 了,Wrong Answer 了,还是虚拟机神秘重启,都是自己背锅
你以为最不可能出 bug 的地方,往往 bug 就在那躺着
“软件” 的两层含义
调试 (debugging)
因为 bug 的触发经历了漫长的过程
调试理论:如果我们能判定任意程序状态的正确性,那么给定一个 failure,我们可以通过二分查找定位到第一个 error 的状态,此时的代码就是 fault (bug)。
调试理论:推论
实际中的调试:观察状态机执行 (trace) 的某个侧面
最重要的两个工具