更新时间:2023-03-17 GMT+08:00

使用断点

本节包含如下内容:

断点用于暂停其所在行中的PL/SQL程序的执行,可用断点控制执行并调试过程。

  • 设置并启用断点后,PL/SQL程序会在该断点所在的行停止执行,此时用户可以进行其他调试操作。Data Studio支持以下断点操作:
    • 为某行设置或创建断点。
    • 启用或禁用某行的断点。
    • 删除某行的断点。
  • 禁用断点后,PL/SQL程序不会在断点处暂停执行。

运行PL/SQL程序时,程序会在设置断点的每一行暂停执行。此时,Data Studio中检索当前程序状态信息,如程序变量的值。

执行如下步骤调试PL/SQL程序:

  1. 在需要PL/SQL程序暂停执行的行设置断点。
  2. 启动调试会话。

    到达断点所在行时,监视调试窗格中应用程序的状态,然后继续执行程序。

  3. 关闭调试会话。

Data Studio的工具栏中有调试选项,可以帮助您执行可调试对象。

使用“断点”窗格

在“断点”窗格中可查看和管理已有断点。可从最小化窗口窗格中单击断点按钮打开“断点”窗格。

断点”窗格会列出每一个断点所在行的行号以及调试对象的名称。

在“断点”窗格中单击,可启用或者禁用所有断点。在“断点”窗格中,勾选断点复选框,单击 ,进行断点启用、禁用或者删除操作。

在“PL/SQL Viewer”窗格,双击所需断点信息行,定位该断点。

  • 禁用断点后,程序不会在该断点处暂停执行,但该断点仍会保留(以备将来启用)。
  • 删除的断点无法恢复。
  • 按下“Alt+Y”可复制“断点”窗格内容。

设置或添加断点

执行以下步骤在某行中添加断点:

  1. 打开需要添加断点的PL/SQL函数。
  2. 在“PL/SQL Viewer”窗格中,双击行号字段左侧的断点标尺,设置断点,启用断点标志 [] 表示操作成功。

    如果函数在调试过程中不会间断或停止执行,则为其设置的断点不会生效。

启用或禁用断点

设置断点后,可在“断点”窗格顶部勾选其对应的复选框,单击“断点”窗格顶部的,暂时禁用该断点。“PL/SQL Viewer”和“断点”窗格中,禁用的断点会灰化显示[]。如果要启用已禁用的断点,勾选其对应的复选框,单击

删除断点

用户可删除不再使用的断点。其方法与断点创建的方法相同。

“PL/SQL Viewer”页签中,打开待删除断点所在的函数,双击断点启用图标[],将断点删除。

也可以利用上述方法,在“断点”页签进行断点启用或禁用操作。

修改源代码

调试过程中,如果用户修改了从服务器获取的源代码,并继续进行调试,Data Studio会提示错误:

建议刷新该对象,再次执行调试操作。

如果用户修改了从服务器获取的源代码,且在未设置断点的情况下执行或调试了该代码,Data Studio会显示服务器中源代码的执行结果。建议在进行调试或者执行前,进行刷新操作。

使用断点测试PL/SQL程序

执行以下步骤使用断点测试PL/SQL程序:

  1. 打开PL/SQL程序,在要调试的行创建断点。

    例如:

    11、12和13行

  2. 单击,按下“Ctrl+D”,或在“对象浏览器”中右键单击PL/SQL程序,选择“调试”。在弹出的“调试函数/过程”对话框中,输入参数信息。

    如果没有输入参数,则“调试函数/过程”对话框不会弹出。

  3. 输入信息,单击“确定”。对于varchar和date数据类型,参数值需加半角单引号(');对于numeric数据类型,参数值可以不加半角单引号。

    要将参数值设为NULL,需输入NULL或null。

    单击“调试”,可以看到箭头指向断点所在行。箭头所指的行号,即为继续执行程序时的起始行号。

    可通过三种方式终止调试:在工具栏中单击按钮;按下“F10”;或在“调试”菜单中选择“终端调试”。调试完成后,函数会继续正常执行,不会在任何断点暂停。

    调用堆栈”和“变量”窗格会填充信息。

    变量”窗格显示当前的变量值。将鼠标悬停在函数/过程中的变量上,也会显示当前的变量值。

    用户可单步跳入、单步退出、或单步跳过代码。详细信息请参见控制执行

  4. 单击继续执行至下一断点(如有)。“结果”页签中显示执行PL/SQL程序的结果,“调用堆栈”和“变量”窗格将被清除。可单击“结果”页签上的 复制页签内容。

    可通过以下方式删除断点:

    • 再次双击断点,将其从PL/SQL Viewer中删除。
    • 选中断点对应的复选框,在“断点”页签中单击

改变“变量”窗格位置

该功能支持改变“变量”窗格极其列的位置。用户可以将“变量”窗格移动至如下位置:

  • “SQL助手”页签旁边
  • 终端页签旁边
  • 对象浏览器”页签旁边
  • 结果”页签旁边
  • 断点”页签旁边
  • 调用堆栈”页签旁边
  • 对象浏览器”页签下方

无论“变量”窗格是否在调试过程中被改变位置,调试结束后,窗格都会被最小化。若“变量”窗格被拖动至终端页签或“结果”页签,调试结束后,应手动最小化窗格。窗格位置改变后将保持不变。

启用/屏蔽系统变量

变量”窗格默认显示系统变量。必要时,用户可以屏蔽系统变量。

  1. 单击“变量”窗格中的按钮,如下图红框中所示,即可屏系统变量。

    按钮默认开启,即默认启用系统变量。

显示缓存参数

调试或执行PL/SQL函数或过程期间,相同参数的值会在下次操作中被直接使用。

执行PL/SQL对象时,显示如下窗口。

首次执行时,参数值为空,您可根据需要输入参数值。

单击“确定”,参数值将被缓存。下次查询时,执行/调试期间会显示上次缓存的相同参数的值。

某一连接被删除后,缓存的所有参数值都会被清除。

“监视器”窗格中显示变量

调试期间,Data Studio会在“监视器”窗口显示正在被监控的变量。

在“监视器”窗格中,必须以如下方法添加变量:

  • 从“变量”窗格中添加所选变量并右键单击。
  • 从“变量”窗格中选择变量,然后单击“变量”窗格工具栏中的按钮进行添加。

    如果变量处于被监控状态,“监视器”窗格中的值会随“变量”窗格中值的变化而变,反之亦然。

  • 调试函数/过程期间,在编辑器中右键单击变量,将变量添加至“监视器”窗格:

在Data Studio窗口中,“监视器”窗格可被拖拽至任何位置。

调试期间显示变量的游标信息

在Data Studio中调试PL/SQl函数期间,将光标放在变量上方,则会显示该变量的信息。

调试中支持回滚/提交

Data Studio支持在调试完成后,提交/回滚PL/SQL查询结果。

  • 如果启用了“使用回滚进行调试”选项,则调试后获取的PL/SQL执行结果不会保存在数据库中。
  • 如果禁用了“使用回滚进行调试”选项,则调试后获取的PL/SQL执行结果被提交到数据库中。

按如下步骤启用回滚功能:

  1. PL/SQL调试期间,检查“使用回滚进行调试”复选框并启用回滚功能。

    或者

    右键单击执行PL/SQL函数的SQL终端窗格。

    调试完成后,勾选“使用回滚进行调试”启用回滚功能。

    或者

    在“对象浏览器”窗格的“函数/过程”模块下右键单击任一PL/SQL函数启用回滚功能。