[FDS-39] When I use FusionDebug to debug a CF script, sometimes the JVM (ColdFusion) will exit.

Description

This is due to a Java bug (6497210, available here, fixed in Java JRE/JDK 7.0b7) which causes Java (on which ColdFusion runs) to crash during debugging. This bug may manifest itself by:

  • a simple exit of the Java Virtual Machine (if running in a Unix console or DOS Window),
  • the Windows ‘ColdFusion MX [7] Application Server’ service spontaneously stopping,
  • on Mac with a standard Mac OS X ‘Crash Reporter’ dialog

All of these exits may also be associated with a VM error message “Bus Error”.

This problem occurs if a debug client (such as FusionDebug, Eclipse, Netbeans or JDB) is reading variable values when Java attempts to clean up memory by performing a garbage collection.

On Windows, a Java Error File (hs_err_pidXXX.log) may be generated in the ColdFusionMX/runtime/bin folder. On Macintosh, a Crash Reporter log may be generated in the ~/Library/Logs/CrashReporter folder.

This problem occurs quite rarely, but could happen when performing fast stepping (by holding down the Step-Into or Step-Over key). The problem affects all Java platform debuggers, not just FusionDebug. Running in low or marginal memory situations will also greatly increase the probability of this bug occurring.

The bug occurs much more frequently on non-Windows platforms.

If you are affected by this behavior, it may be possible to alleviate the problem somewhat by increasing the memory available to Java, thereby decreasing the number of garbage collections required and the possibility of one occurring while FusionDebug is reading variables. The following procedure details this workaround.

  • Either (ColdFusion Standalone Only)
    • Open the CF Administrator
    • In the Server Settings menu, select the Java and JVM option.
    • Increase the value in the Java Maximum Heap Size field, bearing in mind the total amount of memory available on the machine.
    • Click ‘Submit Changes’
    • Restart ColdFusion.
  • Or
    • Stop the ColdFusion service.
    • Locate your JRun Java configuration file jvm.config.
    • Make a copy of this file and move the copy to a safe place. You may restore this copy in the event of problems.
    • Open the original jvm.config
    • Locate the line java.args, and within it the -Xmx option. This option tells Java how much memory to use. This line is very long – be careful not to introduce any carriage returns.
    • Increase this number, bearing in mind the total amount of memory available on the machine. E.g. to allow 500 megabytes for Java, use the option -Xmx500m
    • Save and close the file
    • Restart the ColdFusion service.

This bug has been fixed in Java version 7 (1.7), but since neither FusionDebug nor ColdFusion/JRun are supported on that platform yet, we recommend performing the workaround procedure above. There is a chance the fix will be back-ported to future Java 5 (1.5) and 6 (1.6) maintenance releases, though this is not guaranteed by Sun.

If, after performing the remedial steps above, you are still affected by this problem, please get in touch with us at Support.

Issue Details

Type: Technote
Issue Number: FDS-39
Components:
Environment:
Resolution: Fixed
Added: 18/05/2007 14:26:58
Affects Version: 2.0
Fixed Version: 2.0
Server:
Platform: Solaris, MacOS, Linux, Windows 2003, Windows 2000, Windows XP
Related Issues: None

[FDS-38] How do I open my ColdFusion MX pages in the Debug Perspective?

Description

From the Eclipse Window menu, select the Show View -> Navigator. This will add a navigator view to your debug perspective which you can use to open projects and select files.

Alternitively, use the all-in-one FusionDebug perspective: select Window -> Open Perspective -> Other, then select FusionDebug. We’ve created this perspective to contain all the most useful views for debugging. Of course, you can customize this perspective yourself and add or remove views as you see fit.

Issue Details

Type: Technote
Issue Number: FDS-38
Components:
Environment:
Resolution: Fixed
Added: 18/05/2007 14:24:49
Affects Version: 2.0
Fixed Version: 2.0
Server:
Platform: Solaris, MacOS, Linux, Windows 2003, Windows 2000, Windows XP
Related Issues: None

[FDS-35] What if my page doesn’t compile?

Description

Compilation of pages occurs before FusionDebug can start tracking the page as it runs in ColdFusion.

Having FusionDebug connected does not affect this process.

If the page does not compile, ColdFusion will report errors as if the debugger were not connected – you will be able to read the normal error report in your browser, as usual.

Issue Details

Type: Technote
Issue Number: FDS-35
Components:
Environment:
Resolution: Fixed
Added: 18/05/2007 14:20:27
Affects Version: 2.0
Fixed Version: 2.0
Server:
Platform: Solaris, MacOS, Linux, Windows 2003, Windows 2000, Windows XP
Related Issues: None

[FDS-34] What happens if my page encounters an error?

Description

If an error occurs during page execution or stepping, ColdFusion will process that error as though the debugger were not connected.

FusionDebug will stop tracking the thread, and you should refer to your browser for any debugging or robust debugging report generated by ColdFusion.

Issue Details

Type: Technote
Issue Number: FDS-34
Components:
Environment:
Resolution: Fixed
Added: 18/05/2007 14:20:01
Affects Version: 2.0
Fixed Version: 2.0
Server:
Platform: Solaris, MacOS, Linux, Windows 2003, Windows 2000, Windows XP
Related Issues: None

[FDS-33] When I use the ‘Find’ feature in the ‘Expressions’ pane, it never finds what I’m looking for, even when I can see the expression in the pane.

Description

Eclipse requires the double-quote (") characters in the expression to be specified in the Find, or at least covered by wildcards.

Since all expressions are enclosed by double-quotes, they must be specified in all Find operations. E.g. the expression "thedate" must be specified using wildcards (*date*).

Issue Details

Type: Technote
Issue Number: FDS-33
Components:
Environment:
Resolution: Fixed
Added: 18/05/2007 14:16:22
Affects Version: 2.0
Fixed Version: 2.0
Server:
Platform: Solaris, MacOS, Linux, Windows 2003, Windows 2000, Windows XP
Related Issues: None

[FDS-32] Expressions are listed as undefined.

Description

FusionDebug attempted to evaluate the expression, but either:

  • it didn’t return a value (for function calls), or
  • one or more of the variables or functions referenced by the expression was not available at the current debugger position.

In the latter case, the expression will be correctly evaluated when all the components comprising it are visible (using normal ColdFusion visibility rules) from the current position of the debugger.

No expressions are evaluated unless a thread is currently paused. Clicking on a frame within the Debug View causes the expressions to be evaluated in the context of the instruction pointer in that frame.

Issue Details

Type: Technote
Issue Number: FDS-32
Components:
Environment:
Resolution: Fixed
Added: 18/05/2007 14:15:23
Affects Version: 2.0
Fixed Version: 2.0
Server:
Platform: Solaris, MacOS, Linux, Windows 2003, Windows 2000, Windows XP
Related Issues: None

[FDS-28] Systems utilizing the JRocket 1.5 VM platform step very slowly.

Description

This is a known issue when debugging on the JRockit platform.

Currently the only solution is to change to a different JVM.

Issue Details

Type: Technote
Issue Number: FDS-28
Components:
Environment:
Resolution: Fixed
Added: 18/05/2007 14:07:20
Affects Version: 2.0
Fixed Version: 2.0
Server:
Platform: Solaris, MacOS, Linux, Windows 2003, Windows 2000, Windows XP
Related Issues: None

[FDS-27] When stepping quickly, I sometimes see a dialog box saying “An internal error occurred during “Step Over””.

Description

This is a confirmed fault with the Eclipse 3.1 platform. You may see this error if you are using Eclipse 3.1, or Flex Builder 2 (“Flex 2”), which also uses this platform. The fault is confirmed in Eclipse platform bug 105095

We recommend updating to Eclipse 3.2.2 or newer.

Issue Details

Type: Technote
Issue Number: FDS-27
Components:
Environment:
Resolution: Fixed
Added: 18/05/2007 14:06:27
Affects Version: 2.0
Fixed Version: 2.0
Server:
Platform: Solaris, MacOS, Linux, Windows 2003, Windows 2000, Windows XP
Related Issues: None

[FDS-26] My CFOUTPUT tags don’t output anything when I step over them.

Description

Text output by the cfoutput tag is buffered by ColdFusion until

  • the page completes, or
  • the buffer fills,
  • or a cfflush tag is executed.

If you’d like to output data as you are debugging, try inserting cfflush tags periodically or use the cfflush interval attribute to cause flushing after a certain number of bytes

Issue Details

Type: Technote
Issue Number: FDS-26
Components:
Environment:
Resolution: Fixed
Added: 18/05/2007 14:04:47
Affects Version: 2.0
Fixed Version: 2.0
Server:
Platform: Solaris, MacOS, Linux, Windows 2003, Windows 2000, Windows XP
Related Issues: None

[FDS-25] I pushed “Step Into” on a tag but FusionDebug didn’t step in.

Description

FusionDebug can only step into CFCs, cfinclude pages, sub-tags or modules. FusionDebug can’t step into Java objects or ColdFusion internal tags.

Additionaly, ColdFusion sometimes performs optimization around sub-tag calls, which can lead to this functionality not working, or requiring one or more additional clicks on the ‘Step Into’ button to take effect.

Issue Details

Type: Technote
Issue Number: FDS-25
Components:
Environment:
Resolution: Fixed
Added: 18/05/2007 14:04:15
Affects Version: 2.0
Fixed Version: 2.0
Server:
Platform: Solaris, MacOS, Linux, Windows 2003, Windows 2000, Windows XP
Related Issues: None