Some people, when confronted with a problem, think ``I know, I'll use regular expressions.'' Now they have two problems.
pdt
How to Configure Eclipse PDT with Zend Server Debugger on MAMP for Drupal
Anything involving Eclipse is always epic. First, you have to get your head around what distribution of it to use, as confusing as one's first introduction to Linux distributions (there are different kinds of Linux?).
Next, you have to grok the fact that the Zend Debugger must be installed on your server. In this case, MAMP.
Then, you have to make Eclipse listen to the debugging information being outputted, on the debug port.
Finally, you have to figure out how to use a debugger effectively (not in scope, but careful, debugging will blow your mind).
I started with this screencast, lulled by his easy manner of speech. The directories in MAMP are slightly different, like 5.2 and 5.3 instead of whatever he said. Not a big deal, just noting it.
Great! I hit "Test Debug" and...
Test Debug Server: Web server connection failed. Please verify that the address ....
So then I went to:
Eclipse -> Preferences -> Debug -> Installed Deguggers
And change the Zend debug port to whatever the output of your phpinfo gives you, which in my case was 65535.
I knew something was happening at that port because
telnet 127.0.0.1 65535
and typing some random stuff produced errors with the word "debugger" in it (thanks for the tip, Dan).
But it turns out the real problem was that there was a superfluous
zend_extension = "/Applications/MAMP/bin/php5.2/lib/php/extensions/no-debug-non-zts-20060613/xcache.so"
in my php.ini file. Anyone else notice that these config files get kinda crufty even without touching them?
Commented it out and now I get a happy:
Test Debug Server: Success!
Thanks much to Rebecca Janine Wise for her excellent post with configuration errata. Definitely worth a read if you are configuring Eclipse PDT.
Setting up Eclipse to Debug Drupal with XDebug
Every 6 months or so I take a stab at setting up line-level, breakpoint style debugging for PHP. In the past I've been able to get the debugger installed, but the lack of a decent interface to use in setting breakpoints and watches has limited the value of a debugger (one thing that I have found helpful is XDebug's profiling feature that lists all function calls in a nested format along with performance timing). The recent announcement of a new XDebug client for OS X got me back on that track, and while I wasn't able to get MacGDBP working as I wanted, it did lead me to re-evaluate the newest Eclipse offering for PHP coders: PDT. PDT has come a long way, and the combination of a robust IDE, nimble 'jumpt to' shortcuts and killer debugger integration are more than I can pass up. Here's how I got everything working on a Mac OS X 10.5 box.
Much of what follows was made possible by and incorporates instructions from these very good tutorials:



