FusionDebug 1.5 Beta 2! (and getting it to work on OS X)
I just managed to get the new beta of FusionDebug 1.5 downloaded and installed. There certainly has been a lot of work making this product a lot nicer to install ,it has one installer for both the plugin/standalone version and the server side settings.
Since I am a bit weird (but you knew that already) I have a setup on my MacBook Pro that is as follows:
JRun installed in /Applications Coldfusion deployed as a J2EE app server in /Applications/JRun/servers/cfusion The web root is actually at /Library/WebServer/Documents (using the JRun SDK to build my own mod_jrun.so as documented here) To start different servers I use a launcher called Lingon which basically allows you to run commands (such as launching servers) on startup
Why am I telling you all this? Well, the problem is that when you install FusionDebug, it is nice enough to change the jvm.config to add some startup parameters that allow the debugger to connect. This is fine under "normal circumstances" but I have a number of servers attached and I dont want all of them listening to the debugger connection strings, so, the command that I actually want to run is to make just the Coldfusion Server that I want start up with debug mode on. To do this I add the following settings in lingon (Users Daemons -> "ColdFusionMX" -> Expert)
Label
ColdFusionMX
ProgramArguments
/System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Home/bin/java
-server
-Djava.awt.headless=true
-Dsun.io.useCanonCaches=false
-XX:MaxPermSize=128m
-Dcoldfusion.rootDir=\{application.home}/
-Djava.compiler=NONE
-Xnoagent
-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8001
-jar
/Applications/JRun4/lib/jrun.jar
-start
cfusion
RunAtLoad
What this definition basically says is: "Run java, from the 1.4.2/Home path, as a server, make it headless, open a debug socket on port 8001, no need to suspend until the debugger has connected, then run a jar, from Jrun/lib/jrun.jar and tell it to -start cfusion"
Make sense?
So now, when I restart the service, only my cfusion server runs with a debug.
Right, next...
There is a problem with Eclipse's own implementation of the Java Debug Interface as it doesn't accurately reflect the Sun reference implementation (read more about it here). So, to fix that in your version of Eclipse (that you want to run Fusion Debug on) you have to make a copy of the Eclipse.app (the main Eclipse icon that you click on), rename it to something like EclipseFB and then right click, Show Package Contents, browse to Contents/OS X and edit the eclipse.ini file
You should remove the line that says something like
"-Xbootclasspath/p:../../../plugins/org.eclipse.jdt.debug_3.2.1.r321_v20060731/jdi.jar"
and then save it.
You should now be able to connect to your server as per the rest of the documentation.