其实一直苦于不会调试,自己是半路出家,基本没有调试经验,只得总结别人的调试真传了。纵观各路方法,其实主要还是要多思考,找问题原因进行定位,然后再利用调试方法进行调试,最终找到问题关键所在,解决掉问题。但最重要的还是自己的分析能力和对信息的敏感度,这需要长期的锻炼,没有特别的捷径。对调试经验进行以下总结:
第一步:重现问题。这一步非常重要,如果可以,尽可能能够通过一定的步骤可以稳定的把问题重现出来。即使问题很难重现,能够找到偶尔重现的规律和概率对于解决问题也是很有帮助的。
第二步:缩小范围。这里会有一些技巧和经验,比如使用二分法去缩小出问题代码的数目。一般的问题都是修改引起的,把有问题的代码限定为最近的修改,一下子就把范围缩小了很多。单元测试的一个好处就是可以把每次可能出问题的范围做了一个控制,这样解决起来就容易很多。
第三步: 寻找原因。对于一般的问题,经过第一步第二部,第三步也就是看一下变量,就可以得出类似 “多写了一个分号“这样的原因。但是对于复杂的问题(比如你好死不死踩到了编译器的雷),这个时候,可能需要先大胆作出一些假设,然后放狗搜索,必要的时候做实验验证,才能得到令人信服的原因。
综上,我们首先要弄清楚问题是什么(第一步),控制好问题的边界(第二步),然后才是找到问题的原因(第三步)。
某博主说:
先理解step in、step out、step over、运行到光标处,会下断点删除断点,最好还能学学如何条件断点、然后学会用二分法调试,
当然最后还有一招就是 print变量 的办法!
某博主说:
我的程序在我做调试的时候都会出现大量的 输出参数代码 和 输出标记代码
输出参数代码不用多说
输出位置代码一般都是前一个后一个,然后一点点的缩小问题范围……
以下是某博主分享的详细步骤:
如何调试程序及调试程序基本步骤、方法详解
1.为什么要进行程序调试及调试程序的目的?
程序调试是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。
这是保证计算机信息系统正确性的必不可少的步骤。
测试时程序运行错误,无法根据提示的错误信息准确定位错误原因及错误位置。
根据测试时所发现的错误信息和利用调试工具追踪的提示信息,两者相互结合综合判断错误发生原因和位置。
找出错误原因和具体的错误位置,最终方便进行修正。
测试本身也就属于程序调试的过程中的一部分。