Advanced Analysis Issues
Advanced troubleshooting for call graph, pattern detection, functional analysis, and other complex analysis features.
Multi-Pass Analysis
Multi-pass analysis is enabled by default and performs two iterations to distinguish logical complexity from formatting artifacts.
# Multi-pass analysis runs by default
debtmap analyze .
# Disable for performance-critical scenarios
debtmap analyze . --no-multi-pass
When to disable (--no-multi-pass):
- Performance-critical CI/CD pipelines
- Very large codebases (>100k LOC)
- Quick complexity checks during development
Call Graph Debugging
Available Flags:
# Enable call graph debug output
debtmap analyze . --debug-call-graph
# Trace specific functions through call graph
debtmap analyze . --trace-function "function_name,another_function"
# Show only call graph statistics
debtmap analyze . --call-graph-stats
# Validate call graph consistency
debtmap analyze . --validate-call-graph
Dependency Control Flags:
# Show dependency information in results
debtmap analyze . --show-dependencies
# Limit number of callers shown per function
debtmap analyze . --max-callers 10
# Include external crate calls in call graph
debtmap analyze . --show-external-calls
# Include standard library calls
debtmap analyze . --show-std-lib-calls
God Object Detection
Flag: --no-god-object
Disables god object (large class/module) detection.
God Object Types:
- god_class: Files with excessive complexity excluding test functions
- god_file: Files with excessive complexity including all functions
- god_module: Alias for god_file
# Disable god object detection entirely
debtmap analyze . --no-god-object
# See god object analysis with responsibility metrics
debtmap analyze . -vv
Pattern Detection Issues
Control Pattern Detection:
# Disable pattern detection entirely
debtmap analyze . --no-pattern-detection
# Specify specific patterns to detect
debtmap analyze . --patterns "god_object,long_function,complex_conditional"
# Adjust pattern detection sensitivity (default: 0.7)
debtmap analyze . --pattern-threshold 0.6
# Show pattern detection warnings
debtmap analyze . --show-pattern-warnings
Detected Patterns:
Debt patterns (src/cli/args.rs:84):
god_object: Classes/modules with too many responsibilitieslong_function: Functions exceeding length thresholdscomplex_conditional: Nested or complex branching logicdeep_nesting: Excessive indentation depth
Design patterns (src/cli/args.rs:272-273):
observer: Event-driven observer pattern implementationssingleton: Singleton pattern usagesfactory: Factory pattern implementationsstrategy: Strategy pattern for interchangeable algorithmscallback: Callback-based async patternstemplate_method: Template method pattern implementations
Functional Analysis Issues
Enable Functional Analysis:
# Enable AST-based functional analysis
debtmap analyze . --ast-functional-analysis
# Use different strictness profiles
debtmap analyze . --ast-functional-analysis --functional-analysis-profile strict
debtmap analyze . --ast-functional-analysis --functional-analysis-profile balanced
debtmap analyze . --ast-functional-analysis --functional-analysis-profile lenient
Common Issues:
Too many false positives for legitimate imperative code:
# Use lenient profile
debtmap analyze . --ast-functional-analysis --functional-analysis-profile lenient
Public API Detection Issues
Control Public API Detection:
# Disable public API detection
debtmap analyze . --no-public-api-detection
# Adjust public API detection threshold (default: 0.7)
debtmap analyze . --public-api-threshold 0.5
Attribution Issues
Attribution analysis tracks where complexity originates in your code, separating logical complexity from formatting artifacts.
Enable Attribution (src/cli/args.rs:206-208):
# Show complexity attribution details
debtmap analyze . --attribution
Understanding Attribution Output:
Attribution breaks complexity into three categories:
- Logical Complexity (confidence: ~0.9): Genuine control flow and decision points
- Formatting Artifacts (confidence: ~0.75): Complexity from code formatting style
- Pattern Complexity: Complexity from recognized patterns
Common Issues:
Attribution shows high formatting artifacts:
# Use multi-pass analysis (enabled by default) to filter formatting
debtmap analyze .
# If disabled, re-enable it
debtmap analyze . --no-multi-pass # DON'T do this
Attribution confidence is too low:
- Low confidence indicates the analysis couldn’t reliably determine complexity sources
- This often happens with heavily macro-generated code or unusual control flow patterns
Missing source mappings:
- Source mappings require AST-level analysis
- Some dynamic patterns may not map to specific source locations
See Also
- Quick Fixes - Common problems with immediate solutions
- Context Provider Issues - Provider-specific troubleshooting
- Debug Mode - Verbosity levels and diagnostics