Sunday, March 21, 2010    
Home My Books Blog ColdFusion About Me Back    

Calendar
<< May 2007 >>
S M T W T F S
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Search

Categories
 • Acrobat (3) [RSS]
 • Adobe (90) [RSS]
 • AdobeMAX06 (45) [RSS]
 • AdobeMAX07 (59) [RSS]
 • AdobeMAX08 (66) [RSS]
 • AdobeMAX09 (39) [RSS]
 • AdobeMAX10 (1) [RSS]
 • AIR (219) [RSS]
 • Appearances (191) [RSS]
 • Books (72) [RSS]
 • CFEclipse (15) [RSS]
 • ColdFusion (1381) [RSS]
 • Data Services (34) [RSS]
 • Fish Tank (5) [RSS]
 • Flash (197) [RSS]
 • Flex (498) [RSS]
 • Home Automation (5) [RSS]
 • Jobs (116) [RSS]
 • JRun (14) [RSS]
 • Labs (43) [RSS]
 • LiveCycle (34) [RSS]
 • MAX (232) [RSS]
 • Mobile (120) [RSS]
 • Regular Expressions (17) [RSS]
 • RIA (21) [RSS]
 • SQL (40) [RSS]
 • Stuff (536) [RSS]
 • Tips (CF Studio) (80) [RSS]
 • Tips (CF) (795) [RSS]
 • Tips (Dreamweaver) (91) [RSS]
 • Tips (Flex Builder) (2) [RSS]
 • Using CF (162) [RSS]

Other BLOGs
 • Charlie Arehart
 • Lee Brimelow
 • Ray Camden
 • Christophe Coenraets
 • Sean Corfield
 • Mihai Corlan
 • Cornel Creanga
 • Mark Doherty
 • John Dowdell
 • Danny Dura
 • Enrique Duvos
 • Steven Erat
 • Kevin Hoyt
 • Serge Jespers
 • Adam Lehman
 • Duane Nickull
 • Miti Pricope
 • Andrew Shorten
 • Ryan Stewart
 • James Ward
 • Greg Wilson
 • Full As A Goog

RSS Feeds
 • Feed
 • Subscribe

Join my mailing list and find out about new books and other topics of interest.

Thoughts, ideas, tips, musings, and pontifications (not necessarily in that order) by Ben Forta ...
NOTE: This is my personal blog, and the opinions and statements voiced here are my own.

Viewing By Entry / Main
May 30, 2007

Getting Started With The ColdFusion Debugger

After a 7 year hiatus, ColdFusion once again has an interactive debugger, and this time it is built on top of Eclipse (and uses the same debugging interface as Flex Builder, and other Eclipse plug-ins). If you are interested in taking the debugger for a spin, here's what you need to know to get started:

First of all, you need ColdFusion 8. If you don't have it yet, get it!

You'll also need the ColdFusion 8 Eclipse extensions, and these must be installed (here is some installation help).

Before you can use the interactive debugger you need to enable debugging support in ColdFusion. Here's what you need to do:

  1. Open the ColdFusion Administrator.
  2. Select "Debugger Settings" in the "Debugging & Logging" section.
  3. Check "Allow Line Debugging".
  4. The debugger needs a port to communicate over, if you can't use the default change it (just be sure to use an unused port, and you can't use the port that ColdFusion itself is on).
  5. By default ColdFusion allows up to 5 concurrent debugging sessions, you can raise or lower this value as needed.
  6. Click "Submit Changes", and restart ColdFusion is you are instructed to do so.

Once you enable line debugging it will remain enabled even if ColdFusion is restarted. As a rule, do not enable line debugging on production servers, and you may want to always leave it enabled on development boxes.

Now that debugging is enabled, you need to configure Eclipse to tell it what ColdFusion server to debug against. Servers need to only be defined once, and once defined you may debug against them as needed. You can define as many servers as you need, local and remote, as long as the server has RDS enabled (and you have an RDS login).

The first thing you need to do in Eclipse is define the RDS settings for your ColdFusion server. These settings are used by the debugger, as well as the wizards, RDS panels, and more. To define your RDS connection do the following:

  1. In Eclipse, select Window->Preferences to display the Preferences dialog.
  2. Select ColdFusion in the tree, expand the selection, and select RDS Configuration.
  3. Click New to add a new server, or just select any server to edit it.
  4. Provide a description, host name, port, and login details, and then save. To use your local ColdFusion server specify 127.0.0.1 as the Host Name, 8500 as the Port (if using the integrated HTTP server), leave the Context Root blank, and provide the login information.
  5. Click "Test Connection" to make sure the RDS connection is working, and the click OK.

Once the RDS connection is defined you'll be able to browse data sources in the RDS Dataview tab, view available CFCs in the Services Browser tab, use the wizards, and more. And you'll be able to debug applications, but first ...

Now that your RDS connection is defined, you need to define the ColdFusion servers you wish to debug against. Here is what you need to do:

  1. Locate the Debug button in the toolbar, it's the one with the little green bug on it.
  2. Don't click the button, instead, click the down arrow to the right of it and select "Debug ..." to display the Debug dialog which is used to manage debugging configurations.
  3. The Eclipse debugger is used to debug all sorts of applications created in all sorts of languages, and along the left of the dialog you'll see a list of applications types that can be debugged. Select "ColdFusion Application".
  4. You'll see any defined ColdFusion debugging servers under the "ColdFusion Application" branch. To add a ColdFusion server click the New button (the leftmost one above the list) while you have "ColdFusion Application" selected.
  5. Name this server, and then select the RDS server to use from the drop down list.
  6. If you are debugging against a local server (running on the same machine as Eclipse) you can ignore the mappings section. If ColdFusion is on a remote server then you'll need to define mappings here.
  7. Click "Apply" to save your changes.

Again, servers need to be defined once, and they'll be saved for future use.

To debug your code you can do the following:

  1. Open the ColdFusion file to be debugged in Eclipse.
  2. Set breakpoints as needed by double clicking to the left of the desired line in the vertical bar to the left of the Eclipse editor window. You'll see a little circle appear indicating that a breakpoint has been set. You can also right click in the vertical bar and select "Toggle Breakpoint".
  3. Now you need to switch to the Eclipse Debug view (called a "Perspective" in Eclipsese). If you see a Debug button listed with the Perspectives on the top right of Eclipse, click it. Or, just click the Open Perspective button (or select Windows->Open Perspective) and select "Debug".
  4. Once you are in the Debug perspective start the debugging session. To do this, go back to the dialog where you defined the ColdFusion server (under the Debug button), select the ColdFusion server to debug against, and click the Debug button at the bottom of the dialog.
  5. Eclipse will pause while it opens a debug session, connecting to the specified ColdFusion server. You'll see the connection show up in the Debug window.
  6. Now just open any browser and run your application. When you request a page with a breakpoint, execution will pause, and the debugger will pop up. You'll be able to step through code, view variables and expressions (in the top right panel), see generated server output, and more.
  7. When you are done debugging, you can terminate the debug session by clicking the red square Terminate button.

And that'll do it. I know this seems complex and a lot of work, but the bulk of it is initial setup. Once that setup is complete you'll be able to quickly and easily fire up the debugger on demand and when needed.

Related Blog Entries

TrackBacks
There are no trackbacks for this entry.

No trackback URL. Trackbacks are only allowed via interactive form.

Comments
My RDS is working, but when running debugging (Test connection is successful), the following error occurred.

--------------------------------
Unable to connect to the RDS server 'localhost'.
Ensure that the server is currently running and that line debugging and RDS are enabled.
You may also need to check your RDS connection settings in Eclipse to ensure that they are correct.

Error Message:

String index out of range: -2
--------------------------------

Server: CF 8.0.1 with IIS
# Posted By john85 | 8/17/09 11:08 AM
I had this problem. I decided as follows: I opened the file “C: \ Windows \ System32 \ drivers \ etc \ hosts” and changed to: 127.0.0.1 localhost
# Posted By Ricarte Jr | 10/17/09 10:31 AM
I had this problem. I decided as follows: I opened the file “C: \ Windows \ System32 \ drivers \ etc \ hosts” and changed to: 127.0.0.1 localhost
# Posted By Ricarte Jr | 10/17/09 10:31 AM
I have the same problem. I am trying to connect to a remote server and sure about the connection details and I get the same error
# Posted By Goutham | 1/14/10 6:33 PM

  © Copyright 1997-2009 Ben Forta, All Rights Reserved