TYPE: TOOL LANG: MARKDOWN

debugging

Diagnose and fix bugs. Use when tracking down errors, analyzing stack traces, reviewing logs, or implementing debugging tools.

DIRECTIVE_TEXTUELLE

Debugging Skill

Diagnose and fix software issues efficiently.

When to Use

Use this skill when the user wants to:

  • Analyze error messages and stack traces
  • Debug failing tests
  • Investigate crashes and exceptions
  • Review application logs
  • Set up debugging tools
  • Improve error handling
  • Create diagnostic utilities

Debugging Process

1. Reproduce the Issue

  • Understand the problem statement
  • Identify conditions that trigger the bug
  • Create minimal reproduction case

2. Gather Information

  • Review logs and error messages
  • Check stack traces
  • Inspect application state
  • Review configuration

3. Analyze the Code

  • Trace execution path
  • Identify logical errors
  • Check for edge cases
  • Verify assumptions

4. Hypothesize Causes

  • List potential root causes
  • Prioritize likely issues
  • Form testable hypotheses

5. Test Hypotheses

  • Add debug logging
  • Use breakpoints
  • Modify behavior intentionally
  • Verify predictions

6. Fix and Verify

  • Implement fix
  • Test fix thoroughly
  • Verify no regressions
  • Document the fix

Debugging Techniques

For Code

  • Breakpoints: Pause execution at specific points
  • Stepping: Move through code line by line
  • Watch variables: Monitor variable values
  • Call stacks: Understand call hierarchy
  • Linter tools: Catch syntax errors

For Logs

  • Structured logging: Organized log entries
  • Correlation IDs: Track requests through system
  • Log levels: Filter by importance
  • Log rotation: Manage log file size
  • Centralized logging: Aggregated log storage

For Production

  • Error tracking: Production error monitoring
  • Performance profiling: Identify bottlenecks
  • Resource usage: Monitor memory, CPU, network
  • Distributed tracing: Track requests across services

Common Bug Patterns

Logic Errors

  • Off-by-one errors
  • Incorrect conditionals
  • Wrong operators
  • Edge case failures

Resource Issues

  • Memory leaks
  • Infinite loops
  • Deadlocks
  • Resource exhaustion

Integration Errors

  • API mismatches
  • Protocol incompatibilities
  • Wrong data types
  • Timing issues

Configuration Errors

  • Wrong values
  • Missing environment variables
  • Misconfigured settings
  • Dependency issues

Best Practices

  • Log everything important: Errors, warnings, relevant state changes
  • Make logs searchable: Structured format, meaningful keys
  • Use meaningful error messages: Explain what and why
  • Add context: Request ID, user info, timestamps
  • Don’t log secrets: Never log passwords, tokens, API keys
  • Add assertions: Fail fast when assumptions are violated

Debugging Tools

IDE Tools

  • Breakpoints
  • Debugger
  • Linting
  • IDE features

Runtime Tools

  • Profilers
  • Memory profilers
  • Tracing tools
  • Network inspection

Production Tools

  • Error tracking
  • Monitoring
  • Logging aggregation
  • APM (Application Performance Monitoring)

Deliverables

  • Bug diagnosis report
  • Fix implementation
  • Test cases for the bug
  • Updated documentation
  • Debugging utilities (if needed)

Quality Checklist

  • Bug is reproducible with clear steps
  • Root cause is identified
  • Fix addresses the root cause
  • No regressions introduced
  • Tests are added for the fix
  • Documentation is updated
[RETOUR_AUX_MODULES]

>> AUTRES_MODULES