If you are developing stuff on ARM Cortex M-series devices and need a reasonably priced debugger, I'd have to recommend the Black Magic Probe. For about 70 bucks you get a pretty fast debugger that directly understands the GDB remote protocol. This is kind of neat as you don't need to have run some local server (e.g.: stlink); the debugger appears as a standard CDC ACM USB serial device.
The thing about it which is pretty cool is that the debugger firmware is open source, so when you suspect a bug in the debugger (which, just like compiler bugs, does happen in the real world) you can actually go and see what is going on and fix it. It also means you can add features when they are missing.
Although the debugger has some support for ARM
semihosting, unfortunately this support is not comprehensive,
which means if you use an unsupported semihosting operation in your
code you end up with a nasty SIGTRAP
rather than the
operation you were expecting.
Unfortunately one of the simplest operations, SYS_WRITEC
,
which simply outputs a single character was missing, which was
disappointing since my code used it rather extensively for debug
output! But one small
commit later and the debug characters are flowing again. (As with
many of these things, the two lines were the easy bit, the hardest and
most time consuming bit was actually installing the necessary build
pre-requisites!)