Step Through Your CFML Code With FusionDebug

1 / 20
About This Presentation
Title:

Step Through Your CFML Code With FusionDebug

Description:

Other Features, Learning More, Gotchas, Pricing, ... 9 yrs CF experience (24 in Enterprise IT) Member, Adobe Community Experts ... Do need to download Eclipse ... – PowerPoint PPT presentation

Number of Views:61
Avg rating:3.0/5.0

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
  • President, Atlanta ColdFusion User Group
  • Past accomplishments of note
  • Tech Editor, CFDJ (2001-2003)
  • Certified Adv CF Developer (4, 5, MX), Instructor
  • Frequent speaker UGs, confs worldwide

4
Introduction to Step Debugging
  • Understanding interactive debugging
  • What can it do for you?
  • 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.
  • Do need to download Eclipse
  • or use with Flex Builder, which is Eclipse or
    CFEclipse if you have it installed already
  • 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 Features
  • Can step through code, including tags, functions,
    CFCs, includes, custom tags, and so on
  • As well as stepping through a page, you can also
    Step Into (or out of) sub tags, CFC calls and
    function calls
  • Can list all variable and scopes
  • View all scopes available to your page and view
    anything stored within. See values change as you
    step through page
  • Expression Watcher
  • Create arbitrary expressions, from simply
    outputting a variable to showing the result of an
    if condition and the Expression Watcher will
    dynamically evaluate them
  • Query Support
  • Open queries to see row data, column names and
    data types. Also, when looping through a query
    the Current Query feature lets you know exactly
    which row youre on

7
FusionDebug Demo
  • Lets see it in action

8
Demo 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

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, or as web
    service
  • Can debug when someone besides the developer is
    calling a template
  • Can debug against production
  • Can debug on remote machine
  • Can change the value of variables on the fly
    during execution

10
Benefits Over CFDUMP/CFOUTPUT
  • 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
  • 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
  • And thats not even all of them

12
Other Features
  • Flex 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
  • Can also debug CFCs called from Flex even without
    using FlexBuilder
  • Can debug CFCs called from Flex, Flash Remoting,
    Ajax, web services, or CFMX gateways (SMS, event,
    etc.) as they call CFCs

13
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 started a series of blog entries on it
  • http//carehart.org/blog/client/index.cfm/fusionde
    bug

14
Gotchas Using FD
  • Breakpoints remain alive for any user (not just
    debugging developer) if debug session active
  • If any user runs the requestthey will see page
    hang
  • Only developer with FD open sees its stopped on
    line
  • This is unlike CF4/5 debugging, so be aware
  • Can use skip all breakpoints option to
    temporarily disable in multi-user environments
  • Be careful holding breakpoint within CFLOCK or
    CFTRANSACTION tags for too long (impacts other
    users in other pages)
  • Can set breakpoint on non-CFML or blank line, but
    wont fire
  • May not fire if on CFSCRIPT or CFRETURN and in
    some other instances
  • See http//www.fusion-reactor.com/fusiondebug/sup
    port.htmlbreakpoints4
  • Can try to set variable for query column but
    wont take
  • When setting variable that can be evaled as
    expression (555-0002), will do math
  • so surround it in quotes to coerce as string

15
Gotchas FD Setup
  • FD has only minor impact when debugging not
    active, due to changes made in jvm.config
  • So can run in production, but perhaps should
    think twice
  • When setting port in Debug settings, it should be
    that for FD, not the web server serving CFML
    pages
  • If using FusionReactor (Intergrals CF monitor
    tool), should disable crash protection feature
  • If you CFEclipse and dont see line pointer
    highlighted, can configure that
  • See http//www.fusion-reactor.com/fusiondebug/supp
    ort.htmlcfeclipse2
  • Firewalls or port restrictions can get in the way
    sometimes

16
Troubleshooting
  • If you see no CIP moving with debugging
  • be sure to associate debug session source code
    properties with a project, not the filesystem
    (see docs for steps)
  • If debugging just stops, you may have the CFMX
    page request timeout thats killing the page
  • See Admin Timeout Requests after x seconds
  • This is disabled by default in 6.1, enabled by
    default in 7
  • If a runtime error occurs, FD will also seem to
    stop (but error has been sent to the browser)
  • A few others listed in docs (above items are not,
    currently)

17
Pricing, Discounts, Trials
  • List price US 299
  • Available 10 Discount Code CFCOMMUNITY
  • Priced per seat, available volume discounts
  • Available free trial (20 days)
  • Ive arranged 2 licenses to give away tonight

18
FAQs
  • 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
  • How do I get support?
  • Intergral offers free email support
    support_at_fusion-reactor.com
  • Whats with the name/spelling Intergral? ?
  • Formed from Internet and Integration

19
Conclusion
  • Great solution, finally, for CFML debugging
  • Sure, it costs money, but will pay for itself if
    youll benefit from debugging
  • Some debugging naysayers. To each his own
  • Intergral support has been great
  • Available free support at support_at_fusion-reactor.c
    om
  • Very interested in supporting community

20
Questions on presentation
  • Charlie Arehart
  • charlie_at_carehart.org
  • 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
Write a Comment
User Comments (0)