EGL debugger controls

In addition to the Breakpoints and Variables views, you can direct the EGL debugger through controls in the following areas:

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.
The following list indicates what happens if you issue the command step into for a particular statement type:
call
Stops at the first statement of a called program if the called program runs in the EGL debugger. Stops at the next statement in the current program if the called program runs outside of the EGL debugger.
The EGL debugger searches for the receiving program in every project in the workbench.
converse
Waits for user input. That input causes processing to stop at the next running statement, which might be in a validator function.
forward
If the code forwards to a JSF Handler, the debugger waits for user input, and then stops at the next running statement, which might be in a validator function. If the code forwards to a program, the debugger stops at the first statement in that program.
function invocation
Stops at the first statement in the function.
show, transfer
If you have the debugger preference set accordingly, the debugger stops at the first statement of the program that receives control; see Setting preferences for the EGL debugger. The target program is EGL source code that runs in the EGL debugger, but is not generated by EGL.
After either a show statement or a transfer statement, the EGL debugger switches to the build descriptor for the new program or, if no such build descriptor is in use, prompts the user for a new build descriptor. The new program can have a different set of properties from the program that ran previously.
Step over
Runs the next EGL statement and pauses, but does not stop within functions that are invoked from the statement.
The following list indicates what happens if you issue the command step over for a particular statement type:
converse
Waits for user input and then skips any validation function (unless a breakpoint is in effect). Stops at the statement that follows the converse statement.
forward
If the code forwards to a JSF Handler, the debugger waits for user input and stops at the next running statement, but not in a validator function, unless a breakpoint is in effect.
If the code forwards to a program, the debugger stops at the first statement in that program.
show, transfer
If you have the debugger preference set accordingly, the debugger stops at the first statement of the program that receives control; see Setting preferences for the EGL debugger. The target program is EGL source code that runs in the EGL debugger, but is not generated by EGL.
After either a show statement or a transfer statement, the EGL debugger switches to the build descriptor for the new program or, if no such build descriptor is in use, prompts the user for a new build descriptor. The new program can have a different set of properties from the program that ran previously.
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.
The step return command in a validator function is an exception. In that case, the behavior is identical to that of a step into command, which primarily means that the EGL debugger runs the next statement and pauses.
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.
The EGL debugger ignores the following EGL system functions:
  • 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

Table 1. Compatibility considerations for debugger controls
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.