AI调试大师,让Bug无处遁形。
功能原版增强版调试方法7步法7步法 + AI根因分析测试生成手动自动生成测试用例错误模式基础智能错误模式库跨语言有限15+主流语言全覆盖修复建议通用上下文感知智能建议预防机制无代码质量扫描预警
当用户说以下内容时激活:
text
❌ 不要:直接猜测原因
✅ 要:精确复现错误
复现命令:
node --trace-errors app.js
python -v debug script.py
text
错误类型识别:
├── SyntaxError → 语法错误(最容易修)
├── TypeError → 类型错误(检查变量类型)
├── ReferenceError → 引用错误(检查是否定义)
├── NetworkError → 网络错误(检查API/连接)
└── RuntimeError → 运行时错误(需要详细分析)
text
分析错误不只是表象,要找根本原因
Why-Tree 分析法:
Why: 报错 "Cannot read property 'map' of undefined"
→ Why: data变量是undefined
→ Why: API返回数据为空
→ Why: 接口超时未处理
→ 根本原因:缺少空值判断和超时处理
javascript
// 错误定位技巧
const debug = require('debug')('app:*');
// 添加断点日志
console.log('🔍 DEBUG: 变量值', { variable: value });
// 使用source map
source-map /path/to/bundle.js.map
text
修复优先级:
1. 立即止血(try-catch包裹)
2. 找到根本原因
3. 系统性修复(防止复发)
4. 添加测试用例
bash
# 自动测试
npm test
# 集成测试
npm run test:integration
# 端到端测试
npm run test:e2e
text
添加到错误模式库
记录:错误类型 + 根本原因 + 修复方案 + 预防措施
语言调试命令常见错误JavaScriptnode --inspectTypeError, ReferenceErrorTypeScriptts-node类型错误Pythonpdb / ipdbIndentationError, ImportErrorJavajdb / IntelliJNullPointerExceptionGodelvenil pointer, race conditionRustrust-gdb / rust-lldbborrow checkerC/C++gdb / lldbsegmentation faultRubybyebugNoMethodErrorPHPXdebugFatal ErrorSQLEXPLAIN语法错误
text
症状: "Cannot read property 'x' of undefined"
原因: 访问undefined/null的属性
修复:
// ❌ 错误
data.items.map(x => x.name)
// ✅ 正确
data?.items?.map(x => x.name) || []
text
症状: "ModuleNotFoundError: No module named 'xxx'"
原因: 模块未安装或路径错误
修复:
pip install xxx
# 或检查 PYTHONPATH
text
症状: "UnhandledPromiseRejection"
原因: Promise错误未被捕获
修复:
// 添加错误处理
promise.catch(err => console.error(err))
// 或使用 try-await
try { await asyncFn() } catch (err) {}
text
症状: 数据不一致 / 状态错乱
原因: 多线程同时修改同一数据
修复:
// 使用锁或原子操作
// Go: sync.Mutex
// Python: threading.Lock
// JS: async-await + 状态管理
text
当修复一个bug时,自动生成防止复发的测试:
原始错误:
TypeError: Cannot read property 'name' of undefined
自动生成测试:
test('should handle undefined user gracefully', () => {
const result = getUserName(undefined);
expect(result).toBe('Guest');
});
javascript
// 通用调试工具
const debug = {
log: (...args) => console.log('[DEBUG]', ...args),
error: (...args) => console.error('[ERROR]', ...args),
warn: (...args) => console.warn('[WARN]', ...args),
};
// 检查变量
const inspect = (obj) => JSON.stringify(obj, null, 2);
// 性能分析
console.time('operation');
// ... operation ...
console.timeEnd('operation');
text
排查步骤:
1. 检查网络请求(F12 Network)
2. 查看请求头/参数
3. 检查CORS配置
4. 验证API Key/Token
5. 测试API直接访问
常见修复:
- 添加超时处理
- 添加重试逻辑
- 添加错误边界
text
排查工具:
- Chrome DevTools Memory
- Node: node --inspect
特征:
- 内存持续增长
- 页面越来越卡
- 定时任务越来越慢
常见原因:
- 事件监听未移除
- 全局变量累积
- 闭包引用未释放
text
排查工具:
- Chrome DevTools Performance
- Lighthouse
- Web Vitals
优化方向:
- 减少重排重绘
- 代码分割懒加载
- 优化数据库查询
- 使用缓存
markdown
# Bug调试报告
## 问题描述
[简短描述]
## 错误信息
[粘贴错误日志]
text
## 复现步骤
1. [步骤1]
2. [步骤2]
## 根因分析
**直接原因**: [表象]
**根本原因**: [深层原因]
## 修复方案
```[代码]
[修复代码]
[测试通过截图/日志]
text