CF Pest Control By Shlomy Gantz President, BlueBrick Inc. Presented by Sandra Clark
Famous Last words “…if debugging is defined as the art of taking bugs out of a program, programming must be putting them in…” “..It’s not a bug, It’s a feature “ Microsoft
Types of bugs Syntax Error Run-Time Errors Logical Errors
Types of bugs - Syntax Errors Syntax Error Example
Types of bugs - Run-Time Errors Run-Time Error Example SELECT SUM(Salary) AS TotalSalary, COUNT(Emp_ID) as NumOfEmployees FROM AnnualSalary WHERE SALARY > #AVGSalary#
Types of bugs - Logical Errors Logical Error example #YesNoFormat(ShlomyExists_YN)#
Other things that can go wrong Database connection (ODBC,MDAC …) Cold Fusion server Web Server OS Hardware
Debugging Steps Plan Back-up Isolate Find The error Fix - Don’t patch Look for similar Document
“Debugger’s Block” If all else fails … and if that doesn’t work
Cold Fusion Administrator
Enable CFML stack trace CF tracks what tags have run during page process. Can be used either through CFTRY/CFCATCH or the HomeSite+ Debugger
Report Execution Times
Show Variables Show all variables processed by ColdFusion: –Application –Cookie –Server –CGI –Form –Session –Client –Request –URL
Detail View Breakdown of all templates run during a page process. Processing time for each template
Database Activity Query Name RecordCount Processing Time Query Executed
Enable Performance Monitoring
Enable Robust Exception Information physical path of template URI of template line number and line snippet SQL statement used (if any) Data source name (if any) Java stack trace
Debugging IP Addresses By Default All when debugging is turned on all users can see debug information. You can restrict access to the debugging info through this feature by IP address
Log Files Easier Log File Administration
Log Files Easier Log Analysis
System Probes Monitor your ColdFusion Applications
Code Analyzer
Debugging with HomeSite+ Setting up Development Mapping.
Using the interactive debugger
Debugging CF applications Show your variables (not only once) Create breakpoints and Follow the flow Use Exception handling to automatically alert when errors occur Look at your application logs
& Using CFABORT to create breakpoints Select * from Contacts WHERE Active_YN=1 #getContacts.recordcount#
& Following the flow Step 1 Step 1.1 Step 1.2 Step 2
Debugging in CFML
Debugging CF applications
... Add code here... Add exception processing code here... Additional CFCATCH blocks go here
<cftrace abort = "Yes or No" category = "string" inline = "Yes or No" text = "string" type = "format" var = "variable_name" >
IsDebugMode() Debugging is set in the ColdFusion Administrator Debugging is disabled
Application Logs Read your application logs regularly Error","TID=199","07/27/00","13:32:35"," ","Mozilla/4.0 (compatible; MSIE 4.01; Windows NT)","An error has occurred. HTTP/ Object Not Found“ "Error","TID=199","07/27/00","13:32:45"," ","Mozilla/4.0 (compatible; MSIE 4.01; Windows NT)","Error resolving parameter SLOT_IDColdFusion was unable to determine the value of the parameter. This problem is very likely due to the fact that either: You have misspelled the parameter name, or You have not specified a QUERY attribute for a CFOUTPUT, CFMAIL, or CFTABLE tag.The error occurred while evaluating the expression: #slot_id# The error occurred while processing an element with a general identifier of (#slot_id#), occupying document position (4:12) to (4:20) in the template file D:\wwwroot\cfun2000\Examples\JS\JSexample1_CFMW\edit_def.cfmThespecific sequence of files included or processed s:D:\WWWROOT\CFUN2000\EXAMPLES\JS\JSEXAMPLE1_CFMW\EDIT_DEF.CFM.Date/Time: 07/27/00 13:32:45Browser: Mozilla/4.0 (compatible; MSIE 4.01; Windows NT)Remote Address: HTTP Referer: D:\wwwroot\cfun2000\Examples\JS\JSexample1_CFMW\edit_def.cfm“ "Warning","TID=152","07/27/00","15:07:21","In a CF_TagName construct custom tag file 'C:\CFUSION\CustomTags\Pages.cfm' will occlude custom tag file 'C:\CFUSION\CustomTags\cf_pages\Pages.cfm'." "Warning","TID=152","07/27/00","15:07:21","In a CF_TagName construct custom tag file 'C:\CFUSION\CustomTags\Pages.cfm' will occlude custom tag file 'C:\CFUSION\CustomTags\cf_pages\images\Pages.cfm'."
CFDUMP Read your application logs regularly
Debugging Databases SQL query analyzer
Common Mistakes “So what are we doing wrong?”
Tools & Techniques Alerts Monitoring Tools ( ) Testing Tools ( ) BugTraq Automatic Code Generation Tools –CodeSaver / CodeCharge / CommerceBlocksCodeSaverCodeChargeCommerceBlocks LoRCAT
QA