Differences between Visual Micro debugging and "classic" debuggers
Users with a background from PC based development environments and debuggers
will find a few differences between these systems and the way Visual Micro
does debugging.
Special Debug Code Inserted into Sketch
For every breakpoint, Visual Micro "invisibly" adds a few lines of code to
your source code. This code represents the breakpoint and performs the
communication between the board and your PC.
These extra lines of code will not appear in your source files, Visual Micro
manages it in the background.
However, every breakpoint will consume a few bytes of program memory because
of that extra code
No Single Stepping
Visual Micro does not offer single stepping. This means that you can't step
through your code one line or statement at a time. It is also not possible to
step into or over a function or to "step out" of a function.
Setting/Changing/Deletion of breakpoints requires rebuild
If you want to set/change/delete a breakpoint, then you have to rebuild and
upload your Arduino sketch. "Full blown" debuggers do not require that. The
reason is the extra breakpoint code that Visual Micro has to insert
into
your sketch.
Variable viewing and changing
Visual Micro's debugging lets you view and change variables at
runtime. However, you must specify the variables you want to watch and modify
before you build and upload your sketch.
Why did we build it this way?
For the full "magic" to happen, a debugger would require the following:
- Debugging hardware support by your Arduino board. For a typical
microcontroller this would mean a so called JTAG interface, which the
Arduino boards do not have.
- The ability to change program code at runtime. This is a prerequisite
for single stepping, at least without JTAG hardware. The Atmel processors
used in Arduino boards prevent changing code at runtime as a security measurement, only bootloaders are allowed to write to code memory.
- More memory. On a typical Arduino board, code and data memory is very
precious, which rules out complex debugging routines running
on the board.
But,...
we at Visual Micro believe that the Visual Micro debugger is
worth every cent! People who used it, never want to miss it anymore, because it
is a real productivity booster.
Don't
believe us, just read user voices in our forum!