I've been looking at a few things trying to improve the debugging experience...
Zend Studio: http://www.zend.com/store/products/zend-studio.php
Commercial IDE from the people who write PHP. No-cost 21-day trial, available as personal-use crippleware after the trial expires. I don't like the editor, but it does "real" debugging (breakpoints, single-step, examine variables and the callstack etc). It can run scripts via the CGI interface, or in theory hook up to a web server, though I haven't figured out how to get that running.
I've found debugging in Zend Studio to be a lot easier to work with than sticking in a hojillion extra debug assertions, even in the local CGI mode. It has a "Profile URL..." command for the remote debugging, but I haven't found a local profiling option. The online help is vague.
Advanced PHP debugger: http://pecl.php.net/package/apd
Open source (PHP license). More of a profiler than a debugger, it seems. May be more thorough than our current stack of wfProfileIn()/wfProfileOut() calls...
I had some trouble installing it on my mac (had to change the permissions to writable and run 'glibtoolize' manually between phpize and configure). Quick demo output at http://meta.wikipedia.org/wiki/Profiling
The website for this confuses me utterly. It appears to be a debugging module for PHP, which is either open source or some versions of it are open source but not others, and there's a commercial IDE that it hooks into and maybe you can use it without it too. Perhaps worth checking out.
-- brion vibber (brion @ pobox.com)
wikitech-l@lists.wikimedia.org