如何Debug

如何Debug

调试理论

开始调试之前

摆正心态(编程哲♂学)

机器永远是对的

不管是crash了,Wrong Answer 了,还是虚拟机神秘重启,都是自己背锅

未测代码永远是错的

你以为最不可能出bug的地方,往往bug就在那躺着

“软件”的两层含义

  • 人类需求在信息世界得的投影

  • 理解错需求->bug

  • 计算过程的精确(数学)描述

  • 实现错误->bug

调试(debugging)

  • 已知程序有bug,如何找到?

调试困难的根本原因

因为bug的触发经历了漫长的过程

  • 需求->设计- >代码(状态机)->Fault(bug)->Error(程序状态错)->Failure

  • 我们只能观测到failure(可观测的结果错)

  • 我们可以检查状态的正确性(但非常费时)

  • 无法预知bug在哪里(每一行"看起来"都挺对)

image-20231204173643985

看懂报错信息

 

'print'解决简单的bug

 

利用ChatGPT进行提问

posted @ 2023-12-07 21:31  Rahull  阅读(15)  评论(0编辑  收藏  举报