I have an AVR Dragon which provides step debugging but c++ code gets so mangled by the compiler that this feature has very little value
I haven't tried debugging with my Dragon yet (I generally find the problem by debug prints on AVRs faster than it would take to hook the Dragon up), but GDB has no problems with C++ code. Are you sure you are loading a non-stripped, non-optimized ELF binary (not disassembling the raw binary used for programming!) into it? That is not how the code is compiled by default by the Arduino toolchain, so you may want to ensure you have -g -O0 options enabled (-g = debug symbols, -O0 = disable optimization). You can find the compiler settings in one of the text files in the Arduino folder (don't remember which one it was out of top of my head now).
If a newbie wants to continue, an AVR debugger is not out of reach either. On the other hand, unless you're willing to deal with gdb ARM development becomes very expensive as soon as one grows out of demo boards.
Well, unless you are dealing with AVR Studio, AVR debugger is also GDB-based - avr-gdb.
Re ARM development - most expensive proprietary toolchains use variants of the free (and pretty good) GCC/GDB behind the scenes, only putting fancy IDE in front. A really glaring example is LPCXpresso from NXP - a crippled version of Eclipse preconfigured to work with their Xpresso demo boards and nothing else, using a gcc/gdb toolchain.
If you are a bit skilled with the tools (and you probably should be if you are developing for ARM), it will take you perhaps half an hour to set up a free toolchain with an IDE of your choice, including debugger integration, so that you can use graphical debugger instead of typing GDB commands directly.
I am developing on STM32 series of chips using a self-compiled toolchain, CMake and Emacs, but I am software dev by profession, so I prefer to have things set up my way. Otherwise e.g. Eclipse works really fine (I am using it for AVR stuff), but there are others, such as CoIDE (basically preconfigured Eclipse) or emIDE (
http://www.emide.org/ - CodeBlocks).
Unless you have a particular requirement that necessitates it, there is really no need for hobbyist to blow thousands of $$ to buy a proprietary toolchain and IDE (such as Keil or IAR) when developing for ARM. However, you may have to invest a bit of time to learn the ropes how to set things up - which will make you a better dev, IMO. Pushing magic buttons on a black-box IDE that spits out a binary is cool - when it works. When something goes south, you are screwed unless you know how it is setup and how it is supposed to function.
One bad thing about Atmel is that they don't have any good parts except entry level 8-bitters so there is nowhere to grow. PICs are much better in this respect, their 16-bitters are very nice micros and from what I see Microchip actively develops this line.
Indeed - I wouldn't say that the parts are not good, more like they are really overpriced for what they offer. This is pretty much the reason I am using AVRs only for quick hacks and prototyping where the Arduino libraries are a large time saver. Anything more "permanent" or "serious" will likely get a PIC or ARM in it instead.