People have told me about Remote Debugging before, but yestday I set it up and it absolutely rocks!
On very large server-side code, it is so much cooler (and faster) to be able to set a breakpoint in the middle of a massive call stack (rather than just keep inserting logging code).
I picked up the required switches on the Tomcat site (Setting up Tomcat for Remote Debugging), and used the technique on a bunch of non-web apps. Also discovered you need to use the ant task
Eclipse is one rocking IDE, and it just keeps getting better. Setting up Remote Debugging is as simple as /Debug/Remote Debugging/New… Gotta love that. Give it the same port that you specified when lauching the remove JVM and you are in business.
Extremely cool!