gem-universe / blog

0 stars 0 forks source link

[操作系统]8. 调试理论与实践 #8

Open supergem3000 opened 7 months ago

supergem3000 commented 7 months ago

8. 调试理论与实践 (jyywiki.cn) 机器永远是对的,未测代码永远是错的。

调试理论

需求->设计->代码->Fault(bug)->Error(程序状态错)->Failure Fault:程序bug;Error:运行中产生的错误状态;Failure:观测到的错误,如timeout、crash等。 调试困难的原因,我们只能看到Failure,却很难找到bug在哪里。

调试理论:如果我们能判定任意程序状态的正确性,那么给定一个 failure,我们可以通过二分查找定位到第一个 error 的状态,此时的代码就是 fault (bug)。 为什么调试理论看起来很没用?因为判定程序状态的正确性非常困难。

实际中的调试:观察状态机执行(trace)的某个侧面。

本章节理论内容不多,我总结的很少。主要还是靠开发经验。