Black magic probe out of cheap STLink programmers
If you have ever worked with ARM Cortex M processors you've probably used GDB + OpenOCD combo for debugging. If you didn't: OpenOCD connects to the processor via a STLink programmer and opens a socket to which GDB can connect. It will push data necessary for debugging (and understandable for GDB) through this socket. That means that if you connect GDB to this socket (so called remote debugging) you can debug processor's software like any other application on your PC.
[Read More]