debug思路
我走过的坑
不要直接上手就去修, 越修越错。
这是一般的思路
-
明确问题所在,先去翻阅错误日志去锁定问题,关注程序报出的错误信息,包括错误类型、位置和描述。
-
检查相关错误,其实70%错误都是小错误,主要是语法错误,比如拼写错误、缩进问题、括号不匹配。
-
库库库,尤其我要点名一下python,版本控制混乱,不同版本兼容不同的库,安装的时候非常麻烦,导致你运行时候出错。
-
定位问题代码,很重要的一步,这里有三种我总结的方法,一会再说
-
观察程序状态,其实就上让他输出关键值,看是否正常
-
检查代码逻辑,这步放到后面,因为我认为在我编程的时候这种现象发生的其实是最少的
-
针对性修改并进行回归测试,确定没有引入新的问题
定位方法
先注释:把你怀疑有问题的代码注释掉,添加固定信息,看看是否正常输出
模块拆除测试: 这是我最经常用的方法,就是提取问题代码,构造最小复现代码片段,看看逻辑还是库的问题,这个方法能解决90%的问题
绝招:分解:没办法了真的搞不定了,那就把代码按关联部分分解成组,一组一组查
要学习的技能
善用断点去调试,一般是在在循环或函数调用前或者后设置断点,观察变量变化
- Step Over (F10):逐行执行,不进入函数内部。
- Step Into (F11):进入当前行的函数内部。
- Step Out (Shift+F11):跳出当前函数,回到调用处。
- Continue (F5):继续运行直到下一个断点或结束。
口诀:
设断点,分步走,查变量,跟逻辑;
条件断点抓异常,监视窗口盯数据;
进函数,看细节,出函数,观全局;
循环边界重点测,异步回调莫漏记。
总结
这基本上就包含debug的所有思路,实在不行就chatgpt,或者去社区找答案。