Can gnu-debugger be used for Arduino code?

I've found vague references to the gnu-debugger scattered about the Arduino world. Is it possible to use the debugger with code that is running on the Arduino, or is the debugger available only when running the code in a simulated environment on the host machine (eg Windows or Linux). I would be pleasantly surprised to learn that onboard gnu-debugger is possible.

I wish to set breakpoints, examine/change registers. Is AVR Studio what I want?

TIA

Is AVR Studio what I want?

Yes. :)