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.



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!