During one of my late night coding adventures, something occurred to me: I think I've looked at the actual debugging information (the stuff below all your markup, not log-related stuff) exactly twice. Seriously. And believe me, it's not because I'm a flawless coder...my exeception.log file is gi-normous! But the reality is that it's immensely more helpful to me to use a combination of cfdump and cflog along with the standard cfoutput/cfabort tags to really get at the information I need to diagnose a problem. Coupled with CF 7's new "result" attribute for enhanced query information (where you can get at execution times, bind variable values, etc.), I really don't know what the utility of ColdFusion's built-in debugging output is. Listing all the query execution times at once is about all I can think of at the moment.
Frameworks are becoming more and more popular in the ColdFusion community, which is great. But using those frameworks usually means that the form and url scopes are unified, which makes their individual listing in the debug output pretty much useless. If I really need to see the individual scopes, I can set up a code snippet shortcut to output the following:
It seems like all I really get anymore from turning on debugging is the increased overhead incurred by enabling the debugging service. And who needs that? So that got me thinking even more. What would I like to see? What would you like to see? Personally, I'm still not sure. I've made no secret that I'm a big Model-Glue fan. Maybe something akin to Model-Glue's debugging output where it shows all the events that were executing along the way in the order in which they were executed? Obviously, for non-event based frameworks, that's pointless, but I guess what I'm saying is that it's about as close to run-time debugging as I need. I'm pretty stumped though otherwise.
What do you think? Do you find yourself using the native debugging output in your development? Or do you use the cfdump / cflog / cfoutput / cfabort tags like I do? More importantly, how can the built-in debugging be improved? Adobe's actively working on Scorpio (aka ColdFusion 8), so this is the time to get your wishes in.
-Purr
If you're in a controller in an MG app, you can do arguments.event.trace("label", someValue) and it'll add the value to the MG debug info. Complex values get <cfdump>'d.
I use CSS layouts all the time, and my debugging info is not covered up by the page. I think I remember reading something about absolute positioning causing an issue similar to this..
The Model-Glue framework has this awesome ability to add all datatypes to its debugging output via a trace() method -- structs, arrays, cfdump, etc. All I need are those trace() lines and can then let the page run to completion -- no cfaborts needed. That makes me more productive. That's something I'd like to see in CF 8. Right now, I'm stuck with what's built in, which is a little bit to "basic" for my work. I'm sure there are other things, but they're just not jumping out at me at the moment.
Good suggestions for CF8.