fdbox

FusionDebug makes debugging ColdFusion applications faster, easier and smarter. Debugging your ColdFusion code with FusionDebug will lower your total development costs, improve CFML code quality and allow developers to focus on making great software.

 

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.


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.

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.


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.