Up Previous Next Title Page Index Contents

5.2.1 Using the Generator Debugger

In the following we shall describe the features and functions of the Generator Debugger.

Opening Generator Debugger for a generator

In order to debug a generator, you must start its execution by selecting Generator | Debug... from the menu or by pressing the corresponding toolbar button in Generator Editor. This will first prompt you to select the graph for which the generator will be executed. After this selection the Generator Debugger will open with the execution of the current generator halted at the beginning. You can now proceed with the operations explained below.
The Generator Debugger will also be opened when a breakpoint is encountered during the generator execution.

Executing generators in Generator Debugger

To execute the generator in a Generator Debugger, select Run | Run from the menu or toolbar (or by pressing F9). This will start the execution from the beginning of the generator and continue until the end, unless the user explicitly interrupts the execution either by selecting Run | Break from the menu or toolbar (or by pressing F11). Usually the generators execute so fast that there is no chance to interrupt them before the end, so the break is needed mostly for interrupting the execution of a generator that has logical execution problem like an infinite recursive loop.

One important feature of the debugger is to enable the user to control the execution of the generation with various degrees of detail. The Generator Debugger provides two different mechanisms for this purpose. Stepping provides the most accurate execution control of these two as it enables the user to follow the execution command by command. To step:
1)Select Debug | Step Into from the menu or toolbar (or press F5) to dive in to the execution of the next command or command block.
2)Select Debug | Step Over from the menu or toolbar (or press F6) to execute the next command or command block without following the call chain.
3)Select Debug | Step Out from the menu or toolbar (or press F7) to complete the execution of the currently inspected command or command block.

Another way to control the execution is to run to the cursor, which executes the generator until the current cursor position is reached. To do this, select Debug | Run to Cursor from the menu or from the toolbar (or press F8).

Showing the current execution position

The current execution position is highlighted on the Generator window after each execution step, but if you need to explicitly re-highlight it (e.g. due to making a text selection, or switching temporarily to another generator in the generator view), select Debug | Show Current Position from the menu or press F4.

Working with breakpoints

Breakpoints enable the user to define places where the execution of a generator is interrupted and the Generator Debugger opened for further observing and investigation. Breakpoints can be added to a generator definition either in Generator Editor or Debugger. To add a breakpoint in generator definition:
1)Move the cursor on wanted breakpoint position in editing area.
2)Select Breakpoint | Add from the menu or from the toolbar. A red dot appears in selected location to denote the inserted breakpoint.

To remove a breakpoint:
1)Select the breakpoint you want to remove in the editing area.
2)Select Breakpoint | Remove from the menu or from the toolbar.

To remove all breakpoints from the definition, select Breakpoint | Remove All from the menu.

To customize the behavior of the breakpoints, select one of the following options from the Breakpoint menu:
Enabled: Breakpoints are enabled in most cases when generator is executed (ie. from Generator Editor, Editor, Graph or Type Browser, etc.) but not when executed as part of symbol elements display condition, for text field or for ID property.
Enabled While Editing: Breakpoints are active only when generator is executed from Generator Editor.
Enabled While Debugging: Breakpoints are active only when generator is executed from Generator Editor with Debug command.
Disabled: Breakpoints are always ignored.

Up Previous Next Title Page Index Contents