The interim output debug message is the one method that is always available in whatever environment one happens to be programming in. When there is no debugger available, one could not use "the debugger" even if one wanted to do so.
Also, your statement presupposes that one is using an IDE. Some of us programmers out here despise all IDE's and never, ever, program with an IDE, ever. When there is no IDE, there is no "debugger ... integrated in the IDE".
I don't see IDEs as much help here because Drupal is so dynamic there's no easy way to jump through all the function/method calls that are useless calls to step through -- it's just easier to narrow down the debugging surface with well placed output messages.
Please someone point me at way to have the "setup" point me to the errors, and not me telling her debugger where I think the error is with a breakpoint...
Thanks for putting this so clearly. That is the headache with breakpoints in complicated systems with lots of layers of indirection.