1 / 19

Step Through Your CFML Code With FusionDebug

Step Through Your CFML Code With FusionDebug. Charlie Arehart charlie@carehart.org. Topics. Introduction to Step Debugging FusionDebug Features FusionDebug Demo Benefits Over CFDUMP/CFOUTPUT Other Features, Learning More, Gotchas, Pricing, FAQs, etc. About Your Speaker.

kemp
Download Presentation

Step Through Your CFML Code With FusionDebug

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Step Through Your CFML Code With FusionDebug Charlie Arehartcharlie@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, conf’s 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 don’t 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 • Let’s 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 don’t 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/fusiondebug_part2_why_use_versus_cfdump • And that’s 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 don’t open files • Watch for “Stepping” in the Stack Trace • Just means it’s 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 admin’s “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 • I’ve 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) • I’ve arranged 2 licenses to give away tonight

  16. FAQs • Why isn’t 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 I’ve 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, that’s 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/wwhimpl/common/html/wwhelp.htm?context=Using_Flex_Builder&file=brady318.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 you’ll benefit from debugging • While there are some debugging naysayers, to each his own • Try it for yourself and see if it doesn’t 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 • I’d 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

More Related