Tips on debugging

Sequential Mode

The most useful debugging feature is the sequential mode, which turns on a deterministic scheduling sequence, and schedules all work to the same core. Hence, one can single-step through the entire application, including calls into VMS, the plugin functions, request handlers, and so on.

Useful Breakpoint Locations

When debugging, you might find it helpful to put breakpoints inside "VMS__primitives_asm.s", which is in the VMS directory for hardware primitives. By putting breakpoints on the assembly primitives used to switch among slave, core controller, and the master, you get a break every time the application suspends and switches over to the runtime. The breakpoint can just be placed on a random assembly instruction in the "switchToSlv" and so on.. pick which transitions among slave, coreCtlr, and master you want to track. This is especially convenient when used in combination with sequential mode.