There are three modes a breakpoint can work:
In this mode, breakpoints have no effect at all, but you can leave them in your sketch, if you want to.
- Enabled, not halting execution
In this mode, the breakpoint updates expression windows, trace and code windows but execution of your sketch continues without interruption.
- Enabled, halting execution
In this mode, when a breakpoint is hit, it halts execution of your sketch until you press [F9].
To disable Debugging/Breakpoints completely...
To enable Breakpoints...
To make breakpoints halt sketch execution when passed...
To let breakpoints continue execution of your sketch when passed...
: These settings become effective after a recompile/upload of your sketch
: These settings become effective immediately in your debugging session
: These settings are global for all Visual Micro projects
: These settings are project and configuration specific and apply to all breakpoints in the project
: These settings are breakpoint specific
If you chose Break/Pause = True and your sketch is halted in a breakpoint, see the link below in the "See also" section to find out how to stop the sketch at that point, recompile and upload.
Tip: Use =? to change the value of an Arduino variable
The debugger supports two different modes that allow variables to be updated. It is important to understand the difference between the two modes:-
Mode 1) Debug with "Enable Break/Pause=False" - Arduino does not stop
In this mode we can alter any of the assigned writable variables at any time however the change in value will only be recognised when the BreaPoint/TracePoint is hit/passed. The order that variables are updated corresponds to the order that you update them. For example if you update var1 which is in a breakpoint hit every 10 minutes then no other updates will be applied to any other variables until the 10 minutes has been reached.
If you are updating variables in a fast loop() then, subject to your code, the updates should also be applied immediately.
Mode 2) Debug with "Enable Break/Pause=True" and "WhenHit Continue Execution = False" - Arduino stops and waits for F5/Continue
In this mode only the variables of the current breakpoint can be changed.
With the mouse, select and hover over a breakpoint in the expression window to see information about the breakpoint
In the image below the breakpoint configuration specifies variables 'i' and 'a' to be read/write and 'c' is read-only. This configuration is specified using the "WhenHit" property of the breakpoint.