Breakpoints are entities that stop a debugged application. Breakpoints can be put at the beginning of each execution line, so that it is possible to see the context in which the line is executed before executing it.

In EiffelStudio, breakpoints are represented as circles in the left margin of flat views (both feature flat view and class flat view ). Breakpoints can be in three different states: enabled ( ), disabled ( ), or not set ( ).

Only enabled breakpoints will stop the application when they are encountered. By default, breakpoints are not set. Disabled breakpoints are useful to temporarily discard a breakpoint, while keeping the possibility to put it back quickly.

Enabled and disabled breakpoints can have an associated condition . They are then shown as and .

Left-clicking on a breakpoint in a flat view changes the state of the breakpoint: it switches from not set to enabled, from enabled to not set, and from disabled to enabled. Removing a conditional breakpoint discards its condition.

The breakpoint menu lets you change the state of one breakpoint, whereas the breakpoint commands let you change the state of several breakpoints at a time. The breakpoint information command shows the state of all set breakpoints.

Note: You can toggle the status of a breakpoint easily using shortcuts
- F9: toggle between enabled/not-set.
- Shift+F9: toggle between enabled/disabled.
- Ctrl+F9: open the breakpoint dialog for editing.

Note: Breakpoints cannot be set in all features. In particular, breakpoints cannot be set in external features or attributes.
However, breakpoints can be set in assertions (require and ensure).

Tip: Breakpoints can be set on-the-fly while the application is running.

Tip: You can relocate a breakpoint by Ctrl+RightClick on a breakpoint and Ctrl+RightClick on an empty breakpoint location

Tip: to go to the line corresponding to a specific breakpoint index, just use Ctrl+G, enter the index, and the corresponding line should appear selected