项目中经常会遇到十分棘手的问题,直至分析和跟踪代码很久都没有头绪,不知道问题根本出现在那个地方!在维护历史悠久的项目代码时就会出现!
针对具体的问题,一般要重复重现问题的现象,确定问题的大概(如何操作引起的)!解决问题时,可以分以下几步:
第一步:从整体上充分思考问题的本质,确定产生问题的大体原因或者代码!
第二步:分析日志(如果有)!
第三步:过程跟踪:如果不能从宏观上确定原因,只能跟踪响应的代码,并在关键代码段重点分析!
如果跟踪过程中发现问题是由于调用第三方库功能引起的,请单独使用测试程序测试第三方的相应功能,以确保原因不是自身造成的!
第四步: 化繁为简:问题出现在很复杂的程序中,可以注释掉不相关的功能,使分析的过程更加简洁,在C++相关的程序中,别忘关注
销毁、析构以及带有delete的函数,也别忘关注窗口指针、对象指针等代码(我遇到过这种情况)!
希望以上思路有助于项目问题的解决!