In addition to the Breakpoints and Variables views, you can direct
the EGL debugger through controls in the following areas:
- 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.
- 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 controlsPlatform |
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. |