Hi,
There is a
youtube video on the
debugger overview page that shows some basic features of the debugger. I suggest you skip the first minute or two which is for novices and take a look at the rest.
There are a number of user submitted youtube videos showing the debugger, one is
here and Dennis Hill has a growing channel of various Visual Micro videos on youtube.
I hope to create a combined single "How do I" help document with the money generated from sales of the debugger, however the documents above will give you a basic overview of how the usb/serial debugger works.
A USB debugger is different to a hardware debugger and uses a usb cable, does not use anything like JTAG.
You have obviously setup the debug to work correctly if you have breakpoint trace.
Although the page above, the youtube video and the
wiki gives information I will attempt to bullet a few points here.
This serial debugger has to compile with your watch expressions pre-defined. You will see that you do that using the "When Hit" message. Enter a combination of "text and {expressions}" or just text or just {expressions}. The expressions will show in a watch window that automatically opens when debug starts. There are various output windows that show either just the trace you already see or a combination of trace and "when hit" text messages, or just the messages.
Expression Watch and/or Text Message Examples Hi, this is my first breakpoint message. Millis={millis()}
or just watch expressions
{millis()}{i}{i*100}
If you want to be able to change the value of a variable when the arduino is running then suffix the name with "?="
{millis()}{i}{myVar=?}
Break/Pause You will read that break/pause is off by default. This is to prevent new users from crashing robots when the Arduino stops at a breakpoint
Set the project property "Break/Pause=True" to stop at a BreakPoint and allow F5, or any of the "start" menu/tool bar items to Continue/Step to the next breakpoint.
Stepping between breakpoints is all that this debugger can do, it can not step every line of code.
Ensuring the Arduino runs at full speed If you are using Break/Pause the following might not be relevant
The use of BreakPoint "Conditions" and/or the BreakPoint "Hit Count" property is recommended.
By default the "When Hit" is set to millis() so a value of 250 would cause the breakpoint to fire every 250 milliseconds (4 times per second)
The Condition property can include any expression or variable and will ensure a BreakPoint is only executed when the value of the expression has changed, or evaluates to tru/false etc. Useful for exception reporting.
NB: If neither of these two features are used breakpoint trace messages will be forced to no more than 12 per second and the arduino will pause if required to ensure this throttling/smoothing occurs. As with every Visual Micro feature, the "Throttle" can be disabled but it is recommended that the "conditions" and the "when hit" features are used instead.