![](https://csdnimg.cn/release/download_crawler_static/833016/bg1.jpg)
下载
第3章 跟踪和调试
没有几个程序能够不经过调试就可以实现其设计功能。这是因为除了程序本身不可能一次
就可以完全书写正确外,而且在开发过程中,对程序的要求也可能发生变化,需要对程序进行
重新编制。综上所述,程序需要经过彻底的测试才可以正常工作并实现预期的要求。我们将在
本章讨论几种调试和测试P L / S Q L 程序的技术,其中即包括图形和非图形的 P L / S Q L 调试技术。除
此之外,我们还要讨论O r a c e l 8 i提供的跟踪和配置工具。
3.1 问题分析
每个程序错误都有其特殊之处,这就使得程序的调试和测试技术面临挑战。虽然,我们在
开发过程中可以借助于测试和质量分析( Q A )来减少程序错误的数量,但是,如果你具有使用
开发工具的经验,毫无疑问,你将会在自己或其它人编制的程序中发现新的错误和问题。
3.1.1 调试指导原则
尽管每个程序错误都是不同的,并且对于每个给定错误的修改方法也有多种形式,但发现
和修改错误的过程是可以确切定义的。经过前几年作者在调试自己和其他程序员编制的程序中
所获得的经验,我总结了几条指导确定程序错误的原则。这些调试指导原则适用于所有的程序
设计语言,而不仅仅适用于 P L / S Q L
1. 发现错误发生的位置
发现错误发生的位置是修改代码问题的关键一步。如果一个大型的复杂程序一开始就不能
运行,诊断问题的第一步就是确认该程序出现错误的准确位置。实现错误定位的复杂程度取决
于程序代码的复杂性。发现错误发生点的最简单方法是在程序运行时进行动态跟踪,查看数据
结构的值以确定发生错误的原因。
2. 判定错误原因
一旦知道了程序中错误发生的位置,我们就需要进一步来判定发生错误的原因,是否是返
回的O r a c l e错误?或是程序中计算部分返回了错误结果?还是把错误数据插入到数据库引发的错
误?总之,为了修改错误,必须要搞清错误发生的原因。
3. 简化程序以便调试
当我们不能确认错误发生的位置时,一种有效的方法是把程序简化为简单的可测试的程序
段。其方法是先删去程序的一部分代码,然后再返回到程序运行。如果错误还存在的话,就说
明临时删除的程序部分不会导致错误。如果错误没有出现就要检查所删除的程序段中出现的错
误。
请记住程序中某段代码的错误可能会显现在程序中的另一部分。例如,某个过程可能会返
回一个不正确的值,但是该返回值可能在当前的程序中没有使用,而在其后的主程序段才会影