当前位置:C++技术网 > 资讯 > 三步搞定程序错误,而不是:哦,我知道了,额,怎么还是不行。

三步搞定程序错误,而不是:哦,我知道了,额,怎么还是不行。

更新时间:2015-10-15 11:51:32浏览次数:1+次

    昨天同事接到客户的要求,需要修复一个功能,因为程序执行时总是出现调用异常的问题。然后一边调试,我就帮着操作设备,准备东西测试。
    同事很急躁,不停的自然自语。我看他很急,就安慰说,不要着急,慢慢来。他说,客户人在现场等,不能慢哦。因为客户那边是在给客户的客户演示软件出问题了,所以,在线等啊。
    他就在不停的调试,然后说,“啊,我就知道是这个问题!”然后运行,哦噢,调用异常!!然后他就去代码找呀找,有惊叹道,“啊,原来是路径问题,看我来解决一下!”。

    三步调试程序错误

    然后就在笔记本上敲来敲去,好像说是路径出错。似乎一阵子后,代码改好了,然后测试运行。
    很幸运,这次没事,然后再试了一次,不好了,还是同一个错误提示。
    我说叫他大断点跟踪,然后他打了一个断点,然后测试,进去了。然后继续运行,测试,同样的错误出来了。然后他似乎发现了什么,然后就去修改代码,整来整去,嘴里嘀咕着“原来是这个问题”,然后测试。我在旁边看着,都预计还会失败的。结果,真失败了。

    怎么还是错误的。
    就这么样一次次的找到“问题”,然后一次次的“修改好了代码”,然后一次次信心满怀的测试,然后一次次的“中奖”。
    我一次次跟他说,这个是调用异常,应该是传参错误。应该先单步调试跟踪,确定在哪个函数调用里爆掉的,然后在分析参数。不过似乎他太着急了,没有听我说的,然后就不停的调试。似乎有点像是碰运气的感觉。如果碰运气真的碰到了,你可以去买彩票了。
    调试不能是碰运气,一定要找出问题的根本。否则可能只要静下心分析,逐步跟踪,十分钟就可以搞定的事情,你碰运气碰了一天也没有解决,还以为是什么疑难杂症。
    调试代码时,一定要冷静,再急也要冷静,越不冷静越难挑出错误。
    我们首先要精确定位错误,然后分析错误发生的原因,然后再找解决错误的办法。
    这三步是经典的调试错误的步骤,如果你没有领会到,那就继续努力。不能张嘴就问,需要查资料,需要思考。