Step Through Your CFML Code With FusionDebug

1 / 19
About This Presentation
Title:

Step Through Your CFML Code With FusionDebug

Description:

Title: Step through your CFML code with FusionDebug Author: charlie arehart Last modified by: charlie arehart Created Date: 9/5/2006 8:57:28 PM Document presentation ... – PowerPoint PPT presentation

Number of Views:9
Avg rating:3.0/5.0
Slides: 20
Provided by: charliea150

less

Transcript and Presenter's Notes

Title: Step Through Your CFML Code With FusionDebug


1
Step Through Your CFML Code With FusionDebug
  • Charlie Arehartcharlie_at_carehart.org

2
Topics
  • Introduction to Step Debugging
  • FusionDebug Features
  • FusionDebug Demo
  • Benefits Over CFDUMP/CFOUTPUT
  • Other Features, Learning More, Gotchas, Pricing,
    FAQs, etc.

3
About Your Speaker
  • Independent consultant since Sept 2006
  • Formerly CTO, New Atlanta (BlueDragon)
  • 9 yrs CF experience (24 in Enterprise IT)
  • Member, Adobe Community Experts
  • Co-author, ColdFusion MX Bible (Wiley)
  • Frequent contrib. to ColdFusion Dev Journal
  • Past accomplishments of note
  • Tech Editor, CFDJ (2001-2003)
  • Certified Adv CF Developer (4, 5, MX), Instructor
  • President, Atlanta ColdFusion User Group
  • Frequent speaker UGs, confs worldwide
  • New web home at www.carehart.org
  • Hosts my blog lists all my past articles,
    presentations
  • Home of UGTV recordings of dozens of CFUG
    speakers

4
Introduction to Step Debugging
  • Understanding interactive debugging
  • What can it do for you?
  • Step through code line-by-line (where needed)
  • View variables, in all scopes, at that point
  • Watch particular expressions, to observe changes
  • Even change variables on the fly during execution
  • And more
  • Past debugging solutions (CF4, 5)
  • No current or discussed plans for CFMX
  • FusionDebug from Intergral
  • CFML step debugging for CFMX 6.1/7

5
About FusionDebug
  • Is an Eclipse (3.1, 3.2) plug-in
  • You dont NEED to use Eclipse for editing
  • Can continue to edit in DWMX, CF Studio,
    HomeSite, etc.
  • You do need to download Eclipse (free, easy)
  • Unless you already have Flex Builder or
    CFEclipse, which are also Eclipse plug-ins
  • Why did they build it atop Eclipse?
  • It had Java debugging in it already, so Intergral
    could leverage that and add their value in
    translating that to CFML.
  • Easy to install Eclipse, FusionDebug
  • Requires just a minor change in JVM config for
    CFMX server
  • Add a couple JVM entries, name a port for
    debugger to listen on
  • You then do a minor setup in Eclipse to enable
    debugging against that server
  • All of the above is well-documented in the
    FusionDebug User Guide, free online

6
FusionDebug Demo
  • Lets see it in action

7
Demoed Features
  • Enabled debugging, stepping through code
  • Enabled watches and setting variables
  • can do with right-click on var/expression
  • Showed simple cf code (CF Example Apps)
  • Set variables on the fly
  • Showed query data in variables pane
  • Showed CFC-based code (Model Glue)
  • Showed scopes available in CFC methods
  • var and this scopes
  • Showed how stack is interactive
  • click to jump to lines in chain above current
    instruction
  • Showed debugging web service code
  • Showed debugging Flex apps

8
Other Features
  • Yes, it can debug code within CFSCRIPT
  • And yes, it can debug code within tags like
    CFOUTPUT, CFMAIL, CFSAVECONTENT, etc.
  • You dont need to step through every page to get
    to a point deep in a series of pages
  • Can just set breakpoint in desired file and
    request whatever page
  • FlexBuilder and FusionDebug
  • Can work alongside the Flex Debugger to debug any
    ColdFusion (.cfc) code being used within a Flex
    project
  • Debugging perspectives switch automatically
    between debugging Flex and CFML
  • Again, can debug CFCs called from Flex even
    without using FlexBuilder

9
Benefits Over CFDUMP/CFOUTPUT
  • Can debug when a CFOUTPUT/CFDUMP may not be
    possible
  • What are some examples?
  • CFCOMPONENT/CFFUNCTION OUTPUTfalse
  • CFSILENT
  • When generating XML
  • What other tags may help in the above cases?
  • Can debug without having to rely on finding the
    output of CFLOG or CFTRACE (or enabling the
    latter)
  • Can debug without needing to change code
  • Can debug requests from Flex, Ajax, Flash
    Remoting, web services, or CF7 gateways
  • Can debug when someone besides the developer is
    calling a template
  • Can debug against production
  • Can debug on remote machine

10
Benefits Over CFDUMP/CFOUTPUT (cont.)
  • Can change the value of variables on the fly
    during execution
  • Can debug in situations where a simple
    CFOUTPUT/CFDUMP would not suffice (powerful
    Variables, Expressions panes)
  • Can use the debugger to understand the flow of
    execution of the request (help newcomers to your
    code, or to CFML in general)
  • Can debug in situations where you don't even know
    where in a complex app to try to do CFOUTPUT or
    CFDUMP

11
Benefits Over CFDUMP/CFOUTPUT (cont.)
  • Can view call stack during execution
  • Can view the Java classes called to execute your
    code
  • See http//www.fusion-reactor.com/fusiondebug/supp
    ort.htmlconfig2
  • See more details on all these at
  • http//carehart.org/blog/client/index.cfm/2006/9/7
    /fusiondebug_part2_why_use_versus_cfdump
  • And thats not even all of them
  • See more at http//www.fusion-reactor.com/fusionde
    bug/about.html

12
Tips and traps
  • Impact of debugging being configured in server
  • garbage collection impacted by change made in
    jvm.config
  • Favor Step Over versus Step Into, when on
    tags/functions that dont open files
  • Watch for Stepping in the Stack Trace
  • Just means its working
  • No way to see output being generated, currently
  • CFLOCK and CFTRANSACTION tag impact
  • Be careful holding breakpoint within these for
    too long (impacts other users in other pages)
  • More at
  • http//carehart.org/blog/client/index.cfm/2006/10/
    2/fusiondebug_part4_tips_and_traps

13
Troubleshooting
  • If a runtime error occurs, FD will also seem to
    stop (but error has been sent to the browser)
  • If debugging just stops, CFMX admins request
    timeout may be terminating the page
  • See Admin Timeout Requests after x seconds
  • This is disabled by default in 6.1, enabled by
    default in 7
  • If you see no CIP moving with debugging
  • be sure to open a file (or associate debug
    session source code properties) from an Eclipse
    project, not from the filesystem (see docs for
    steps)
  • If breakpoints fail to fire as expected
  • See http//www.fusion-reactor.com/fusiondebug/supp
    ort.htmlbreakpoints4

14
Learning More
  • Documentation (very good) available online
  • www.Fusiondebug.com
  • User guide walks through configuration of the CF
    Server, Eclipse, and use of FusionDebug
  • Several Captivate demos
  • Available CFML templates to test with
  • Great to get started, to work through initial
    introductory features and challenges
  • Rather than jumping into the middle of debugging
    a big app as your first test
  • Ive done a series of blog entries on it
  • http//carehart.org/blog/client/index.cfm/fusionde
    bug
  • And have upcoming articles in CFDJ, FAQU

15
Pricing, Discounts, Trials
  • List price US 299
  • Available 10 discount code CFCOMMUNITY
  • Special 20 discount code through Oct 2006
    GOT2DEBUG
  • Priced per seat, available volume discounts
  • Newly announced Community (Non-commercial)
    edition, 99
  • More details at
  • http//www.fusion-reactor.com/fusiondebug/buy.html
  • Available free trial (20 days)
  • Ive arranged 2 licenses to give away tonight

16
FAQs
  • Why isnt Adobe doing this?
  • Should they allocate limited development dollars
    to add this, or other cooler features that only
    they can do? And if they did, would it be free?
  • Does FusionDebug work with BlueDragon?
  • Not currently. They are in talks
  • But you could install free Dev edition of CFMX
    and debug against that
  • Does it work with CF4 or 5?
  • No, it is specific to CFMX
  • Can it work without Eclipse?
  • No, it is specific to Eclipse
  • Must I use/learn how to use Eclipse?
  • Nothing more than what Ive shown here, really
  • Must I use/learn how to use CFEclipse?
  • No, FusionDebug is not connected to CFEclipse
  • You can use your favorite CFML editor to edit
  • Just use FD to do debugging

17
FAQs
  • Does it support debugging Javascript?
    Actionscript? Java?
  • No, thats left to others.
  • Eclipse already can debug Java, and FlexBuilder
    can debug ActionScript. Other tools offer
    Javascript debugging inside Eclipse
  • JavaScript Eclipse Debugger Plug-in
    http//www.myeclipseide.com/ContentExpress-display
    -ceid-70.htmljsdebug
  • ActionScript debugging in FlexBuilder
    http//livedocs.macromedia.com/flex/1/flex_builder
    _en/wwhelp/wwhimpl/common/html/wwhelp.htm?context
    Using_Flex_Builderfilebrady318.htm
  • How do I get support?
  • Intergral offers free email support
    support_at_fusion-reactor.com

18
Conclusion
  • Great solution, finally, for CFML debugging
  • Sure, it costs money, but will pay for itself if
    youll benefit from debugging
  • While there are some debugging naysayers, to each
    his own
  • Try it for yourself and see if it doesnt help
  • The challenge is simply remembering to use it!
  • Intergral support has been great
  • Available free support at support_at_fusion-reactor.c
    om
  • Very interested in supporting community

19
Questions on presentation
  • Charlie Arehart
  • charlie_at_carehart.org
  • Id really appreciate your feedback
  • http//carehart.org/feedback
  • Also available for setup and implementation
    consulting
  • As well as other developer productivity coaching,
    system admin and tuning support, and more
  • Remote or on-site
  • Giveaway of 2 licenses
Write a Comment
User Comments (0)