[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.