"Debugging" We call "debugging" the activity of identifying bugs This usually means inspecting code and data at runtime We call "debugger" sth that stops the program so we can look at its guts We have a dead corpse to look at, but the world goes on In a concurrent environment this usually doesn't work And even your uC system is concurrent with the physical events you measure We can debug by logging Don't be shy of printf, it's more powerful than a "debugger" Collect your logs, and make your graphs But remember that diagnostics has a cost A serial port at 115200 takes 1ms to deliver 11 bytes A USB connection has more throughput, but some code and time overhead