Expand description
Breakpoints, and the two scopes they can live in.
A breakpoint belongs to a step, not to a run. Setting one through
Step::set_break_on_step writes it into
the step, so every execution of that sequence stops there and the setting
outlives the run that set it.
Passing an execution instead scopes the breakpoint to that one run. The step on disk is untouched, and the breakpoint goes away with the execution. That is what a host debugging on behalf of a remote panel wants: a debugging session should not quietly edit the station’s sequence files.
Nothing here stops a run on its own. The engine only honors breakpoints
while they are switched on, which is a separate decision made at two levels.
Engine::breakpoints_enabled is the
live switch for the session, and the station option of the same name is the
setting written to disk. With either off, a set breakpoint stays set and is
ignored.
Enums§
- Breakpoint
Scope - Which run a breakpoint applies to.