Breakpoint consumers
A debugger system includes several consumers of breakpoints.
User breakpoints
The breakpoints you define in the breakpoint dialog box or by toggling breakpoints in the editor window often consume one physical breakpoint each, but this can vary greatly. Some user breakpoints consume several physical breakpoints and conversely, several user breakpoints can share one physical breakpoint. User breakpoints are displayed in the same way both in the Breakpoint Usage window and in the Breakpoints window, for example Data @[R] callCount.
C-SPY itself
C-SPY itself also consumes breakpoints. C-SPY will set a breakpoint if:
The debugger option Run to has been selected, and any step command is used. These are temporary breakpoints which are only set during a debug session. This means that they are not visible in the Breakpoints window.
The linker option Semihosted or IAR breakpoint has been selected.
In the DLIB runtime environment, C-SPY will set a system breakpoint on the
__DebugBreaklabel.
These types of breakpoint consumers are displayed in the Breakpoint Usage window, for example, C-SPY Terminal I/O & libsupport module.
C-SPY plugin modules
For example, modules for real-time operating systems can consume additional breakpoints. Specifically, by default, the Stack window consumes one physical breakpoint.
Choose Tools>Options>Stack.
Deselect the Stack pointer(s) not valid until program reaches: label option.
To disable the Stack window entirely, choose Tools>Options>Stack and make sure all options are deselected.