Blog | FusionDebug - Part 5

[FDS-24] Can I use FusionDebug with a MultiServer configuration?

Description

FusionDebug can be used with a MultiServer configuration.

Since version 7 the ColdFusion Setup allows you to install ColdFusion as a SingleServer or MultiServer edition. The latter allows you to run multiple cfusion servers. Per default all these servers share the same JVM configuration (jvm.config) which will let you run into problems when you have added the debugging configuration parameters required by FusionDebug. As a result you will be able to run only one server at once. When you try to start another server it fails and you will see a message like the following in the logs:

09/22 14:27:32 error Exception thrown in operation start
[1]java.net.BindException: Port in use by another service or process: 8000
   at jrun.servlet.network.NetworkService.bindToSocket(NetworkService.java:337)
   at jrun.servlet.network.NetworkService.start(NetworkService.java:198)
   at jrun.servlet.http.WebService.start(WebService.java:73)
   ...

If you only temporarily add the FusionDebug configuration to jvm.config this might be not a problem for you. Just remove it once you finished debugging.

A better approach would be to use multiple jvm.config files – each one dedicated to one server. Adobe has published a technote that explains in detail how to do this.

On Windows platforms, if you add a new CFusion instance using the Enterprise Manager->Instance Manager page in the ColdFusion Administrator, the default settings will NOT create a dedicated windows service and therefor the newly created instance will use the same jvm.config file as the cfusion instance. When you try to debug this new instance with FusionDebug it will connect to the port already used by the cfusion instance – but the files you want to debug are served by the newly created instance, e.g. debugging will not work.

Issue Details

Type: Technote
Issue Number: FDS-24
Components: Configuration
Environment:
Resolution: Fixed
Added: 18/05/2007 14:01:07
Affects Version: 2.0
Fixed Version: 2.0
Server: Tomcat, JRun 4, ColdFusion 8, ColdFusion 6, ColdFusion 7, JBoss, WebSphere, WebLogic
Platform:
Related Issues:
  • FDS-20 – How do I modify my jvm.config file for debugging?
  • FDS-21 – After having configured jvm.config for debugging my server does not start any more!
  • FDS-4 – Why don’t my breakpoints fire?
  • FDS-93 – How do I configure FusionDebug to work with multiple servers or multiple instances?

[FDS-4] Why don’t my breakpoints fire?

Description

Open projects

Make sure all projects which you are working with are open within Eclipse. FusionDebug cannot trigger breakpoints on files contained within closed projects.

There are several other reasons that your breakpoints mighty not be firing:

Breakpoint is optimised away

When ColdFusion MX compiles pages prior to running them it may optimize away some lines which it considers unimportant (along with any breakpoints on those lines).

These include empty lines, comments or line which are only outputting HTML.

To ensure your breakpoint fires, place it on a line containing a CF statement. Please note that there are a couple of CF tags such as cfscript or cfreturn which can also be optimised away, resulting in breakpoints on these lines not firing.

FusionDebug 2.0.1 can reliably set breakpoints on many of these lines; consider upgrading to FD 2.0.1.

FusionDebug can’t find the source code

To be able to find and open a file being debugged or stepped, FusionDebug must be able to predict where the file is located on the server. This is done using the Source Code Lookup rules defined in the launch configuration dialog.

We have two support articles relating to configuring this information:

The following points should be borne in mind when setting up Source Code Lookup rules:

  • These rules must be accurate for breakpoints to fire
  • You can test the rule by entering it, setting a breakpoint in a file and connecting FusionDebug to the ColdFusion Server
    • The Server File text of the breakpoint in the Breakpoints View will reflect where FusionDebug expects to find the file on the server.
    • If it’s not correct, simply open the Source Code Lookup tab in the launch configuration and examine the rules for correctness.
  • When entering these rules, the CF Server Folder is the location of the file as seen by the server, not the client. Do not use the name of a share, for example. If you are on a Unix-like system, you must use absolute paths instead of symbolic links.
  • The checkbox “CF Server is on Windows” on the Conenct tab of the launch configuration must be set accurately. It need only be checked on Windows. All other platforms should leave it unchecked.

Your folder structure in Eclipse (from the project on down) must mirror that of the webserver from the folder that you have entered in the launch configuration. An exception to this is that FusionDebug will pick the most specific rule when it has a choice of rules.

Name conflict with CF tag

There are several CF tags which are implemented as internal cfm files. In order to stop you from stepping into these encrypted cfm files we filter them out by name. If your file happens to be named the same as one of these files then it will not appear in FusionDebug.

The excluded filenames are as follows:

AbortException.cfm ExpressionException.cfm
AbortMessageException.cfm FormValidationException.cfm
AccessControlException.cfm gettemplate.cfm
ApplicationException.cfm IllegalNumberFormatArgumentException.cfm
cache.cfm IllegalStructAccessException.cfm
CFMLValidationException.cfm IllegalTimeFormatArgumentException.cfm
ClassCastException.cfm LockException.cfm
classic.cfm MissingIncludeException.cfm
ComplexObjectException.cfm NoSuchFieldError.cfm
component.cfc NullPointerException.cfm
CustomException.cfm ObjectException.cfm
DatabaseException.cfm ParseException.cfm
detail.cfm savecontent.cfm
dockable.cfm TagInfoNotFoundException.cfm
dreamweaver.cfm TemplateException.cfm
dump.cfm TemplateNotFoundException.cfm
errorcontext.cfm trace.cfm
Exception.cfm

You are using a Multiserver installation of ColdFusion:

Since version 7, the ColdFusion Setup allows you to install ColdFusion as a SingleServer or MultiServer edition.

The latter allows you to run multiple cfusion servers. Per default all these servers share the same JVM configuration (jvm.config) which will let you run into problems when you have added the debugging configuration parameters required by FusionDebug.

We have a support article relating to configuring FusionDebug on MultiServer installations: FusionDebug on MultiServer Configurations

Issue Details

Type: Technote
Issue Number: FDS-4
Components: Breakpoints
Environment:
Resolution: Fixed
Added: 18/05/2007 13:15:32
Affects Version: 1.0
Fixed Version: 1.0
Server: ColdFusion 8, ColdFusion 6, ColdFusion 7
Platform: Solaris, MacOS, Linux, Windows 2003, Windows 2000, Windows XP
Related Issues:
  • FDS-100 – Breakpoints Don’t Fire: Setting Webserver Folder and Eclipse Project Structure
  • FDS-101 – Setting up a Debug Configuration in FusionDebug 1.0
  • FDS-24 – Can I use FusionDebug with a MultiServer configuration?
  • FDS-69 – Breakpoint fires in Application.cfm, but not in a Fusebox CFC.

[FDS-81] How do I install a license file (license.lic) into FusionDebug

Description

I had previously installed the trial version and now get the message saying “This version of FusionDebug has expired. Please install a valid license.”

To install a license file:

  • Open the Eclipse Menu Windows->Preference
  • Open on the FusionDebug Node
  • Click on the License Node to show the License Information Panel
  • Enter the location of the license.lic file in the License File Dialog
  • Click on the Install License button
  • To activate the license click on the Activate License button

You can also watch the video on installing licenses available from the following link: http://www.fusion-reactor.com/fd/captivates/?swf=automaticactivation

Issue Details

Type: Technote
Issue Number: FDS-81
Components:
Environment:
Resolution: Fixed
Added: 31/05/2007 18:07:39
Affects Version: 1.0
Fixed Version: 1.0
Server:
Platform:
Related Issues: None

[FDS-98] How do I debug a remote machine?

Description

Debugging a remote server is exactly the same as debugging a local server. Just remember that the path to the files on the server must be local to that machine, not shares. To get more information about setting up FusionDebug take a look at the new Training videos which are available from the website.

Issue Details

Type: Technote
Issue Number: FDS-98
Components:
Environment:
Resolution: Fixed
Added: 22/05/2007 11:00:24
Affects Version:
Fixed Version:
Server:
Platform:
Related Issues: None

[FDS-84] I do all my ColdFusion coding in DW8. How well does FusionDebug work with DreamWeaver 8?

Description

FusionDebug is implemented as an Eclipse plugin but you don’t have to use FusionDebug or Eclipse to edit pages, or change your development platform at all.

You can still develop with DW8 and jump into FusionDebug whenever you need to debug. FusionDebug is able to use your files from whatever software you used to create them; many of our users .

Eclipse is free, very easy to install and can be used in parallel to DW8. It is very simple to use and you require a minimum amount of knowledge to work the debugger which would be necessary no matter which platform you use.

As a side note, FusionDebug also integrates seamlessly with Adobe’s FlexBuilder product which is also based upon Eclipse and allows you to debug complete ColdFusion driven Flex Projects without having to leave FlexBuilder.

Further Information:

About FusionDebug
Eclipse
CFEclipse

Issue Details

Type: Technote
Issue Number: FDS-84
Components:
Environment:
Resolution: Fixed
Added: 01/06/2007 14:58:09
Affects Version: 1.0
Fixed Version: 1.0
Server: ColdFusion 8, ColdFusion 6, ColdFusion 7
Platform:
Related Issues: None

[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

Description

Error

FusionDebug could not connect to the target system (Localhost:8000). Please ensure the debug agent is listening on the system, check you configuration file.

Please follow the procedure given in the FDS – 92 linked below.

Consider the following points when installing:

  • Make sure the Eclipse.ini file within the copied Eclipse.app bundle is correct (i.e. has the given line removed)?
  • Make sure you’re running the copied bundle, not the original one
  • Make sure you have modified your JRun jvm.config file to include the debug agent settings, as outlined in the FusionDebug user manual:

Issue Details

Type: Technote
Issue Number: FDS-80
Components:
Environment:
Resolution: Fixed
Added: 31/05/2007 16:54:18
Affects Version: 1.0
Fixed Version: 1.0
Server:
Platform: MacOS
Related Issues:
  • FDS-20 – How do I modify my jvm.config file for debugging?
  • FDS-21 – After having configured jvm.config for debugging my server does not start any more!
  • FDS-92 – “FusionDebug could not connect to the target system” error on Mac OS X Eclipse.

[FDS-77] Can I set breakpoints on pages that are in a virtual directory?

Description

FusionDebug can create breakpoints in any ColdFusion page, tag, component, module, webservice etc, in any folder on your server.

You must create a FusionDebug Launch Configuration that maps the files in your Eclipse or FusionDebug project(s) to where you actually place the code on the server. Each mapping describes where code is distributed to on the ColdFusion server machine and allows FusionDebug to work out the file actual place a breakpoint needs to be set on the server that runs the code.

For further information please read the article on Source Code Lookup

Issue Details

Type: Technote
Issue Number: FDS-77
Components: Breakpoints
Environment:
Resolution: Fixed
Added: 31/05/2007 12:08:36
Affects Version: 1.0
Fixed Version: 2.0
Server: ColdFusion 8, ColdFusion 6, ColdFusion 7
Platform:
Related Issues: None

[FDS-73] Is it possible to step CFML through code line by line to see what is going on?

Description

FusionDebug is an interactive ColdFusion debugger and does indeed let you step through each line of code and step into CF components, functions, tags and includes. You can see exactly where you are in the code and can examine every variable, scope etc.

Take a look at the Captivates on this page to see what is possible:

http://www.fusion-reactor.com/fd/gettingstarted.cfm

Issue Details

Type: Technote
Issue Number: FDS-73
Components:
Environment:
Resolution: Fixed
Added: 30/05/2007 16:59:11
Affects Version: 1.0
Fixed Version: 1.0
Server: ColdFusion 8, ColdFusion 6, ColdFusion 7
Platform: Solaris, Linux, Windows 2003, Windows 2000, Windows XP
Related Issues: None

[FDS-71] How do I debug on a remote computer?

Description

The steps for remote debugging are as follows:

  • Install FusionDebug plugin into Eclipse
  • Update the jvm.config file on the remote computer to add debugging options
    (or use the Server Configuration Wizard on the remote computer)
  • Create a debugging profile for FusionDebug
    (A captivate training video explaining this is available from
    http://www.fusion-reactor.com/fd/gettingstarted.cfm)
  • Add a breakpoint to your file.
  • Launch the debugger and step through your code.

Note: The webserver folder must be an absolute file path from the root of your remote server and the port should be that entered in your jvm.config file.

For more detailed information on this, please refer to the following User Guide;
http://www.fusion-reactor.com/fd/helpdocs/fusiondebug_user_guide.pdf

Issue Details

Type: Technote
Issue Number: FDS-71
Components:
Environment:
Resolution: Fixed
Added: 30/05/2007 14:53:03
Affects Version: 2.0
Fixed Version: 2.0
Server: ColdFusion 6, ColdFusion 7
Platform: Solaris, Linux, Windows 2003, Windows 2000, Windows XP
Related Issues:
  • FDS-20 – How do I modify my jvm.config file for debugging?
  • FDS-21 – After having configured jvm.config for debugging my server does not start any more!

[FDS-52] What ColdFusion versions and client platforms are supported by FusionDebug?

Description

FusionDebug is supported to debug against the following ColdFusion versions:

  • ColdFusion 6.1
  • ColdFusion 7 (All versions)
  • ColdFusion 8

Standalone, J2EE and multiserver installs are all supported.

FusionDebug as a client is supported by installers on the following platforms:

  • Microsoft Windows 2000/XP/Vista
  • Mac OS X 10.4.9
  • Linux

Additionally, it may be possible to install on other platforms using the FusionDebug Eclipse Update Site, available from here.

If you are using an already-installed Eclipse installation, we also provide plugin installers (see link above). Eclipse is supported from revision 3.2.2 onwards.

Issue Details

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