Blog | FusionDebug - Part 3

[FDS-120] Breakpoints not removed and duplicate breakpoints appear

Description

This occurs when the Adobe ColdFusion Builder is installed in the same IDE as FusionDebug. To integrate with CFBuilder FusionDebug will convert Adobe’s breakpoints to FD ones, but in order for the two plugins to co-exist we only do this when FD is connected. Any Adobe breakpoints that are in Eclipse before connecting will be converted to FD breakpoints, but cannot be converted back on disconnect, therefore breakpoint toggling does not work as expected.

One way to ensure that toggling always works is by exclusively using FusionDebug methods of toggling a breakpoint, i.e. the “Toggle Line Breakpoint” entries in the ruler context menu and the editor context menu. Note, when connected any methods of breakpoint toggling can be used.

Issue Details

Type: Technote
Issue Number: FDS-120
Components: Breakpoints
Environment:
Resolution: Fixed
Added: 30/11/2009 10:59:04
Affects Version: 3.0.1
Fixed Version: No Fix Available
Server:
Platform:
Related Issues: None

[FDS-124] ColdFusion Builder – Errors are logged when stepping through a page

Description

Errors are occasionally logged in the Error view of ColdFusion Builder beta 2 when stepping through a page at moderate speed. The errors are logged by ColdFusion Builder and will not affect FusionDebug and your stepping operations. Adobe are aware of the issue.

Issue Details

Type: Technote
Issue Number: FDS-124
Components: Stepping
Environment:
Resolution: Fixed
Added: 03/12/2009 16:45:14
Affects Version: 3.0.1
Fixed Version: No Fix Available
Server:
Platform:
Related Issues: None

[FDS-123] ColdFusion Builder – Line Highlighting is odd when breakpoint hits or when stepping

Description

When using FusionDebug in ColdFusion Builder you may notice problems with the line being highlighted properly when a breakpoint fires or when stepping through a page. This currently occurs in the beta 2 of ColdFusion Builder and the problem has been logged with Adobe.

Note that the current instruction pointer and the stack will show the correct line that the application is on, but this line may not be highlighted. Other lines can also remain highlighted after passing them.

Issue Details

Type: Technote
Issue Number: FDS-123
Components: Breakpoints
Environment:
Resolution: Fixed
Added: 03/12/2009 16:40:13
Affects Version: 3.0.1
Fixed Version: No Fix Available
Server:
Platform:
Related Issues: None

[FDS-116] Railo shows error message when using client license: “FD Server licensing does not work…”

Description

Error Message: “Listening for transport dt_socket at address: 8000
FD Server Liscensing does not work with the Open Source Version of Railo or Enterprise Version of Railo that is not enabled.”

This message is displayed in the Railo server output when connecting with a trial or local client license. It does not affect FusionDebug in any way and you can still connect and debug Railo as normal.

This problem should be fixed in the next Railo update.

Issue Details

Type: Technote
Issue Number: FDS-116
Components: Connector for Railo
Environment:
Resolution: Fixed
Added: 24/08/2009 11:03:06
Affects Version: 3.0
Fixed Version: 3.0
Server: Railo
Platform: Solaris, MacOS, Linux, Windows 2003, Windows Vista, Windows 2000, Windows x64, Windows XP, AIX
Related Issues: None

[FDS-117] Right-click menu items lost when using Adobe Coldfusion Builder CFML editor

Description

If Adobe ColdFusion Builder and FusionDebug are installed on the same Eclipse environment, the FusionDebug entries in the right-click menu of the CFML editor may be lost.

Solution

To fix the problem simply replace the plugin.xml file found in the FusionDebug plugin installation folder, currently found here:

eclipse\plugins\com.intergral.fusionreactor.debug.core_3.0.0.RTP

or for a ColdFusion Builder installation, the default location is here:

C:\CFBuilder\plugins\com.intergral.fusionreactor.debug.core_3.0.0.RTP

with the plugin.xml file found attached.

Eclipse will now need to be started with the -clean option because it caches some plugin configurations. On the command line change directory to your Eclipse install and run:

eclipse -clean

The right-click menu items should now be visible.

Issue Details

Type: Technote
Issue Number: FDS-117
Components: Configuration
Environment:
Resolution: Fixed
Added: 25/08/2009 13:06:58
Affects Version: 3.0
Fixed Version: 3.0
Server:
Platform:
Related Issues: None

[FDS-112] F5 “Step Into” re-bound to “Refresh” by CFEclipse

Description

The F5 key may be re-bound to refresh the browser when CFEclipse is installed or updated. This can override the debug key setting of “Step Into”.

This key can be reset by going to Windows – Preferences – General – Keys. Make sure the F5 key is set to Step Into for the Debug context and you can either modify or delete the F5 key binding for the CFML Editor context.

Issue Details

Type: Technote
Issue Number: FDS-112
Components: Configuration
Environment:
Resolution: Fixed
Added: 22/07/2009 12:49:24
Affects Version: 2.0
Fixed Version: No Fix Available
Server:
Platform:
Related Issues: None

[FDS-114] Matching column fields and conditions on breakpoints; blank space required

Description

Comparisons between database strings and CFML strings

Conditional breakpoint expressions are pure CFML code, therefore when you use a query column that has a fixed size, for example nchar(10), the returned string is buffered with spaces to fill the length of 10, i.e. “James “. This means that when a comparison is made; qry.id eq “James”, this will return false and the breakpoint will not fire.

The same problem arises in CFML, one solution is to use the Trim or RTrim functions.

Issue Details

Type: Technote
Issue Number: FDS-114
Components: Breakpoints
Environment:
Resolution: Fixed
Added: 06/08/2009 11:52:53
Affects Version: 3.0
Fixed Version: 3.0
Server: Resin, ColdFusion 8, Railo, ColdFusion 6, Jetty, ColdFusion 7
Platform: Solaris, MacOS, Linux, Windows 2003, Windows Vista, Windows 2000, Windows x64, Windows XP
Related Issues: None

[FDS-111] Use of Custom Exceptions in ColdFusion, Caught and Uncaught

Description

Break on Runtime Custom Exceptions ColdFusion Connector

When using Break on custom_type exceptions in ColdFusion servers, the behavior may not be as expected. ColdFusion defines a Caught exception as an exception thrown inside a <cftry> body. This means that the <cfcatch> type does not have to be of custom_type for the breakpoint to be fired.

For example, the following would be deemed a caught exception and an exception breakpoint would fire, if enabled.

<cftry>
	<cfthrow type="custom_type" message="Error">
<cfcatch type="application">
	Application exception thrown! <br>
</cfcatch>
</cftry>

An Uncaught exception would be one thrown outside of a <cftry> body, as expected.

Note

Different ColdFusion servers will thow the exception multiple times. This will cause FusionDebug to halt the page more than once.

Issue Details

Type: Technote
Issue Number: FDS-111
Components: Exception Breakpoints
Environment:
Resolution: Fixed
Added: 22/07/2009 12:47:19
Affects Version: 3.0
Fixed Version: 3.0
Server: ColdFusion 8, ColdFusion 6, ColdFusion 7
Platform:
Related Issues: None

[FDS-110] Saving out Breakpoints, and Expressions as a set.

Description

Suggestions

Though you cannot save out both breakpoints and expressions together as a set, you can achieve this function by using some existing Eclipse features and some saved text management.

Firstly you can use the Eclipse ‘working sets’ functionality to have projects open in specific groups, this persists information and preferences pertaining to these ‘sets’. But to store your specific breakpoints and expressions you should back them up manually.

Export/Import Breakpoints

You can select the Breakpoint View in the FusionDebug perspective and right click with the mouse to access the Breakpoint View context menu. With this context menu you should see the option to ‘Export Breakpoints’, by selecting this you can access a export screen/wizard allowing you to save out selected breakpoints to a given location and file. Through use of this feature and good naming conventions you can store project specific breakpoints for future import and use. We would suggest storing these either with your project so they are easily managed and found, or by having a set location and naming structure to help in finding.

Within the Breakpoint View context menu you will also find the ‘Import Breakpoints’ option. This option will ask for a valid exported breakpoint file to import from.

Note: You can only import breakpoints for open projects you have in your workspace, at the time of import. As the mappings to existing projects are checked at this stage by Eclipse.

Storing Expressions

Though Eclipse has no store feature for expressions, these are simply text fields, as such you can back these up in a simple text file. If the text file is present in Eclipse you can even drag and drop the expressions from the text file to the Watch Expression View (in 3.4 Ganymede and above). For ease we would suggest storing the expressions text file as part of the project you want to use them with. By doing so, when this project is open you can simply open this text file in Eclipse and drag/copy the expressions to the Expressions VIew, or add them via the editor context menu for FusionDebug.

Note:Saving out your breakpoints and expressions to watch as a set is not possible, these are suggestions on getting this functionality with the Eclipse support that exists.

Issue Details

Type: Technote
Issue Number: FDS-110
Components: Breakpoints
Environment:
Resolution: Fixed
Added: 22/07/2009 12:22:27
Affects Version: No Fix Available
Fixed Version: No Fix Available
Server:
Platform:
Related Issues: None

[FDS-96] FusionDebug 2.0.1 Release Notes and Resolved Issues

Description


FusionDebug Rev. 2.0.1


RELEASE NOTES KNOWN ISSUES

Status: May 25th, 2007

RELEASE NOTES

FusionDebug Rev. 2.0.1

We appreciate your feedback. Please use the web form or send mail to:

FusionDebug client has been tested using Eclipse Platform 3.1 and 3.2 on Microsoft Windows XP SP2
and on GNU/Linux Fedora Core 5 (kernel 2.6.17s-smp) under Gnome. FusionDebug is a pure Java
application with no native dependencies, and so runs on all OS platforms for which Eclipse is
available.

We recommend installing the Eclipse 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/

KNOWN ISSUES

Many of these issues can be resolved by disconnecting FusionDebug (by selecting the blue
“FusionDebug” line in the Debug view, and clicking the red Disconnect icon).

JDWP Connections Prevent JRUN Container Restart

When the JDWP connection begins a variable fetch or evaluation, this can in some cases cause
the JDWP debug agent to prevent JRun’s service controller (used by Windows Services) from
restarting the container. In this case, disconnecting FusionDebug usually solves the issue.

Some Numerical / Complex CF Types Decode to Java Types, Not CF Types

We’re working hard on being able to decode all CF 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 CF processes and optimizes pages at compile time.

Some CFM/CFC files are listed multiple times with different line numbers in the stack although they are only called once

This is the result of compile time optimization of the CF code by the compiler. You can
workaround this issue by recompiling the affected page while FusionDebug is attached.
FusionDebug will ask the compiler to not optimize the code in this way and produce files that
are friendly to debugging. You must have the Compile CF pages in debug friendly mode checked
on in the launch configuration for this feature to work.

Sometimes variables or scopes are not shown/empty (ObjectCollected exception)

This is usually due to the way Java handles memory allocations for debuggers. Performing a
step usually corrects this.

Calling CF 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.

*Breakpoints set on a 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.

Breakpoints on <cfreturn> statements should now fire (from FD 2.0.1)

Eclipse Outputs Text To The Console

If you start Eclipse Workbench from a Unix terminal session, you may see occasional
debugging output to the system STDOUT (System.out) and STDERR (System.err) streams.

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.

While debugging the page simply terminates

Check in the CF Administrator if you have Timeout Requests after ( seconds ) activated
When checked, requests that take longer than the specified time are terminated. This normally
prevents unusually long requests from occupying server resources and impairing the performance
of other requests. This feature will however also terminate pages that you are debugging if you
exceed the time limit. Deactivate this feature while debugging.

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

Key Issue Type Component/s Summary
FD373 Improvement All Performance optimizations
FD299 Bug Breakpoints Breakpoints do not fire on simple <cfreturn somevar> statements. Heavily affects frameworks…
FD349 Bug Breakpoints Breakpoints don’t fire after connecting session.
FD356 Bug Breakpoints Breakpoints do not fire if the Save Class files option is off and the cfclasses folder is empty
FD389 Bug Breakpoints NPE from Stack Assembler when BP is placed on a line prior to function declaration.
FD308 Bug Breakpoints If multiple breakpoints have been added on the same line then the FusionDebug breakpoint stops working.
FD331 New Feature Breakpoints Breakpoints should fire when set on blank lines or lines with no CFML
FD375 Bug Breakpoints Error in Eclipse when setting breakpoints.
FD345 Bug Breakpoints Renaming a file does not unset JDI breakpoints (was: Breakpoint fires but does’t appear in FusionDebug)
FD382 Bug Breakpoints You cannot set a breakpoint on the first line of a file if the first line isn’t code.
FD408 Bug Breakpoints Breakpoints are not remove from JDI when they are removed in the editor by deleting the lines the breakpoint is on
FD344 Bug Breakpoints Confusing breakpoint behaviour when code moves breakpoint.
FD353 Bug Breakpoints Exceptions in workspace log when pasting new content into a file with a breakpoint in it.
FD298 Bug Breakpoints Breakpoint are not firing in a Mach-II application in the Listeners
FD372 Bug CF Abstraction

Stepping
Step into on a CFSWTICH statement steps to the wrong line at the end of the <CFDEFAULTCASE>
FD386 Bug Config Tool FD Server Configuration Wizard version should be 2.0.1
FD421 Bug Eclipse Error in Eclipse when disconnecting a debugging session
FD291 Improvement Eclipse Add “Patent Pending” to the splash image and Preference Windows
FD302 Improvement Install Bring FD installers up to CFEclipse version (1.3.1.1)
FD306 Bug Install Launching FD failed because javaw.exe could not be found
FD313 Improvement Install FD2.0.1 PluginInstaller should be able to update FD2.0.0 Standalone automatically
FD320 Bug Src Code Lookup Case where you can’t modify the default project mapping.
FD316 Bug Stack Frames Wrong file is opened on breakpoint
FD329 Bug Stepping An error in a CF page causes the debugger to hang while doing step intos
FD325 Bug Stepping When stepping into a MGU function I get a line:-1 shown in the stack
FD410 Bug Stepping Non-Linear (Block Skip) Stepping in CF8 (Unmasked JDI bug)
FD330 Bug Stepping Stepping through a high number of factors causes the page to hang
FD361 Bug Stepping Step Over on a file with a large number of cfif statements (factors) skip most of the code
FD362 Bug Stepping Stepping into a large number of factors can skip code
FD431 Bug Stepping Stepped into the cfDump tag while stepping through a page.
FD433 Bug Stepping Step Return does not return to the caller when a page contains _factors but to the next factor block

Issue Details

Type: Technote
Issue Number: FDS-96
Components:
Environment:
Resolution: Fixed
Added: 18/06/2007 16:38:48
Affects Version: 2.0.1
Fixed Version:
Server:
Platform:
Related Issues:
  • FDS-113 – FusionDebug 3.0.0 Release Notes