The CF No Debug Firefox extension has been updated to work with Firefox 3.6. You can get the latest from RIAForge.
Just a quick post to let folks know I've updated the CF No Debug Firefox extension to work with Firefox 3.5. You can get the latest from RIAForge.
Here is a interesting bug I ran into today while using CF No Debug. If you use the <cftrace> tag with the _cf_nodebug parameter set to true, the tag will throw the following error:
Variable DEBUGGER is undefined.
In ColdFusion, the <cftrace> tag is implemented in CFML via the pre-complied WEB-INF/cftags/trace.cfm template. Now, this is simply a guess, but I bet that trace.cfm uses the IsDebugMode() function to determine if it should attempt to write trace info to the debugging query. Possibly something like the following:
<cfset factory = CreateObject("java","coldfusion.server.ServiceFactory")>
<cfset debugger = factory.getDebuggingService().getDebugger()>
<!--- add trace data to debugger --->
As I previously noted there is a bug with IsDebugMode() where it returns true when using _cf_nodebug = true, even though the debugging service is disabled. If something like the above code is used in trace.cfm, IsDebugMode() would return a false positive when _cf_nodebug is true and the ColdFusion ServiceFactory would return null for the debugger variable. When a null value is assigned to a ColdFusion variable it can lead to the undefined error we see in this case.
I've logged a bug with Adobe for this, but it is something to look out for if you use CF No Debug and start seeing "Variable DEBUGGER is undefined" errors.
Last week I updated my CF No Debug extension so that it will remember what state it was last in when you open Firefox. Before, when you closed and re-opened Firefox the extension was always disabled, allowing ColdFusion request debugging to execute. Now if you have the extension enabled when you close Firefox, it will remain enabled when you open Firefox again. This is an extension only update, so there is no need to update the servlet filter.
So in my last post I talked about the _cf_nodebug parameter and how it can be used for disabling ColdFusion request debugging for single requests. Today I'm announcing a new Firefox extension and servlet filter that allow you to disable request debugging without appending the _cf_nodebug parameter to your URL. Install the servlet filter on your development server and the extension in Firefox and you can easily disable debugging for requests made through Firefox as needed via a nice little status bar icon. You can find out more and see screen shots at cfnodebug.riaforge.org.
Most people know that enabling request debugging output via the ColdFusion administrator has some overhead. If you are running a CFC heavy application the performance hit can be quite noticeable. To get around the performance issues you may be tempted to use <cfsetting> with the showdebuoutput attribute set to false. While this does indeed suppress the debugging output, it does not disable the debugging service or alleviate the performance issues you may see with debugging. You can confirm this using the following template: