Debugging & Logging - Debugging Settings
Master control panel for ColdFusion debugging features and security
Overview
The Debugging Settings page is the central control panel for all ColdFusion debugging features. This page enables or disables debugging output globally, controls which debugging information is displayed, configures IP address restrictions, manages robust exception information, and enables the line debugger for step-through debugging in compatible IDEs.
Proper configuration of debugging settings is critical for both development productivity and production security. While debugging tools are invaluable during development, they must be carefully controlled in production environments to prevent information disclosure, maintain performance, and comply with security requirements.
Master Debug Controls
Global settings that enable or disable all debugging features across the ColdFusion server.
Enable Request Debugging Output
Enable Robust Exception Information
- PCI DSS: Robust exceptions can expose cardholder data - violation of requirement 6.5.5
- HIPAA: May expose PHI in error details - breach of privacy rules
- GDPR: Can expose personal data - violation of data protection requirements
- SOC 2: Fails security controls for information disclosure
Enable Performance Monitoring
Enable CFSTAT
cfstat (requires server access)Debug Output Template
Control which debugging information is displayed and how it's formatted.
Select Debugging Output Format
- Floating panel doesn't interfere with page layout
- Collapsible sections for easier navigation
- Search and filter capabilities
- Copy-to-clipboard functionality
- Moveable and resizable interface
Report Execution Times
IP Address Restrictions
Limit debugging output to specific IP addresses for security in production-like environments.
Debugging IP Addresses
192.168.1.100Wildcard:
192.168.1.*CIDR:
192.168.1.0/24Multiple:
127.0.0.1, 192.168.1.100, 10.0.0.*- Always include
127.0.0.1for localhost access - Use specific IPs, not broad ranges, in production
- Consider VPN IP addresses for remote developers
- Test from both allowed and denied IPs to verify filtering
- Document why each IP is whitelisted
- Review and update list regularly (remove departed staff)
Managing IP Address List
Line Debugger Settings
Configure the line-by-line debugger for step-through debugging in compatible IDEs.
Enable Line Debugger
Debugger Port
Maximum Simultaneous Debugger Connections
Debug Output Details Configuration
Fine-tune which specific debugging information categories are displayed.
Database Activity
- Information
- SQL queries, execution times, record counts
- Development
- Essential for query optimization
- Production
- Never enable - major security risk
Shows all SQL queries with parameters and timing. Critical for identifying N+1 queries and slow database operations.
Exception Information
- Information
- Caught exceptions with stack traces
- Development
- Helpful for tracking handled errors
- Production
- Disable to prevent information leakage
Displays exceptions even when caught by try/catch. Helps identify swallowed errors and exception handling issues.
Tracing Information
- Information
- cftrace output and timing between points
- Development
- Useful for tracking execution flow
- Production
- Disable unless using IP filtering
Shows developer-added trace points for debugging complex logic and measuring performance between checkpoints.
Variable Scopes
- Information
- Contents of URL, Form, Session, Application, etc.
- Development
- Essential for verifying data structures
- Production
- CRITICAL - Never enable, exposes sensitive data
Most sensitive debug category. Can expose passwords, tokens, API keys, and personal data. Huge security risk.
General Debug Information
- Information
- Request metrics, memory usage, cache stats
- Development
- Good for high-level performance monitoring
- Production
- Generally safe but unnecessary with APM tools
Shows overall request timing, template cache statistics, and memory usage. Less sensitive than other categories.
Template Execution
- Information
- Templates processed and their execution times
- Development
- Identify slow templates and includes
- Production
- Can reveal application structure
Template hierarchy with timing helps optimize include structure and identify bottleneck templates.
Environment-Specific Best Practices
Development Environment Settings
- Enable Request Debugging Output: Yes
- Enable Robust Exception Information: Yes
- Enable Performance Monitoring: Yes
- Debug Output Format: dockable.cfm
- Database Activity: Yes
- Exception Information: Yes
- Tracing Information: Yes
- Variable Scopes: All scopes
- General Debug Information: Yes
- Report Execution Times: Yes
- Line Debugger: Yes (when needed)
- IP Filtering: Not required for local development
Staging/QA Environment Settings
- Enable Request Debugging Output: Yes with IP filtering
- Enable Robust Exception Information: No (test production behavior)
- Enable Performance Monitoring: Yes
- Debug Output Format: dockable.cfm
- Database Activity: Yes
- Exception Information: Yes
- Tracing Information: Yes
- Variable Scopes: Limited (URL, Form only)
- General Debug Information: Yes
- Line Debugger: No
- IP Filtering: QA team IPs only
Production Environment Settings
- Enable Request Debugging Output: NO
- Enable Robust Exception Information: NO
- Enable Performance Monitoring: NO
- Database Activity: NO
- Exception Information: NO
- Tracing Information: NO
- Variable Scopes: NONE
- General Debug Information: NO
- Line Debugger: NO
- Custom Error Pages: YES - Configure via Server Settings
- Error Logging: YES - Log to files, never display
Emergency Production Debugging
- Enable Request Debugging Output: Yes
- Enable Robust Exception Information: NO (never)
- Database Activity: Only if database issue
- Exception Information: NO
- Variable Scopes: NONE
- General Debug Information: Yes (relatively safe)
- IP Filtering: Single admin IP ONLY
- Time Limit: Disable within hours, not days
- Documentation: Log in change management system
- Approval: Require manager approval
Security Considerations
Information Disclosure Risks
- File System Paths: Reveals server directory structure and installation paths
- Database Schema: Table names, column names, relationships visible in queries
- SQL Queries: Complete queries with bound parameters may contain sensitive data
- Credentials: Passwords, API keys, tokens in variable scopes
- Session Data: User information, authentication tokens, shopping cart contents
- Business Logic: Application flow, validation rules, security checks
- Stack Traces: Code structure, library versions, potential vulnerabilities
- Configuration: Datasource names, server settings, external service endpoints
- Personal Data: Customer information, PII, PHI in variables or queries
Compliance Requirements
- PCI DSS: Debug output exposing cardholder data violates requirement 6.5.5 and 6.5.10. Must be disabled in production payment processing systems.
- HIPAA: PHI exposure in debug output constitutes a breach. Requires Business Associate Agreement violations reporting.
- GDPR: Personal data in debug output violates data protection requirements. May require breach notification to authorities and data subjects.
- SOC 2: Uncontrolled debug output fails security controls for data confidentiality and availability.
- ISO 27001: Information disclosure through debug output violates access control and information security policies.
Performance Impact Analysis
Development Environment
- Impact
- 10-50ms per request
- Memory
- Minimal - acceptable for single user
- Verdict
- Enable all features - benefits outweigh cost
Production Environment
- Impact
- 20-40% performance degradation
- Memory
- Significant - compounds under load
- Verdict
- NEVER enable - unacceptable cost
Line Debugger Active
- Impact
- Severe - request pauses at breakpoints
- Concurrency
- Blocked requests queue waiting for debugger
- Verdict
- Only use in isolated development
Common Issues & Solutions
Debug Output Not Appearing
- Verify "Enable Request Debugging Output" is checked
- Check your IP address is in allowed IP list (use whatismyip.com)
- Verify you're not using VPN that changes your IP
- Check load balancer is passing real client IP (X-Forwarded-For)
- Confirm request returns HTML (debug doesn't show for JSON/XML/PDF)
- Verify
cfcontentorcfflushnot bypassing debug output - Check for JavaScript errors that might hide dockable debug panel
Debug Output Shows to All Users
- IMMEDIATELY disable "Enable Request Debugging Output"
- Verify IP address filtering is configured with specific IPs
- Check that IP list is not empty (empty = all users see debug)
- Review server logs for potential data exposure
- Assess if incident requires security breach notification
- Document incident and implement prevention procedures
- Consider implementing automated checks for debug settings
Line Debugger Won't Connect
- Verify "Enable Line Debugger" is checked in administrator
- Restart ColdFusion after enabling line debugger
- Check firewall allows connections to debugger port (default 5005)
- Verify debugger port in IDE matches ColdFusion configuration
- Confirm server hostname/IP is correct in IDE configuration
- Check for port conflicts with other services
- Review ColdFusion logs for debugger startup errors
Performance Degradation with Debugging
- Disable variable scope display (especially Session/Application)
- Use minimum execution time filter to reduce output volume
- Disable database activity if not needed for current debugging
- Switch from classic to dockable format (more efficient)
- Enable only specific debug categories needed for current issue
- Consider using
cflogandcfdump output="file"instead
Alternative Debugging Approaches
File-Based Logging
- Method
- cflog, cfdump output="file"
- Benefits
- Safe for production, no user exposure
- Use Case
- Production debugging and audit trails
Write debugging information to log files accessible only to administrators. Production-safe alternative to debug output.
APM Tools
- Tools
- FusionReactor, SeeFusion, New Relic
- Benefits
- Production-safe, comprehensive metrics
- Features
- Real-time monitoring, alerting, profiling
Professional monitoring tools provide production-safe visibility without security risks of debug output.
Custom Debug Frameworks
- Approach
- Build application-specific debug panels
- Benefits
- Full control, custom authentication
- Effort
- Higher initial development time
Create custom debugging interfaces with your own security controls and exactly the information you need.
Deployment Checklist
Pre-Production Deployment Verification
- Verify "Enable Request Debugging Output" is UNCHECKED
- Verify "Enable Robust Exception Information" is UNCHECKED
- Verify "Enable Line Debugger" is UNCHECKED
- Confirm custom error page is configured for site-wide errors
- Confirm missing template handler is configured
- Test that errors show user-friendly messages (not stack traces)
- Verify error logging is enabled and writing to files
- Confirm log files are secured (not publicly accessible)
- Document debug settings in deployment checklist
- Consider automated tests to verify debug is disabled