编程调试全攻略:从基础到实战
在编程的世界里,遇到问题并解决问题是家常便饭。当我们遇到程序故障时,首先要做的就是能够可靠地重现问题。很多时候,能重现问题就意味着成功了一半。在成功重现问题后,我们就可以着手查找并修复其中的漏洞。
在开始调试之前,有一个重要的步骤不能忽视,那就是将程序之前“正常运行”的版本保存到安全的地方。如果你使用的是像 SCCS 或 RCS 这样的源代码控制系统,那么应该将最后一个正常运行的版本进行提交。在查找问题的过程中,我们常常需要尝试不同的解决方案,或者添加临时的调试代码。有时候,我们会发现之前的方向错了,需要重新开始,这时最后一个正常运行的版本就显得无比珍贵。
调试方法
- 分治法
分治法在之前已经有过简要的讨论。这种方法是在你确定数据正常的地方、数据异常的地方,以及这两者之间的若干位置插入printf语句。通过这种方式,我们可以逐渐缩小包含错误的代码范围。随着更多printf语句的添加,错误的范围会进一步缩小,直到最终定位到漏洞。 - 仅用于调试的代码
分治法使用的是临时的printf语句,这些语句在需要时添加,使用后移除。预处理器的条件编译指令可以用来添加和移除调试代码。例如:
#ifdef DEBUG
printf("Width %f Height %f\n", width, height);
#endif /* DEBUG
超级会员免费看
订阅专栏 解锁全文
901

被折叠的 条评论
为什么被折叠?



