Use for Debugging

was introduced to ColdFusion in version 5, but apparently there are many CFers who have yet to discover this invaluable tag. In the past week I received three different code help e-mail requests, all of which I answered with suggestions, all of which included the use of in test code, and all of which were met with responses to the effect of “huh, I’ve never used before.
So, is an all-purpose data display tool. Give it a simple variable and it’ll display it. But can do more than just display simple variables, it can render entire queries, arrays, structures, XML document objects, instantiated ColdFusion Components, Java objects, and any combination of the above (an array of structures containing an array of queries, for example). You can even entire scopes (like SESSION, or VARIABLES) because those are actually structures.
In other words, can display most of what standard debug output can, and a whole lot more too. In fact, come to think of it, I have not used standard debug output in a long time, nowadays I rely mostly on .
If you have yet to use this remarkable tag, do so, quickly. But one point to keep in mind, expects expressions, not names of variables. So, if you the word VARIABLES will be displayed, to dump all variables you’d need .

10 responses to “Use for Debugging”

  1. seancorfield Avatar

    The label= attribute is very useful too so you can annotate the dump output:
    [cfdump label="session scope before call to foo()" var="#session#"]
    [cfset foo()]
    [cfdump label="session scope after call to foo()" var="#session#"]

  2. Kurt Wiersma Avatar
    Kurt Wiersma

    I just wish that cfdump’s output displayed better then using a standards complient html doctype. I have found that I use the coloration of the cells of the output. Other then that cfdump rocks!

  3. Danilo Avatar

    Is there a particular reason that the CSS for the object type is white text?
    Most pages I work with I have a white background, and I can never see the object type unless I highlight the the page’s text. I’ve heard about ways to make it change, but its my understanding that they entail making changes that aren’t allowed under the CF license.

  4. mike Avatar

    yeah ive been wondering why they encrypted the code for cfdump and a few other things.
    a tool you can customize to suit your needs is a much better tool.

  5. Raymond Camden Avatar
    Raymond Camden

    FYI, you can get a modified version of cfdump here:
    It allows you to dump an array or query and display only the top N items. You can also filter by columns or struct keys.

  6. Danilo Avatar

    Thanks Raymond, I’ll take a look at it.

  7. Brian Billman Avatar
    Brian Billman

    Is there any better way to dump CFC objects? Dumping an object only shows the methods in it, is there any way to display member variables as well (i.e. those defined outside of a method)? (or if there is I’ve completely missed it)

  8. Marcos Placoná Avatar
    Marcos Placoná

    Ben, I have a doubt here:
    Do you remember that in the CF 5 the cfdump tag doesn’t works with the scope variables?
    I remember that I had to make some modifications to dump my crated variables because it doesn’t work.
    Was it a bug?
    Marcos Placoná

  9. Ben Forta Avatar
    Ben Forta

    Marcos, in earlier versions of CF the scopes were not structures, but now they all are.

  10. Jonathan Keller Avatar
    Jonathan Keller

    On the cell coloration, the tag does not put a # in front of the color numbers. Adding that character to the color fixes the problem in IE.
    The tag would be easy to fix…if it weren’t encrypted. I guess MM changed their mind, since an earlier blog entry indicated they were not.

Leave a Reply