Using Breakpoints

This section contains the following topics:

A breakpoint is used to suspend the execution of a PL/SQL program at the row where the breakpoint is set. You can use breakpoints to control the execution and debug the function.

  • An enabled breakpoint suspends the execution of the PL/SQL program whenever a breakpoint is encountered. When the execution hits the row of breakpoint, the execution will stop and you will be able to carry out other debug operations. Data Studio supports the following breakpoint operations:

    • Setting or adding breakpoint on a row

    • Enabling or disabling a breakpoint on a row

    • Removing a breakpoint on a row

  • A disabled breakpoint will not suspend execution of PL/SQL program.

When you run a PL/SQL program, the execution pauses at every row where you set a breakpoint. When the program execution is paused, Data Studio retrieves information about the current program state, such as the values of the program variables.

Perform the following steps to debug a PL/SQL program:

  1. Set a breakpoint at the row where PL/SQL program execution should be paused.

  2. Start the debugging session.

    When a row with a breakpoint is reached, monitor the state of the application in the debugger pane, and continue the execution.

  3. Close the debugging session.

Data Studio provides debugging options in the toolbar that helps you step through the debug objects.

Using the Breakpoints Pane

You can use the Breakpoints pane to view and manage the currently set breakpoints. From the minimized window panel, click the breakpoint option to open the Breakpoints pane.

The Breakpoints pane lists each breakpoint with the row number and the debug object name.

You can enable or disable all the breakpoints by clicking image1 in the Breakpoints pane. You can enable, disable or remove a specific breakpoint by selecting the breakpoint check box and clicking image2, image3 or image4 in the Breakpoints pane.

Double-click the required breakpoint in the Breakpoint Info column to locate the breakpoint in the PL/SQL Viewer pane.

image5

Note

  • Disabling a breakpoint prevents the execution from pausing at the breakpoint, but leaves the definition in place (to enable the breakpoint later).

  • Deleting a breakpoint removes it permanently.

  • The content of the Breakpoints pane can be copied to the clipboard using Alt+Y.

Setting or Adding Breakpoints on a Row

Follow the steps to set or add breakpoints on a row:

  1. Open the PL/SQL function on a row where you want to add a breakpoint.

  2. In the PL/SQL Viewer, double-click the breakpoint ruler on the left side of the Line column. The added breakpoint is indicated by an enable breakpoint sign [image6] in the PL/SQL Viewer.

    Note

    If the execution of the function does not break or stop the breakpoint during debugging, the breakpoint that is already set will not be validated.

Enabling or Disabling a Breakpoint on a Row

Once a breakpoint is set, you can temporarily disable it by selecting the corresponding check box in the left-side of the Breakpoints pane and clicking image7 at the top of the Breakpoints pane. Disabled breakpoints will be grayed out [image8] in the PL/SQL Viewer and Breakpoints pane. To enable a disabled breakpoint, select the corresponding breakpoint (using check box) and click image9.

Removing a Breakpoint on a Row

You can remove an unused breakpoint using the same method as that for creating a breakpoint.

In the PL/SQL Viewer tab, open the function in which you want to remove the breakpoint. Double-click image10 in the PL/SQL Viewer to disable the breakpoint. The breakpoint is removed from the work area.

You can also enable or disable breakpoints using the preceding method.

Changing Source Code

During debugging, if the source code is changed after it is fetched from the server and the debugging is continued, Data Studio displays an error.

You are advised to refresh the object and perform the debug operation again.

Note

If the source code is changed after it is fetched from the server, and if you perform the execution or debug operation with no breakpoint set, then the result of the source code at the server will be displayed on Data Studio. You are advised to refresh before performing debug or execute operation.

Debugging a PL/SQL Program Using a Breakpoint

Perform the following steps to debug a PL/SQL program using a breakpoint:

  1. Open the PL/SQL program and add a breakpoint on the row to be debugged.

    An example is as follows:

    Rows 11, 12, 13

    image11

  2. To start debugging, click image12 or press Ctrl+D, or right-click the selected PL/SQL program in the Object Browser and select Debug. In the Debug Function/Procedure dialog box, enter the parameter information.

    Note

    If there is no input parameter, the Debug Function/Procedure dialog box will not be displayed.

  3. Enter the information and click OK. Single quotation marks (') are mandatory for the parameters of varchar and date data types, but not mandatory for the parameters of numeric data type.

    To set NULL as the parameter value, enter NULL or null.

    On clicking the Debug button, you will see an arrow image13 pointing to the row where the breakpoint is set. The arrow indicates the row number at which execution will resume from.

    image14

    You can terminate debugging by clicking image15 from the toolbar, or pressing F10, or select Terminate Debugging from the Debug menu. After the debugging is complete, the function execution proceeds and will not be terminated at any breakpoint.

    The Callstack and Variables panes are populated.

    image16

    The Variables pane shows the current value of variables. Mouse over the variable in the function/procedure also shows the current value of variables.

    image17

    You can step through the code using Step Into, Step Out or Step Over. For details, see Controlling Execution.

  4. Click Continueimage18 to continue the execution till the next breakpoint (if any). The result of the executed PL/SQL program is displayed in the Result tab and the Callstack and Variables panes are cleared. You can copy the content of the Result tab, by clicking image19.

    To remove the breakpoint, do the following:

    • Double-click again on the breakpoint to remove it from the PL/SQL Viewer.

    • Select the breakpoint in the breakpoint check box and click image20 in the Breakpoints pane.

Rearranging the Variable Window

This feature enables the Variable Window and columns to be rearranged. You are able to arrange Variable Window to the following places:

  • Next to the SQL Assistant tab

  • Next to the SQL Terminal tab

  • Next to the Object Browser tab

  • Next to the Resultset tab

  • Next to the Breakpoints tab

  • Next to the Callstack tab

  • Next to the Object Browser tab

Note

When debugging is finished, the variable window will be minimized even if the variable window is rearranged while debugging. If variable window is rearranged as the Terminal tab or the Result tab, on completion of debugging, the tab should be minimized manually. The position of variable window is maintained after it is rearranged.

Enabling/Disabling System Variables

System Variables are displayed by default. You can disable the system variables whenever required.

  1. Click the red button under Variables to disable system variables.

    image21

    The button is in ON state by default.

Displaying Cached Parameters

When a PL/SQL function or procedure is debugged or executed, the same parameter values are used for the next debugging or execution.

While executing a PL/SQL object, following window is displayed:

image22

For the first time, parameter values are empty. Enter the value as required.

image23

Click OK. The parameter values will be cached. Next time during the query execution/debug same parameter values will be displayed.

Note

Once the specific connection is removed, all the parameter values in cache are cleared.

Displaying Variable in Monitor Window

Data Studio displays the variables which are being monitored in the Monitor Window while debugging.

In the Monitor Window, variables must be added in following ways:

  • Add selected variables from the Variable window and right-click the variable.

  • Select variables from the Variable window and add variables by clicking the button in the Variable window toolbar.

    image24

    If the value is changed in the variable window, the same would reflect in the monitor window if the variable is monitored and vice versa.

  • During function/procedure debugging, right-click the variable to be added in the editor and add the variable to the Monitor window.

image25

The Monitor window can be dragged to anywhere in the Data Studio window.

Displaying Cursor Information for Variables During Debugging

In Data Studio, variable information is displayed if the cursor is hovered over that variable during the debugging of PL/SQL functions.

image26

Supporting Rollback/Commit During Debugging

Data Studio provides the option to commit/rollback the PL/SQL query execution result after debugging is finished.

  • If Debug With Rollback option is enabled, the PL/SQL execution result after debugging is not saved to the database.

  • If Debug With Rollback option is disabled, the PL/SQL execution result after debugging is submitted to the database.

Perform the following steps to enable the rollback function:

  1. Check the Debug With Rollback box to enable the rollback function during PL/SQL debugging.

    Or

    Right-click the SQL Terminal window where the PL/SQL function is executed.

    image27

    Select Debug With Rollback to enable the rollback function after the debugging is complete.

    Or

    Right-click any PL/SQL function under Functions/Procedure in Object Browser.

    image28