单可执行文件。单击Object Navigator Tool Palette上的Run Form-Debug工具,或使用P r o g r a m |
Run Form|Debug菜单项在 Debug mode(调试方式 )运行。每当生成应用程序时, O r a c l e
D e v e l o p e r / F o r m s嵌入源代码符号到应用程序中。
要在运行应用程序时运行调试程序,或者在生成器中用 Run Form Debug工具或菜单项运
行,或者在调试信息编译之后,用特定的调试可执行文件 I F D B G 6 0带Forms Runtime命令行参
数DEBUG = YES运行:
运行系统在加载表单之前显示调试程序窗口,以便设置任何调试行为 (见图1 3 - 3 ) 。
图13-3 Forms Debugger窗口
在这里,可以在任何触发器或应用的程序单元中设置断点,并且可以建立调试触发器 (由
调试程序事件激活的触发器 )。
在顶部窗格中,调试程序显示当前执行块的 P L / S Q L 源程序,这是源程序窗格。由于当前
调试程序还没有执行一个块,所以是空的。可以在这个窗格中设置只有在调试中才存在的断
点。中间窗格是Object Navigator窗格,除了少数对象,这个窗格与 Object Navigator很像。这
个Object Navigator有一组在运行调试时使用的对象,但它们不是在生成器的 Object Navigator
中的那些。使用这个窗格来查看调试行为和变量 (全局、系统、局部)和调用堆栈中的参数。最
下层的窗格是I n t e r p r e t e r ( 注释器)窗格,输入执行的命令在这里显示。注释器窗格用于输入命
令并执行命令。
注意 如果在Forms Runtime中运行到一个好象要出错但又看不出错误和异常的地方,
可以检查表单中的O n - E r r o r触发器。如果触发器用WHEN OTHERS子句捕捉了所有异
常,而不是只处理特定异常并把其他的异常传递的话,那么触发器就吸收了所有的错
误,而不给出任何反馈。通过注释WHEN OTHERS子句来消除这样的子句。通过插入
适当的异常处理来修正问题(异常处理参见第13章)。
2. Reports调试程序
与F o r m s 不同,R e p o r t s 的调试程序把其调试行为存储在报表本身中。在 Report Builder的
Object Navigator中,可以看到两个标题: Debug Actions和S t a c k。生成器存放断点和触发器行
为,后者描述运行时调用的堆栈。
2 8 6 第三部分 利用D e v e l o p e r 编制程序