Try OpenEdge Now
skip to main content
Online Help
Running and debugging ABL programs : Concepts : Progress Developer Studio for OpenEdge Debugger : Debugging operations : Options for controlling program execution : 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:
*At line - Suspends execution at a specific point in the code. Optionally, you can define a condition that must be satisfied in order for the breakpoint to be honored.
*On error - Suspends execution when the program encounters an error condition. You can make the breakpoint apply to all errors, only to unsuppressed errors, or only to a single error condition that you specify.
*Watchpoint - Suspends execution when the value of a given variable or parameter changes. Optionally, you can define a condition that must be satisfied in order for the breakpoint to be honored.

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.