Universal Debugger AI
AI-powered multi-language debugging extension with advanced symbolic execution and path-sensitivity analysis for Visual Studio Code.
🌟 Features
🔍 Multi-Language Support
- Go: Full Delve debugger integration with advanced context analysis
- Python: Complete debugpy support with async/await analysis
- JavaScript/TypeScript: Node.js and browser debugging with closure analysis
- Automatic Detection: Seamlessly switches between languages based on debug session
🧠 Advanced AI Analysis
- Symbolic Execution: Analyze execution paths and constraints
- Path-Sensitivity Analysis: Track variable states across different execution paths
- Context-Aware Variable Expansion: Deep inspection of complex data structures
- Business Logic Detection: Automatically identifies application-relevant code
📊 Rich Debugging Context
- Enhanced Variable Analysis
- Execution Path Graphs
- Performance Metrics
- Memory Usage Tracking
🤖 AI Integration
- OpenAI GPT Support: GPT-3.5, GPT-4, and custom models
- Anthropic Claude Support
- Azure OpenAI Integration
- Custom Endpoints
🚀 Quick Start
Installation
From Marketplace:
ext install NandamYashwanth.go-debugger-ai
From VSIX:
- Download latest
.vsix
from releases
- Install via VS Code: Extensions >
...
> Install from VSIX
Initial Setup
Configure AI Provider (optional):
{
"contextSelector.llm.provider": "openai",
"contextSelector.llm.openaiApiKey": "your-api-key-here",
"contextSelector.llm.model": "gpt-4"
}
Enable Multi-Language Support:
{
"universalDebugger.multiLanguage.enabled": true,
"universalDebugger.multiLanguage.autoDetection": true
}
First Debug Session
Open project (Go, Python, JS, or TS)
Set breakpoints
Start debugging
Open Context Analyzer:
- Command Palette:
Universal Debug: Open Context Analyzer
- Or use debug toolbar icon
📋 Language Support
🐹 Go
- Debugger: Delve
- Features: Goroutine analysis, pointer dereferencing
- Files:
.go
🐍 Python
- Debugger: debugpy
- Features: Async/await analysis, module tracking
- Files:
.py
, .pyw
⚡ JavaScript/TypeScript
- Debugger: Node.js, Chrome
- Features: Closure & prototype chain analysis
- Files:
.js
, .ts
, .mjs
, .tsx
, .cjs
🎛️ Configuration
Multi-Language
{
"universalDebugger.multiLanguage.enabled": true,
"universalDebugger.multiLanguage.autoDetection": true,
"universalDebugger.variableAnalysis.maxDepth": 6,
"universalDebugger.variableAnalysis.memoryLimitMB": 50
}
Language-Specific
{
"goDebugger.variableAnalysis.maxVariableValueLength": 500,
"goDebugger.variableAnalysis.enableTypeInference": true,
"goDebugger.businessLogic.applicationPatterns": [
"Handler)", "Controller)", "Service)", "Repository)",
".Get", ".Post", ".Put", ".Delete", ".Create", ".Update"
]
}
AI Provider
{
"contextSelector.llm.provider": "openai",
"contextSelector.llm.openaiApiKey": "sk-...",
"contextSelector.llm.model": "gpt-4",
"contextSelector.llm.temperature": 0.3,
"contextSelector.llm.maxTokens": 4000
}
🎮 Commands
Command |
Description |
Universal Debug: Open Context Analyzer |
Opens debugging context view |
Universal Debug: Refresh Debug Context |
Manually refresh context |
Universal Debug: Show Execution Path Graph |
Show execution flow |
Universal Debug: Check Debugger Status |
Show language + connection |
Universal Debug: Export Debug Analysis |
Save context data to file |
📱 User Interface
Context Analyzer
- Variable Inspector
- Function Call Stack
- Execution Paths
- AI Analysis
Execution Path Graph
- Visual Flow
- Alternative Paths
- Risk Analysis
- Performance Metrics
🔧 Advanced Features
Variable Expansion
{
"universalDebugger.languageSpecific.go.maxVariableDepth": 6,
"universalDebugger.languageSpecific.python.maxVariableDepth": 4,
"universalDebugger.languageSpecific.javascript.maxVariableDepth": 5,
"universalDebugger.languageSpecific.javascript.analyzeClosures": true,
"universalDebugger.languageSpecific.python.enableAsyncAnalysis": true
}
Symbolic Execution & Path Analysis
- Constraint Tracking
- Root Cause Analysis
- Conflict Detection
- Performance Monitoring
🎯 Use Cases
🐛 Bug Investigation
- Set breakpoint
- Start debug session
- Open Context Analyzer
- Inspect AI insights
- Review alternative paths
🔍 Code Understanding
- Set breakpoints in key functions
- Debug with sample input
- View Execution Path Graph
- Export context data
- Enable memory tracking
- Set breakpoints
- Monitor variable + execution cost
🤝 Language-Specific Examples
Go
func processUser(ctx context.Context, userID int64) (*User, error) {
user, err := userRepo.GetByID(ctx, userID)
if err != nil {
return nil, fmt.Errorf("failed to get user: %w", err)
}
return user, nil
}
Python
async def process_data(data_source: str) -> Dict[str, Any]:
async with aiohttp.ClientSession() as session:
response = await session.get(data_source)
data = await response.json()
return data
JavaScript
function processApiResponse(response) {
const { data, status, headers } = response;
return data.map(item => ({ id: item.id, name: item.name, processed: true }));
}
🔧 Troubleshooting
Extension Not Activating
# Ensure session type is go, python, debugpy, node, chrome
Language Detection Issues
{
"type": "go",
"request": "launch",
"program": "${workspaceFolder}"
}
AI Issues
- Verify API key
- Check connectivity
- Inspect output panel
{
"universalDebugger.variableAnalysis.maxDepth": 3,
"universalDebugger.variableAnalysis.memoryLimitMB": 25
}
- Collection Time
- Variable Count
- Memory Usage
- Symbolic Analysis Time
- Path Sensitivity Time
- Language
🛠️ Development
Build From Source
git clone https://github.com/yashwanthnandam/go-debugger-ai.git
cd go-debugger-ai/extension
npm install
npm run compile
npm run package
Contributing
- Fork & branch
- Develop & test
- PR with description
Architecture
src/
├── extension.ts
├── detection/languageDetector.ts
├── factories/debuggerFactory.ts
├── languages/{go,python,javascript}Handler.ts
├── protocols/*Protocol.ts
├── services/{contextCollector,llmService,...}.ts
├── views/{contextSelectorView,executionPathGraphView}.ts
📚 API Documentation
LanguageHandler Interface
interface LanguageHandler {
inferType(...): string;
parseVariableValue(...): ParsedValue;
extractFunctionName(...): string;
isSystemVariable(...): boolean;
isApplicationRelevant(...): boolean;
}
DebuggerProtocol Interface
interface DebuggerProtocol {
attachToSession(...): void;
getStackTrace(): Promise<DebugFrame[]>;
getCurrentFrame(): Promise<DebugFrame | null>;
}
🔗 Links
- GitHub: go-debugger-ai
- VS Code Marketplace: Universal Debugger AI
- Issues: Report bugs / request features
- Discussions: Community forum
📜 License
MIT License – See LICENSE file
🙏 Acknowledgments
- VS Code Team
- Delve / Go Team
- Python debugpy
- OpenAI & Anthropic
- Community Contributors
📈 Changelog
v2.0.0 (2025-06-13)
- Multi-Language: Python, JS, TS
- Enhanced AI Context Analysis
- Universal Variable Inspection
- Performance & Speed Optimizations
- Seamless Language Switching
v1.0.4
- Symbolic Execution
- Path Sensitivity
- Deep Variable Expansion
- AI Code Analysis
Happy Debugging! 🐛➡️✨