使用断点
本节包含如下内容:
断点用于暂停其所在行中的PL/SQL程序的执行,可用断点控制执行并调试过程。
- 设置并启用断点后,PL/SQL程序会在该断点所在的行停止执行,此时用户可以进行其他调试操作。Data Studio支持以下断点操作:
- 为某行设置或创建断点。
- 启用或禁用某行的断点。
- 删除某行的断点。
- 禁用断点后,PL/SQL程序不会在断点处暂停执行。
运行PL/SQL程序时,程序会在设置断点的每一行暂停执行。此时,Data Studio中检索当前程序状态信息,如程序变量的值。
执行如下步骤调试PL/SQL程序:
- 在需要PL/SQL程序暂停执行的行设置断点。
- 启动调试会话。
到达断点所在行时,监视调试窗格中应用程序的状态,然后继续执行程序。
- 关闭调试会话。
Data Studio的工具栏中有调试选项,可以帮助您执行可调试对象。
使用“断点”窗格
在“断点”窗格中可查看和管理已有断点。可从最小化窗口窗格中单击断点按钮打开“断点”窗格。
“断点”窗格会列出每一个断点所在行的行号以及调试对象的名称。
在“断点”窗格中单击,可启用或者禁用所有断点。在“断点”窗格中,勾选断点复选框,单击 、 或 ,进行断点启用、禁用或者删除操作。
在“PL/SQL Viewer”窗格,双击所需断点信息行,定位该断点。
- 禁用断点后,程序不会在该断点处暂停执行,但该断点仍会保留(以备将来启用)。
- 删除的断点无法恢复。
- 按下“Alt+Y”可复制“断点”窗格内容。
设置或添加断点
执行以下步骤在某行中添加断点:
- 打开需要添加断点的PL/SQL函数。
- 在“PL/SQL Viewer”窗格中,双击行号字段左侧的断点标尺,设置断点,启用断点标志 [] 表示操作成功。
如果函数在调试过程中不会间断或停止执行,则为其设置的断点不会生效。
启用或禁用断点
设置断点后,可在“断点”窗格顶部勾选其对应的复选框,单击“断点”窗格顶部的,暂时禁用该断点。“PL/SQL Viewer”和“断点”窗格中,禁用的断点会灰化显示[]。如果要启用已禁用的断点,勾选其对应的复选框,单击 。
删除断点
用户可删除不再使用的断点。其方法与断点创建的方法相同。
“PL/SQL Viewer”页签中,打开待删除断点所在的函数,双击断点启用图标[],将断点删除。
也可以利用上述方法,在“断点”页签进行断点启用或禁用操作。
修改源代码
调试过程中,如果用户修改了从服务器获取的源代码,并继续进行调试,Data Studio会提示错误:
建议刷新该对象,再次执行调试操作。
如果用户修改了从服务器获取的源代码,且在未设置断点的情况下执行或调试了该代码,Data Studio会显示服务器中源代码的执行结果。建议在进行调试或者执行前,进行刷新操作。
使用断点测试PL/SQL程序
执行以下步骤使用断点测试PL/SQL程序:
- 打开PL/SQL程序,在要调试的行创建断点。
例如:
11、12和13行
- 单击,按下“Ctrl+D”,或在“对象浏览器”中右键单击PL/SQL程序,选择“调试”。在弹出的“调试函数/过程”对话框中,输入参数信息。
如果没有输入参数,则“调试函数/过程”对话框不会弹出。
- 输入信息,单击“确定”。对于varchar和date数据类型,参数值需加半角单引号(');对于numeric数据类型,参数值可以不加半角单引号。
要将参数值设为NULL,需输入NULL或null。
单击“调试”,可以看到箭头指向断点所在行。箭头所指的行号,即为继续执行程序时的起始行号。
可通过三种方式终止调试:在工具栏中单击按钮;按下“F10”;或在“调试”菜单中选择“终端调试”。调试完成后,函数会继续正常执行,不会在任何断点暂停。
“调用堆栈”和“变量”窗格会填充信息。
“变量”窗格显示当前的变量值。将鼠标悬停在函数/过程中的变量上,也会显示当前的变量值。
用户可单步跳入、单步退出、或单步跳过代码。详细信息请参见控制执行。
- 单击继续执行至下一断点(如有)。“结果”页签中显示执行PL/SQL程序的结果,“调用堆栈”和“变量”窗格将被清除。可单击“结果”页签上的 复制页签内容。
可通过以下方式删除断点:
- 再次双击断点,将其从PL/SQL Viewer中删除。
- 选中断点对应的复选框,在“断点”页签中单击 。
改变“变量”窗格位置
该功能支持改变“变量”窗格极其列的位置。用户可以将“变量”窗格移动至如下位置:
- “SQL助手”页签旁边
- 终端页签旁边
- “对象浏览器”页签旁边
- “结果”页签旁边
- “断点”页签旁边
- “调用堆栈”页签旁边
- “对象浏览器”页签下方
无论“变量”窗格是否在调试过程中被改变位置,调试结束后,窗格都会被最小化。若“变量”窗格被拖动至终端页签或“结果”页签,调试结束后,应手动最小化窗格。窗格位置改变后将保持不变。
启用/屏蔽系统变量
“变量”窗格默认显示系统变量。必要时,用户可以屏蔽系统变量。
- 单击“变量”窗格中的按钮,如下图红框中所示,即可屏系统变量。
按钮默认开启,即默认启用系统变量。
显示缓存参数
调试或执行PL/SQL函数或过程期间,相同参数的值会在下次操作中被直接使用。
执行PL/SQL对象时,显示如下窗口。
首次执行时,参数值为空,您可根据需要输入参数值。
单击“确定”,参数值将被缓存。下次查询时,执行/调试期间会显示上次缓存的相同参数的值。
某一连接被删除后,缓存的所有参数值都会被清除。
“监视器”窗格中显示变量
调试期间,Data Studio会在“监视器”窗口显示正在被监控的变量。
在“监视器”窗格中,必须以如下方法添加变量:
- 从“变量”窗格中添加所选变量并右键单击。
- 从“变量”窗格中选择变量,然后单击“变量”窗格工具栏中的按钮进行添加。
如果变量处于被监控状态,“监视器”窗格中的值会随“变量”窗格中值的变化而变,反之亦然。
- 调试函数/过程期间,在编辑器中右键单击变量,将变量添加至“监视器”窗格:
在Data Studio窗口中,“监视器”窗格可被拖拽至任何位置。
调试期间显示变量的游标信息
在Data Studio中调试PL/SQl函数期间,将光标放在变量上方,则会显示该变量的信息。
调试中支持回滚/提交
Data Studio支持在调试完成后,提交/回滚PL/SQL查询结果。
- 如果启用了“使用回滚进行调试”选项,则调试后获取的PL/SQL执行结果不会保存在数据库中。
- 如果禁用了“使用回滚进行调试”选项,则调试后获取的PL/SQL执行结果被提交到数据库中。
按如下步骤启用回滚功能:
- PL/SQL调试期间,检查“使用回滚进行调试”复选框并启用回滚功能。
或者
右键单击执行PL/SQL函数的SQL终端窗格。
调试完成后,勾选“使用回滚进行调试”启用回滚功能。
或者
在“对象浏览器”窗格的“函数/过程”模块下右键单击任一PL/SQL函数启用回滚功能。