Breakpoints

Breakpoints are markers that you insert in the source code, or instructions that you define, to stop your application at certain points when it runs in a Debugger session. Used in conjunction with stepping commands, breakpoints let you fully control when the application runs uninterrupted and when it is suspended.

When the Debugger encounters a breakpoint, it suspends execution and takes control from the application. You can then examine the code as you wish, and continue when you are ready, either by stepping or by resuming and letting the application run until it reaches the next breakpoint.

A breakpoint can be conditional, where evaluation of a logical expression determines whether the interruption occurs. A breakpoint can be based on encountering an error, in which case the Debugger gets control at the next executable line after the line that caused the error.

All breakpoints defined in your workspace are known to the Debugger session. Without deleting any definitions, you can selectively enable only the ones that you want to use. Those breakpoints that you do not enable are ignored.

Types of breakpoints

You can set three different types of breakpoints:

Conditional breakpoints

For a conditional "at-line" or "watchpoint" breakpoint, the condition can be any expression that OpenEdge can evaluate to a logical value. The expression can include variables, buffer fields, object methods and attributes, logical operators (such as AND, OR), comparison operators (such as =, <>, EQ, NE), and other code entities.

OpenEdge validates the expression syntax when the breakpoint is added, but does not check variable references. If any variables in the condition are out of scope or nonexistent when the breakpoint is encountered, the Debugger suspends execution as if honoring the breakpoint and displays an error message.