Output buffering is very useful if you don't want to mess up your output. I do this in a one-liner which I can comment/uncomment at will
ob_start();var_dump(); user_error(ob_get_contents()); ob_get_clean();
print_r( debug_backtrace() );
or something like that :-)
Komodo IDE works well with xdebug, even for the remore debugging. It needs minimum amount of configuration. All you need is a version of php that Komodo can use locally to step through the code on a breakpoint. If you have the script imported into komodo project, then you can set breakpoints with a mouse-click just how you would set it inside eclipse for debugging a java program. Remote debugging is obviously more tricky to get it to work correctly ( you might have to map the remote url with a php script in your workspace ) than a local debugging setup which is pretty easy to configure if you are on a MAC or a linux desktop.