欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/
操作步骤
存储过程 procedure_test 的结果是输出参数 C 除以 2 后的值,参数 C 的值等于参数 A 加参数 B,因此在程序运行后通过输出结果无法直接看到参数 C 的值。
进入调试模式。
进入连接后,在左侧的存储过程列表中查找目标存储过程 procedure_test 右键其名称,在弹出的列表中单击 调试 按钮开始调试
设置参数。
存储过程 procedure_test 中包含三个参数,A 和 B 为输入参数,C 为输出参数。
- 存在输入参数时,在调试时需首先设置参数的值。因此开始调试时,ODC 会首先弹出 设置参数 页面,请在该页面为输入参数赋值:指定参数 A 的值为 2,参数 B 的值为 4。
- 输入值后单击 确定 ,完成参数设置。
- 进入调试页面。
参数设置完成后,即可进入调试页面。
在调试页面的工具栏中 ODC 提供了以下功能键:
- 批量执行 :批量运行至最近断点,若无断点直接运行至结尾语句。
- 单步执行 :单步执行,不会进入子程序。
- 跳入 :单步执行,若当前行是调用已定义的存储程序或函数,则会进入被调用的子程序。
- 跳出 :在子程序内,执行跳出操作后,返回到上层调用位置的下一行;主程序内运行跳出,效果和 自动调试 相同。
- 终止调试 :继续运行直到结束,会跳过后续设置的断点。
- 设置断点。
设置断点用于在程序运行时中断在所需位置,从而方便分析程序。在 ODC 中通过单击编辑区中的行号设置断点:
- 请在示例程序中,单击第 9 行语句 dbms_output.put_line ( C / 2 ); 的行号,设置一个断点;
- 在编辑区下的 断点 页签中,会展示在程序中所有设置的断点的 PL 对象名称 和 行号 等信息,同时提供 取消 和 查看 断点操作。
说明
内核不支持在注释行和 begin、end 等关键字行处设置断点。
- 开始调试。
设置完断点后,单击工具栏中的批量执行图标,程序将按步骤开始执行并在断点处终止。或可单击单步执行图标
(单击一次单步执行,程序向后执行一步)。
- 查看调试信息。
程序此时终止在第 9 行,可在编辑区下的 堆栈和变量 页签查看当前栈上的变量与其对应的值。因设置断点,程序此时终止在了第 9 行,所以在 堆栈和变量 页签显示变量 C 的值为 6。在 调试日志 页签中可查看调试开始、调试结束、断点添加、断点取消等操作的记录和错误日志。
- 终止调试。
单击工具栏中终止调试图标后,程序将继续运行至结束并跳过后续设置的断点。
因程序中包含 PL 输出语句 dbms_output.put_line,所以当程序运行结束后,在编辑区下的 DBMS 输出 页签中会显示输出结果参数 C 除以 2 的值。此时页签中显示值 3,说明程序执行无误。
- 重新调试。
运行结束后,如需对当前对象再次发起新一轮的调试,可单击工具栏中的 重新调试 按钮。退出调试。
当通过调试已完成程序的分析后,可单击工具栏中的 退出调试 按钮以退出调试页面。
欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/