Debugging and testing swallow up to 75 percent of the total development cost of a software project according to recent industry studies.
FusionDebug makes debugging ColdFusion applications faster, easier and more effective, lowering your total development costs, improving quality and allowing developers to focus on making great software.
As one of the most significant ColdFusion MX add-ons available, FusionDebug defines the state of the art for ColdFusion debugging, helping you secure your investment in ColdFusion.
Key Business Benefits
Productivity:
The complexity and scope of ColdFusion has increased greatly over the past decade, but advances in CFMX debugging have been only moderate at best. ColdFusion debugging is a labor-intensive struggle using painful, expensive and time consuming methods such as inserting output and data dumps at numerous places in the code.
Such debugging methods have been long since superseded in almost every modern programming language by powerful interactive (stepping) debuggers. Interactive debuggers like FusionDebug make the debugging process far easier and faster, to the point where the lack of such a debugger can sway the decision to use that language.
Quality:
FusionDebug can improve quality in many ways. QA can examine code and perform code walk throughs by running final code. Developers no longer need to remove often-forgotten debug output statements or perform retesting as a result of changing their code. Indeed, programs often get the right result but still contain bugs; now CF developers can also witness the behavior of code they write!
Skills:
FusionDebug helps you to become highly skilled at CF debugging. People often do not know how or where to put debugging information. FusionDebug holds your hand as you step through code, letting you "see" how your code behaves, flattening your learning curve while improving quality and, above all, your understanding.
Testing:
FusionDebug can aid your testing. Testing a complete application and its components will almost certainly turn up unexpected behavior such as wrong return codes or abnormal page termination. Testing will bring these problems to light, but you also need to debug to find them and fix them. FusionDebug can radically shorten debug-test cycles.
Training:
FusionDebug accelerates learning both ColdFusion and existing CF applications. New people can directly see how CF or an application written in CF works, and learn by seeing the results as they are guided through code.
Efficiency:
Creating debugging environments for ColdFusion-driven Flex, Ajax, Web Service and Flash Remoting applications can be time consuming, difficult, expensive, and unnecessary. FusionDebug will let you debug any kind of ColdFusion application, saving time and money, and increasing your efficiency.
IT Alignment:
Developers familiar with other languages have come to expect interactive debugging as part of the standard language toolset. Flex developers, for example, have an interactive debugger in Adobe FlexBuilder: it's one of the key features of Adobe's FlexBuilder 2 product. FusionDebug integrates seamlessly into FlexBuilder 2 and many other Eclipse-based development environments, allowing developers to debug an entire application, including any ColdFusion code, without ever leaving the development platform.
Key Technical Benefits
No Code Changes:
CF debugging currently means adding debug statements. This is tedious and can lead to embarrassing debug output being left in your production code. In many cases code cannot be changed without affecting the way it works and must be retested after the debugging statements have been removed. There are often times when you simply CAN'T change code to insert debugging output statements, for example when you don't have write access to the code! FusionDebug does not require that you edit the code, saving you time, improving quality and letting you debug even when code changes are not possible.
Beyond CFOUTPUT/CFDUMP:
FusionDebug will let you debug all of your CF code. There are many places in CF code where CFOUTPUT and CFDUMP simply cannot be used, for example inside CFSILENT, inside CFCOMPONENTs and CFFUNCTIONs when the output attribute is set to false, or when generating XML, PDF, image or many other content types. CFOUTPUT and CFDUMP are also very limited in what they can show you. FusionDebug lets you examine every scope, variable and expression at any point in you code without code changes and the associated recompiling and rerunning.
Debug Flex, Ajax, Web Service and Flash Remoting requests easily:
FusionDebug can be used to debug requests from Flex, Ajax, Web Services and Flash Remoting. FusionDebug can intercept a call from any kind of client that makes a request to a ColdFusion page or CFC.
Change variable values on-the-fly:
The value of variables can be changed on-the-fly, in running code, and can immediately influence the behavior of your application. This has many uses, including testing the flow of code during development without setting up complex test cases.
Debug requests from any user:
FusionDebug is NOT limited to only debugging what you as a developer can browse yourself. FusionDebug can intercept and show you the step-by-step execution of any template or CFC (or custom tag, or included file) run by anyone. This allows, for example, a customer to recreate their own case in their own browser, while you place breakpoints to isolate the problem.
Debug remote and production systems transparently:
Often the challenges you face are ones that you can't recreate in your development environment. FusionDebug will let you debug a remote server (production) with the real end user running the exact request causing the problem you want to debug. What's more, production systems normally cannot be altered with intrusive output and dump statements: FusionDebug lets you gain valuable insight into real production problems without the necessity of recreating the same environment in test.
Understand the execution flow of requests:
FusionDebug gives you a clear visual representation of the flow of a request. Like us, you've probably looked through some code and wondered which part of an IF clause executed, or how many times a loop iterated, or indeed if your page included a file, custom tag, or used a method in a CFC. Using FusionDebug stepping, you can instantly see the flow of execution for any request.
Debug complex applications:
FusionDebug lets you see inside complex applications and frameworks. It's common for complex applications and frameworks to access hundreds of files during a request. It can be very difficult to interpret debug logs from such large applications, so FusionDebug allows you to create a breakpoint at the exact point in the code that you want to debug and let you take control.
Debug code which uses Duck Typing:
"Duck" or Dynamic typing is a popular way to write CF code, but it can be difficult to debug due to its dynamic nature. FusionDebug lets you stop the code and examine exactly which CFCs are being used.
Easily find deadlock issues:
CFLOCK, CFTRANSACTION and many other CF tags can lead concurrency issues. Using FusionDebug, it's easier to shed light on these difficult issues. In fact, every page is a thread, and we can easily forget that pages can interfere with each other. With FusionDebug you can stop multiple pages running in parallel, helping to locate and eliminate deadlock conditions.
Introspect CFCs dynamically:
FusionDebug lets you see inside CFCs and the entire inheritance tree. CFCs can be pretty complex to debug; and with lots of inheritance it's very hard to understand exactly what is being called where. With FusionDebug's dynamic introspection of a CFC you can see what's really going on.
View the complete call stack trace:
Traditional CF debugging output shows at the end of the page request what files were called to run the entire request. It doesn't really help you find out how each template was used during the request - simply that it was called. In FusionDebug, while you're suspended on a breakpoint, you can easily use the stack trace to see what templates and CFCs were used to get to that point.
No Need to Change Editor or Development Environments:
Don't worry if you don't care for Eclipse. You don't have to use FusionDebug or Eclipse to edit pages, or change your development platform. You can still develop with Dreamweaver, CF Studio, HomeSite+, CFEclipse, or whatever your favorite editor happens to be, and jump into FusionDebug whenever you need to debug a problem. FusionDebug is able to use your files from whatever software you used to create them.


