From cc-best
Provides systematic debugging methods, log analysis in TypeScript/Python, VS Code breakpoint configs, performance diagnostics. Use for bugs, error logs, performance issues, incidents.
npx claudepluginhub xiaobei930/cc-best --plugin cc-bestThis skill is limited to using the following tools:
本技能提供系统化的调试方法和技巧。
Guides systematic debugging techniques including scientific method, reproduction checklists, hypothesis testing, and binary search for bugs, performance issues, and unexpected behavior across codebases.
Provides systematic debugging techniques, reproduction checklists, hypothesis testing, and root cause analysis for bugs, performance issues, and unexpected behavior.
Applies systematic debugging process—reproduction, info gathering, hypothesis testing, binary search—to track bugs, performance issues, and unexpected behavior in any codebase.
Share bugs, ideas, or general feedback.
本技能提供系统化的调试方法和技巧。
问题描述 → 复现问题 → 缩小范围 → 定位原因 → 修复验证 → 记录总结
记录时包含以下要素:
| 要素 | 内容 |
|---|---|
| 问题描述 | 简要描述问题现象 |
| 预期 vs 实际 | 期望行为与实际行为的差异 |
| 复现步骤 | 可稳定复现的最小步骤 |
| 环境信息 | OS、语言版本、依赖版本 |
| 错误信息 | 完整的错误堆栈或日志 |
| 已尝试方案 | 每个方案及其结果 |
// ❌ 无用的日志
console.log("here");
console.log(data);
// ✅ 有信息量的日志
console.log("[UserService.createUser] 开始创建用户:", {
email: user.email,
timestamp: new Date().toISOString(),
});
console.log("[UserService.createUser] 数据库插入成功:", {
userId: result.id,
duration: Date.now() - startTime,
});
console.error("[UserService.createUser] 创建失败:", {
error: error.message,
stack: error.stack,
input: { email: user.email },
});
# ❌ 无用的日志
print("here")
print(data)
# ✅ 有信息量的日志
import logging
logger = logging.getLogger(__name__)
logger.info(f"[create_user] 开始创建用户: email={email}")
logger.info(f"[create_user] 创建成功: user_id={user.id}, duration={duration}ms")
logger.error(f"[create_user] 创建失败: error={str(e)}", exc_info=True)
| 级别 | 用途 | 示例 |
|---|---|---|
| DEBUG | 详细调试信息 | 函数参数、中间状态 |
| INFO | 正常操作信息 | 用户登录、订单创建 |
| WARN | 警告但可继续 | 配置缺失使用默认值 |
| ERROR | 错误但可恢复 | API 调用失败重试 |
| FATAL | 致命错误需退出 | 数据库连接失败 |
.vscode/launch.json)| 场景 | type | 关键配置 |
|---|---|---|
| Node.js | node | program, preLaunchTask, outFiles |
| Python | python | program: "${file}", integratedTerminal |
| Jest 测试 | node | program: jest, args: ["--runInBand"] |
在循环中设置条件表达式 (如 item.id === 'target-id'),仅在满足条件时暂停。
performance.now() / console.time / Python timeit 装饰器process.memoryUsage() / Python tracemallocgroup / table / assert / trace / countdisplayName / useDebugValue## 调试前
- [ ] 能稳定复现问题吗?
- [ ] 最小复现用例是什么?
- [ ] 最近改动了什么?
## 调试中
- [ ] 查看错误日志和堆栈
- [ ] 添加必要的日志输出
- [ ] 使用断点逐步执行
- [ ] 检查输入数据是否正确
- [ ] 检查环境变量和配置
## 调试后
- [ ] 修复是否解决了根本原因?
- [ ] 是否需要添加测试?
- [ ] 是否需要更新文档?
- [ ] 是否有类似问题需要检查?
记住: 调试的第一步是复现——稳定复现问题后,解决方案通常就在眼前。