各种调试 - 怀疑你不敢怀疑的地方 ¶
作者:KK
发表日期:2020.06.13
有没有这么一种同感:这些年来有好些程序错误,排查到最后其实就是一个比较很浅显的地方犯了错。
我这么一说你肯定有同感:怀疑你不敢怀疑的地方。
对不?根本就没运行到入口处嘛,那个变量在第一二层调用时根本就不是你传进去的那个值嘛,那个循环里的if根本就没有成立过嘛,那个配置压根就没有生效嘛,你昨天不小心改的一个临时代码或配置,导致了你现在的函数压根就没能被调起来嘛。
往往是花了很多时间调试,知道结果后缺让你捶胸顿足!为什么?因为你觉得这个真相就那么浅显,然而你却调了好久!
我2013年就明白了这个道理,所以这么多年来,每当一个问题的调试时间稍微长了,或者几次不思其解的时候,我就会直接在函数调用点打日志,看看函数是不是没被调起来。或者看看函数入口的那个变量值到底是什么,然后很快就能找到问题。
其实断点调试检测运行堆栈,或者监测变量值也是一样的思路,在你会怀疑的地方打断点看看,把你不敢相信的变量监控一下值的变化看看。