Blog | FusionDebug - Part 6

[FDS-42] How can I activate if my Eclipse installation does not have access to the Internet?

Description

If your Eclipse installation does not have access to the internet, you can perform a manual activation. Go to the license activation page and follow the instructions listed there.

See also the FusionDebug User Guide for further details.

Issue Details

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

[FDS-44] How do I activate my license over the internet?

Description

Go to the license activation page and follow the instructions listed there.

Issue Details

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

[FDS-69] Breakpoint fires in Application.cfm, but not in a Fusebox CFC.

Description

This problem was reported against Fusebox 5.1

The issue is that there is insufficient Source Code Lookup data for FusionDebug to accurately place the breakpoint.

Often, the addition of a Source Code Lookup in the debug launch configuration tab is sufficient to get breakpoints firing reliably.

More help on getting breakpoints firing can be found in technotes below.

Issue Details

Type: Technote
Issue Number: FDS-69
Components:
Environment:
Resolution: Fixed
Added: 30/05/2007 12:06:53
Affects Version: 2.0
Fixed Version: 2.0
Server:
Platform: Solaris, Linux, Windows 2003, Windows 2000, Windows XP
Related Issues:
  • FDS-4 – Why don’t my breakpoints fire?

[FDS-97] Set Variable (CFSET) doesn’t set the value of the variable to what I’ve entered

Description

Highlight the name of the variable that you what to set/change the value of within an editor and then select the right-mouse click menu option “Set Variable”. In the dialog that opens enter a ColdFusion expression exactly as you would when performing a <CFSET> CFML tag. Note that a variable can only be set in a request that is currently stopped and you may have to use the scope of the variable to set the correct variable.

You can enter almost any ColdFusion expression as the value of a Set Variable (CFSET).

FusionDebug evaluates the expression like ColdFusion, which means that strings must be wrapped in double (“”) or single quotes(”) otherwise they will be interpreted as variable names.

<cfset myvar = "my string">
<cfset myvar = mystring>

Some examples of what you can enter in the dialog:

“my string” sets the value of the highlighted variable to the String “my string”
mystring sets the value of the highlighted variable to the value of the variable mystring (which must exist!)
mycfc.func1(123) sets the value of the highlighted variable to the result of calling mycfc.func1(123)

You can also create variables by using a scratch pad file where you enter the names of variables you want to create.

Issue Details

Type: Technote
Issue Number: FDS-97
Components:
Environment:
Resolution: Fixed
Added: 18/06/2007 18:01:27
Affects Version:
Fixed Version:
Server:
Platform:
Related Issues:
  • FDS-31 – Expressions don’t evaluate

[FDS-31] Expressions don’t evaluate

Description

The Expressions View can handle most expressions which are valid in ColdFusion MX. A good rule of thumb is: if you can write it as an IF condition, on the right side of a CFSET assignment, or within “#” characters, it’s a valid expression.

Expressions are evaluated and re-evaluated only in the context of a suspended request. If no request is suspended, expressions are not evaluated. If a thread is suspended, try clicking on it. This will implicitly tell the Expressions View to re-evaluate its expressions for that request.

Issue Details

Type: Technote
Issue Number: FDS-31
Components:
Environment:
Resolution: Fixed
Added: 18/05/2007 14:11:52
Affects Version: 2.0
Fixed Version: 2.0
Server:
Platform: Solaris, MacOS, Linux, Windows 2003, Windows 2000, Windows XP
Related Issues:
  • FDS-97 – Set Variable (CFSET) doesn’t set the value of the variable to what I’ve entered

[FDS-15] How do I run set the port configured in jvm.config to point to the port for my web server or JRun instance?

Description

No. The port specified in the jvm.config (which defaults to 8000) should reflect an available port on your system, which then the FusionDebug configuration will point to, it is not releated to the web server or JRun.

Issue Details

Type: Technote
Issue Number: FDS-15
Components:
Environment:
Resolution: Fixed
Added: 18/05/2007 13:36:13
Affects Version: 2.0
Fixed Version: 2.0
Server: Tomcat, LiveCycle Data Services, Flex Data Services, JRun 4, ColdFusion 8, ColdFusion 6, ColdFusion 7, JBoss, WebSphere, WebLogic
Platform: Solaris, MacOS, Linux, Windows 2003, Windows 2000, Windows XP
Related Issues:
  • FDS-14 – Do I run my page in a browser on port 8000 which I’ve configured in the jvm.config file?

[FDS-63] Debugging a ColdFusion and a Java application using Eclipse’s standard JDT plugins can cause Watch Expression on ColdFusion variables to generate errors

Description

This can occur when switching in the Debug View from FusionDebug to the Java application.

The expression which has been evaluated by FusionDebug is incorrectly assumed by JDT to be a Java expression. This is an issue with the JDT plugin, rather than a FusionDebug issue.

Issue Details

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

[FDS-21] After having configured jvm.config for debugging my server does not start any more!

Description

I’ve added the debugging settings required by FusionDebug to my servers configuration file /opt/jrun4/bin/jvm.config and now my server does not start any more.

When I start the server with

/opt/jrun4/bin/jrun start

I get the following error message:

Error [98] in bind() call!
<<<<<<< support.html
FATAL ERROR in native method: No transports initialized
err:: Address already in use
Socket transport failed to init.
Transport dt_socket failed to initialize, rc = -1.

This is caused by the attempt to start all servers sharing the same configuration (which is the default). The port number you have defined in the debug settings can only be used by one server at a time. Therefor either start only the server you want to debug, e.g.

/opt/jrun4/bin/jrun start cfusion

or use separate JVM configuration files for each server. Read the Adobe technote to get the details on how to do that.

Issue Details

Type: Technote
Issue Number: FDS-21
Components: Configuration
Environment:
Resolution: Fixed
Added: 18/05/2007 13:54:33
Affects Version: 2.0
Fixed Version: 2.0
Server:
Platform: Solaris, MacOS, Linux, Windows 2003, Windows 2000, Windows XP
Related Issues:
  • FDS-17 – FusionDebug fails to launch, with the error “Transport dt_socket failed to initialize”.
  • FDS-20 – How do I modify my jvm.config file for debugging?
  • FDS-24 – Can I use FusionDebug with a MultiServer configuration?
  • FDS-71 – How do I debug on a remote computer?
  • FDS-80 – FusionDebug could not connect to the target system (Localhost:8000). Please ensure the debug agent is listening on the system, check you configuration file – Mac OS X
  • FDS-85 – Windows could not start the CF MX7 Server on Local Computer…refer to service-specific error code 2
  • FDS-93 – How do I configure FusionDebug to work with multiple servers or multiple instances?

[FDS-92] “FusionDebug could not connect to the target system” error on Mac OS X Eclipse.

Description

This issue is caused by Eclipse’s own implementation of the Java Debug Interface (JDI) which does not accurately reflect the Sun reference JDI implementation. Because of the way Eclipse manipulates the Java classpath, any Eclipse application (e.g. FusionDebug) attempting to load a JDI implementation will reference the Eclipse classes, instead of the Sun implementation.

We have provided links to the relevant Eclipse bugs below.

Eclipse Issues

Problems with FusionDebug on Mac OS X can be reduced to two Eclipse issues:

  • Eclipse supplies their own JDI implementation which is incompatible with the Sun JDI Specification (Eclipse Bug 101686)
  • This issue may not occur on Eclipse 3.1 or earlier because it was masked by a classpath issue which has been subsequently fixed (Eclipse Bug 89111)
    • This is a Mac-specific bug with Eclipse’s classpath, which was set incorrectly and caused Eclipse JDT (normal Java) debugging to be unavailable. This would allow our supplied-JDI implementation to function correctly.
    • The fix for this issue (a correct Classpath which references the Eclipse JDI implementation) allows Eclipse JDT debugging to function, but unmasks bug 101686, which causes FusionDebug to malfunction.

Immediate Workaround

This workaround creates a second Eclipse bundle which does not use the Eclipse JDI implementation. This will unfortunately disable Eclipse JDT (normal Java) debugging, but will allow FusionDebug to function. The remainder of Eclipse properties (workspace, configuration, formatting etc.) will remain identical between the bundles. The original bundle can be used for JDT debugging, if required.

  • Create a copy of your Eclipse installation with a modified classpath. This will make Eclipse find the Sun JDI implementation.
    • Locate your root Eclipse installation.
    • Within this folder, copy the Eclipse.app bundle, renaming the copy to EclipseFD.app
    • Open the EclipseFD.app bundle (Right click/Ctrl-click on EclipseFD -> Show Package Contents)
    • Navigate to Contents -> MacOS and edit the eclipse.ini file
    • Remove the line which begins -Xbootclasspath/p:../../../plugins/org.eclipse.jdt[…]
    • Save this file.

Caveat: This will disable JDT (normal Java) debugging within Eclipse. For this functionality, use the original Eclipse.app bundle.

Issue Details

Type: Technote
Issue Number: FDS-92
Components: Breakpoints
Environment:
Resolution: Fixed
Added: 14/06/2007 13:12:16
Affects Version: 1.0
Fixed Version: 2.0
Server: ColdFusion 8, ColdFusion 6, ColdFusion 7
Platform: MacOS
Related Issues:
  • FDS-51 – Mac OS X: Lingon or Terminal started CF; FusionDebug reports “Cannot connect to target system”
  • FDS-80 – FusionDebug could not connect to the target system (Localhost:8000). Please ensure the debug agent is listening on the system, check you configuration file – Mac OS X

[FDS-51] Mac OS X: Lingon or Terminal started CF; FusionDebug reports “Cannot connect to target system”

Description

If you are using a standard Eclipse install, or the FusionDebug standalone bundled IDE, but not Flex Builder, carry out procedure FDS – 92 linked below.

If this does not rectify the problem, you may need to alter the Lingon startup command for ColdFusion to include the Java options to enable debugging. The startup command should read as follows:

/System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Home/bin/java 
-server -Djava.compiler=NONE -Xnoagent -Xdebug 
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8777 
-Djava.awt.headless=true -jar /Applications/JRun4/lib/jrun.jar -start cfusion

N.b. this is all a single line. This Java configuration listens on port 8777 for debugging connections. Make sure your FusionDebug Debug Configuration within Eclipse reflects this in the connect tab.

Issue Details

Type: Technote
Issue Number: FDS-51
Components:
Environment:
Resolution: Fixed
Added: 18/05/2007 14:40:42
Affects Version: 2.0
Fixed Version: 2.0
Server:
Platform: MacOS
Related Issues:
  • FDS-92 – “FusionDebug could not connect to the target system” error on Mac OS X Eclipse.