Presentation is loading. Please wait.

Presentation is loading. Please wait.

Step Through Your CFML Code With FusionDebug Charlie Arehart

Similar presentations


Presentation on theme: "Step Through Your CFML Code With FusionDebug Charlie Arehart"— Presentation transcript:

1 Step Through Your CFML Code With FusionDebug Charlie Arehart charlie@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 OUTPUT=false 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/support.html#config2 See more details on all these at: http://carehart.org/blog/client/index.cfm/2006/9/7/f usiondebug_part2_why_use_versus_cfdump And thats not even all of them See more at http://www.fusion- reactor.com/fusiondebug/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/fusio ndebug_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/support.html#breakpoints4

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/fusiondebug 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.html#jsdebug ActionScript debugging in FlexBuilder: http://livedocs.macromedia.com/flex/1/flex_builder_en/wwhelp/wwhim pl/common/html/wwhelp.htm?context=Using_Flex_Builder&file=brady3 18.htm How do I get support? Intergral offers free email support: support@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@fusion- reactor.com Very interested in supporting community

19 Questions on presentation Charlie Arehart charlie@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


Download ppt "Step Through Your CFML Code With FusionDebug Charlie Arehart"

Similar presentations


Ads by Google