[[Property:title|Breakpoints]]
[[Property:weight|-14]]
[[Property:uuid|6ed5890a-9b23-210a-5640-cee348d6e27e]]
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 formatters: Flat view|feature flat view]]  and [[Class formatters: Flat view|class flat view]] ). 
Breakpoints can be in three different states: '''enabled''' (  [[Image:bp-enabled-icon]]  ), '''disabled''' (  [[Image:bp-disabled-icon]]  ), or '''not set''' (  [[Image:bp-slot-icon]]  ). 

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 '''[[Breakpoint menu|condition]]''' . They are then shown as  [[Image:bp-enabled-conditional-icon]]  and  [[Image:bp-disabled-conditional-icon]] . 

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 editing|breakpoint menu]]  lets you change the state of one breakpoint, whereas the [[Breakpoint commands|breakpoint commands]]  let you change the state of several breakpoints at a time. The [[Breakpoint information command|breakpoint information command]]  shows the state of all set breakpoints. 

{{note|You can toggle the status of a breakpoint easily using shortcuts<br/> - '''F9''': toggle between enabled/not-set. <br/> - '''Shift+F9''': toggle between enabled/disabled.<br/> - '''Ctrl+F9''': open the breakpoint dialog for [[Breakpoint editing|editing]]. }}

{{note|Breakpoints cannot be set in all features. In particular, breakpoints cannot be set in external features or attributes. <br/>
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 [[Image:bp-enabled-conditional-icon]] and '''Ctrl+RightClick''' on an empty breakpoint location  [[Image:bp-slot-icon]] }}


{{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}}



