So after trailing a few IDEs, I ended up going the free approach with Eclipse, Sourcery G++ and OpenOCD. All seems to work OK, albeit far from the ideal IDE experience (that's probably largely in part due to my lack of in-depth knowledge of Eclipse, and how to set up the seemly millions of options.) But it's manageable enough.
So the debugging aspects work reasonably, and I found the memory monitor which I can monitor addresses. However, it would be really nice not to have to work out 0x48000810 is the PORTC ODR whenever I want to have a quick look at it (as an example.)
Is there any way to label memory addresses in Eclipse debugger? I've done quite a bit of searching, and it seems like you have to build an Eclipse plugin. It seems a bit nonsensical not to be able to just define a bunch of memory address labels in a file.