The Debug view contains the stack trace and the program
execution commands.
Stack trace
For each currently active Debugger session (and
any terminated sessions that you have not removed), the Debug view contains one or
more session trees. As shown in the example below, a session tree begins with a node
that identifies the project as an OpenEdge application and shows its name ("Killer
App"). The tree ends with a node identifying the location of the OpenEdge Runtime
executable,
prowin32.exe.
Stack entries, such as the highlighted entry in the example, appear marked with
under the
OpenEdge Runtime node.
Note: Stack entries
are visible only when the Debugger is suspended. While the application is running or
waiting for a user response (for example, at a message dialog), you cannot see the
stack.
When the Debugger is in a suspended state, the stack trace
identifies:
- The current code line. This is the next line of code to be executed, and
corresponds to the location of the solid pointer and
the highlighted line in the Editor window. The current line
appears at the top of the stack.
- All other code lines that participated in the currently active code block,
leading to the pending execution of the current line. These entries appear, from
top to bottom, in inverse order of execution. That is, the entry for the most
recently executed instruction appears first, immediately following the current
(pending) instruction.
All visible stack entries belong to a discrete block of code whose execution is
not yet complete. Once the block is fully executed, its stack entries are removed,
and the stack for the next block appears.
Selecting a stack entry lets you view that line of the source
code and the values of variable data elements as they are at that point in the
execution of the program. When you click on a stack entry:
- The ABL Editor window containing that source file becomes
active; the selected line is color-highlighted ( or
), with an execution pointer ( or
) in the left margin. When you click the
Editor tab label, the cursor is positioned at the
beginning of that line. You can simply review the code or edit, save, and
recompile it as necessary.
- If the selected line is the current line (the first stack entry), the
execution pointer is solid and the highlighting is a darker shade:
.
- If the selected line is a previous line (lower in the stack), the
execution pointer is hollow and the highlighting is a paler shade:
.
- The Variables view and the Expressions
view show the values that are in effect at the time immediately preceding
execution of the selected line. You can make non-persistent changes to these
values to test their effect without actually altering the source code.
Note: Selecting a previously executed stack entry does not change the
point at which program execution will resume. The current code line, reflected by
the entry at the top of the stack, remains the same.
Program execution commands
The Debug view toolbar and context (right-click) menu
provide commands for controlling program execution during a debugging session. See
Stepping through the code
for information about using these commands.