EGL debugger controls
- Buttons on the toolbar in the Debug view
- Context menu options available by right-clicking the gray area where you set breakpoints
Toolbar buttons
- Resume
- Runs the code until the next breakpoint, or until the run unit ends. If you have the debugger preference set accordingly, the debugger stops at the first statement in the main function; see Setting preferences for the EGL debugger.
- Suspend
- Causes the debugger to pause execution at the next opportunity. This button is only available while execution is in progress.
- Terminate
- Terminates the program without executing any further instructions.
- Step into
- Runs the next EGL statement and pauses.
- Step over
- Runs the next EGL statement and pauses, but does not stop within functions that are invoked from the statement.
- Step return
- Runs the statements needed to return to an invoking program or function, then pauses at the statement that receives control in that program or function.
- Drop to frame
- Select a frame from the stack, displayed in the Debug view, and click the Drop to frame button to pop all frames above the selected frame off the stack. The selected frame is repositioned to its first statement. This does not undo anything that happened in the frames that were popped off or repositioned. If you drop to the current frame, the program returns to the first statement of the frame. A frame represents a function, global variable initializer statement, or openUI statement. A stack is a list of current frames.
If you issue the command step into or step over for a statement that is the last one running in the function (and if that statement is not return, exit program, exit rununit , or exit stack), processing pauses in the function itself so that you can review variables that are local to the function. To continue the debug session in this case, issue another command.
The Use step filters button has no effect when you are debugging EGL.
Context menu options
- Run to line
- Runs all statements up to, but not including, the statement on a specified line.
- Jump to line
- Right-clicking the gray border to the left of a line of code and then clicking this option repositions the debugger at that line. You can jump only to a line in a function that is part of the currently active stack; that is, the function that you are in currently or a function that has called the current function. This command is not available in Rich UI debugging.
- Add breakpoint
- Identifies a line at which processing pauses. When code execution pauses, you can examine variable values, as well as the status of files and screens. Breakpoints are carried from one debugging session to the next, unless you remove the breakpoint. You cannot set a breakpoint at a blank line or at a comment line.
- Disable breakpoint
- Inactivates a breakpoint, but does not remove it.
- Enable breakpoint
- Activates a breakpoint that was previously disabled.
- Remove breakpoint
- Clears the breakpoint so that processing no longer automatically pauses at the line.
- Remove all breakpoints
- Clears every breakpoint.
- sysLib.audit()
- sysLib.purge()
- vgLib.startTransaction()
You can add a breakpoint at these statements, for example, but a step into command merely continues to the subsequent statement, with no other effect.
Other controls
Additional options are available in the Variables view and the Breakpoints view. For more information, see, "Viewing variables in the EGL debugger" and "Using breakpoints in the EGL debugger".
Compatibility
| Platform | Issue |
|---|---|
| Web transactions | You cannot pop off a validator function. For example, if the stack contains a converse statement, followed by a validator function, followed by a function called by the validator function, you can drop to the validator function, but not to the converse statement. |