FusionDebug is an interactive step debugger which runs on Adobe ColdFusion 6.1, 7, 8, 9, 10, 11 and 2016, as well as Railo 3, 4 and Lucee 4.5.
FusionDebug lets you see what's happening in your application as each line of code is being executed. It can be used to set breakpoints, step over, into, or out of code, inspect variables (across different scopes), and watch expressions.
What's New in 5.0.1
We're excited to be able to bring you FusionDebug 5.0.0. Thank you for all the feedback from the previous release, we always appreciate it! Here's a rundown of what's new in 5.0.1
New Feature: Support for Eclipse Neon (4.2.6).
New Feature: Ability to see SQL data from queries.
New Feature: Support for Lucee 4.5.2 and Lucee 4.5.3.
An issue which would cause FusionDebug to keep remaining days of a license after uninstallation of a license
FusionDebug Rev 4.0.0
New Feature: Support for ColdFusion 2016
New Feature: Support for ColdFusion Builder 2016
New Feature: Support for Lucee 4.5 and Railo 4.2
New Feature: Support for Eclipse 4.4 ( Luna ) and 4.5 ( Mars )
New Feature: Support for Java 1.8
FusionDebug Rev 3.7.1
An issue which would cause FusionDebug to claim other Debuggers’ (notably FlexBuilder) breakpoints has been fixed.
An issue which could cause Eclipse and Eclipse-based IDEs running on JDK 1.6 to fail to connect to any debug target (often causing a NullPointerException), or being able to display the Debug Launch Configuration page for FusionDebug launches, has been fixed.
FusionDebug Rev 3.7.0
New Feature: Support for ColdFusion Builder 3
New Feature: Support for ColdFusion 11
FusionDebug Rev. 3.6.1
An issue whereby the Source Code Lookup tab’s dropdown list could not be changed has been fixed.
FusionDebug Rev. 3.6.0
Support for Windows 8
New Feature: Support for ColdFusion 10 and Railo 4
New Feature: Support for Eclipse 4.3 (Kepler) and 4.2 (Juno)
New Feature: Browse button on “Source Code Lookup” tab
FusionDebug Rev. 3.6.0 has been tested using Eclipse Platform 4.1 to 4.3. FusionDebug is a pure Java application with no native dependencies, and so should run on all OS platforms for which Eclipse is available.
We recommend installing the Eclipse Java SDK package. This can be obtained from http://www.eclipse.org/downloads/
We recommend also installing the CFEclipse package, which provides a capable environment for working with CF scripts within Eclipse. This can be obtained from: http://www.cfeclipse.org/
Please consult the relevant Guides for quick-start instructions on getting acquainted with FusionDebug. There is an updated User Manual for 3.6.0.
The following issues are known at the time of publication.
‘Run To Line’ Causes Skip On Following CFML Code/Breakpoints With Resume/Steps
As Run To Line targets are set anywhere on a CFML page, and we expect the execution to halt at this point, the engine must be allowed to continue to the ‘next nearest’ valid CFML, and halt there. This can therefore be on another Breakpoint, causing it to seem (upon step/resume) to be skipped, where as it has simply already been hit.
Custom Extensions Not Recognized By CFML Server
For your Custom Extensions to function you must add them to your CFML Servers known extensions. For advice on how to do this please see our user manual or web page. These contain useful links and setup instructions, as well as guides on setting your default editors. You will need to set your IDE to use editors that allow debugging on your new extensions (including the default .htm .html).
For information and instructions on use please see:
Custom Exceptions Fire In CF Admin/Other CF Web Applications Pages When FusionDebug Connected
This is a side effect of breaking on Exceptions, any CFML Live code running on the attached server can fire off Custom Exceptions, which FusionDebug will detect (when option selected). To use these applications during a debug session simply uncheck the option to ‘Catch Un/Caught Custom CFML Exceptions’ in the FusionDebug ‘Configuration’ Page in ‘Preferences’, from the ‘Window’ menu option. You can then re-enable the setting once you have finished using the desired page and continue debugging.
Custom Exceptions Within CFTRY Recognized As Caught When NOT Handled In CFCATCH
When placed within a cftry/cfcatch block thrown Custom Exceptions are dealt with as Caught by CFML. Therefore even though this is Uncaught by rights, it will only be detected as caught (with this option). When this occurs the catch block will be highlighted also – due to the match not being correct. The distinction between whether ‘this’ Custom Exception, is Caught based upon the catch type is something we are working on and plan to have resolved for next Beta/Release.
Lucee 4.5.4 and Lucee 5.x Specific
The latest version of FusionDebug is not working as expected with the latest Lucee releases and to be more precise, the breakpoints do not fire. After further investigation, in Lucee 4.5.4 / Lucee 5.x, not fully qualified file paths are generated in the .class files. The problem we encounter is that the mappings in the FusionDebug Source Lookup do not map to the correct file names on the server and as a result no breakpoints can fire. The engineering team is currently working with the Lucee developers and soon enough we will have a fix for that issue.
Some Numerical / Complex CF Types Decode to Java Types, Not CF Types
We’re working hard on being able to decode all CFML complex types. Most types are already
implemented – structs, arrays, XML objects, CFCs, Functions etc. In some cases, you might see
an undecoded type in the Variables and Expressions view (“… instance of …”) or a plain
string representation of the object.
Step Over sometimes requires > 1 keypress to advance the cursor.
This is because some lines of CF code perform multiple actions and require you to press
step for each action that they perform.
Step Into CFC’s is sometimes requires > 1 keypress to step into the CFC.
With the current instruction pointer located on the CFINVOKE tag, keep clicking Step Into until
the CFC is loaded. The parameters and other initialization actions are performed before the CFC
is called. You may have to push step into until this initialization is complete.
Step Requests sometimes jump around to lines of code that are not sensible.
This is a limitation of how Railo processes and optimizes pages at compile time.
Calling CFML functions which are reentrant to the currently halted thread may cause the VM to hang
You cannot set/clear breakpoints with CTRL-SHIFT-B when in the CFEclipse perspective
CFEclipse does not support the CTRL-SHIFT-B keystroke when in the CFEclipse perspective. You
can toggle the breakpoint by right mouse clicking on the line you wish to set the breakpoint
on and using the Toggle Line Breakpoint menu item.
Sometimes breakpoints don’t fire.
In the Debug configuration, make sure the Target System Type is set correctly: checked for
Windows, unchecked for Unix. And the correct connector is being used for the engine type desired.
Breakpoints set on blank lines may not always fire.
Since FD 2.0.1 breakpoints can be set on blank lines. FD cannot always get breakpoints to
fire on blank lines because they are sometimes optimized away by the CF compiler.
Wrong File Selected
When a breakpoint or step event fires, FusionDebug does its best to find the source file. If the
same file exists multiple times in different projects, the wrong one may be selected
Use the source code lookup tab on the Launch Control to correct the source code lookups.
If your system is monitored by FusionReactor with crash protection activated, FusionReactor may
terminate the page if it exceeds the Request Timeout limit that has been configured. Please
deactivate crash protection in FusionReactor.
RESOLVED ISSUES FusionDebug 5.0.1
FD643 - Licensing - An issue in which the number of days remaining on a license would not reset
FD645 - Support - Fusion Debug failed to install and had erratic behaviour on Eclipse Neon
FD648 - Expression Evaluation - Get more data from evaluated SQL queries