Debugger Overview

Previous  Top  Next

This topic describes the common usage of debugger features for all objects that support debugging. When you start the Debugger, you can get a dialog, depending on the object properties. For more information, see:

Stored Procedure & Function Debugger
Trigger Debugger

 

Overview

When the debugger is active, you will see something similar to the screenshot below.

 

Stored Code Debugger

 

The following sections are available in this topic:

Using Breakpoints
Parameters and Variables
Using Watches
Evaluate/Modify Dialog
Viewing (sub)routines
Running & Stepping Through Code

 

 

Using Breakpoints

Each executable code-item will have a small blue dot in the gutter area. On these areas, you can set breakpoints - a place where the debugger will halt execution and return to the debugger. If you disable (right click the gutter area with a breakpoint or the breakpoint in the debug window), it will turn light green.

 

Breakpoints can be conditional: they will only "break" if a certain condition evaluates to "true", like "n => 4". You can put any condition in the Condition box if you right-click the breakpoint and select Properties - take in account that this expression should evaluate to TRUE or FALSE.

 

The Passes column lists how many times the code has passed by the breakpoint. If you modify the breakpoint properties and change the "passes" value, the breakpoint will break after the entered number of passes.

 

To set breakpoints in a sub-routine, you need to "open" the routine first, see viewing (sub)routines.

 

Example breakpoints in a routine

 

 

Back to section list

 

 

Parameters & Variables

In this window, you will see the current value of any parameters and variables used in the routine. These values will be updated after each statement.

 

The Parameters and Variables debug window

 

You can change the values of a parameter/variable by double clicking it. This will show the Evaluate/Modify Dialog - you can use this to view (the result of) expressions and/or change parameter and variable values.

 

If the debugger doesn't pick up a certain variable, you can select the variable name in the code window, use the context menu and select Add Variable.

 

Back to section list

 

 

Watches

'Watches" are expressions, variables or parameters that you are "watching" constantly. The Parameters and Variables have their own window, but with the Watches window, you can enter any valid expression and it will be evaluated (like in the Evaluate/Modify Dialog after every executed statement. Adding a large number of watches could increase the time required to execute each separate statement.

 

The Watches window with a sample watch expression

 

 

Back to section list

 

 

Evaluate/Modify Dialog

This dialog - use ctrl+F7 to show it - is a powerful dialog to view any valid expression or to modify existing parameters and variables. In order to modify a parameter or variable, enter the name of the parameter in the Expression edit box and use Evaluate - the dialog will show its current value. Next, enter a new value in the New Value box (use ' quotes around string values) and use the Modify button to modify the parameter. The Parameters and Variables window and Watches window will reflect the change as well.

 

The Evaluate/Modify dialog

 

If you have any text selected before opening the Evaluate/Modify dialog, this text will be selected as the Expression value.

 

You can also use the Add Watch button to create a "watch" of the current expression.

 

Back to section list

 

Viewing sub-routines

You can open sub-routines at new tabs by using the Open Additional Routines for Debugging toolbar button, this will open up the Select Objects dialog.

 

Select Objects dialog

 

In this dialog you can select one or more objects that you would like to open up in the Debugger. You can also use the filter at the top of the dialog to shorten the list of available objects. The filter works in such a way that it filters out object names that don't contain any part of the filter text.

 

Back to section list

 

Running code and stepping through code

You can step a single statement by using the Step Over button. This will execute the statement and put the "current line" marker on the next statement. A blue highlighting bar will display the current line, as soon as you step to the next line, the current line will be executed and the next line becomes the current line.

 

 

At the top of the code window, you will see the current active routine. If you use Trace Into and you didn't open that routine yet, the debugger will attempt to open a new code window and continue stepping through the code in there. If the new routine is the same routine as an already opened routine, it will automatically switch tabs and switch back when the sub-routine has finished. Each routine will only be opened once in the debugger.

 

After each executed line, the values of the parameters and variables in the Parameters & Variables debug window will be updated. If you have watches enabled, these will be updated as well.

 

Additionally, the Call Stack window will display the current call stack, the list of nested routines we're currently in.

 

A call stack of 2 routines, PUT_CUSTOMER just called CUSTOMERS_I

 

Other possibilities are simply using the Run button, which will execute the code until an error has occurred, the routine ends or an active breakpoint is reached. Also the Run To Cursor button will execute the code, until the line with the cursor is reached or passed (depending on the executable state of the line).

 

The Reset button clears all settings and values (like breakpoint passes) and aborts execution of the routine.

 

Back to section list

 

Testing routine results

By using the SQL button on the toolbar, you can start an SQL Editor that uses the same transaction as the debugger. With this SQL Editor, you can test your routine result (eg: INSERTs or DELETEs) before COMMITting or ROLLING back the transaction.

 

Back to section list