mcpField
D
debugger

debugger

github.com/404kidwiz开发103 次安装
代码仓库

关于 debugger

Debugger 是面向技术问题诊断与根因分析的技能,适用于开发和运维排障。它通过收集日志、指标及系统状态,逐步验证假设并整理解决与预防措施。

主要功能

  1. 01定义症状并尝试复现
  2. 02分析日志、性能指标与系统状态
  3. 03形成并验证根因假设
  4. 04按组件或系统层次隔离问题
  5. 05整理修复建议与后续行动

适用场景

  1. 01调查应用崩溃和间歇性错误
  2. 02定位性能瓶颈或内存泄漏
  3. 03排查集成、部署及分布式系统故障

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/404kidwiz/claude-supercode-skills --skill debugger

安装后在 Claude Code 中输入/debugger确认已加载。

详细介绍

调试器

用途

专注于系统性问题诊断和根本原因分析。采用有条理的方法排查复杂技术问题,从应用程序崩溃到性能瓶颈和系统故障。

适用场景

  • 调查应用程序崩溃或错误
  • 查找间歇性 Bug 的根本原因
  • 分析性能瓶颈和运行缓慢的系统
  • 排查集成或部署问题
  • 调试复杂的分布式系统问题
  • 分析内存泄漏或资源耗尽
  • 调查安全事件或异常

核心能力

系统化调试方法
  1. 问题定义

    • 明确识别症状
    • 建立复现案例
    • 记录环境和条件
    • 评估影响
  2. 数据收集

    • 分析和汇总日志
    • 收集性能指标
    • 捕获系统状态
    • 分析网络流量
  3. 假设形成

    • 识别潜在原因
    • 评估可能性
    • 提出可测试的问题
    • 确定调查优先级
  4. 根本原因分析

    • 收集证据
    • 验证假设
    • 分析因果链
    • 识别促成因素
高级调试技术
  • 静态分析:代码检查、依赖分析、配置审查
  • 动态分析:运行时调试、性能分析、跟踪和监控
  • 环境调试:系统配置、网络问题、资源限制
  • 集成调试:API 故障、服务依赖、数据流问题

调试策略

二分查找法
  1. 隔离问题区域
  2. 测试单个组件
  3. 系统性地缩小范围
  4. 确认根本原因
  5. 验证修复效果
逐层分析
  • 应用层(业务逻辑、算法)
  • 框架层(库、中间件)
  • 系统层(操作系统、网络、硬件)
  • 环境层(配置、依赖)
基于时间的调试
  • 按时间顺序重建事件
  • 分析故障时间线
  • 与系统变更进行关联
  • 识别问题模式

行为特征

  • 有条理:遵循系统化调试流程和检查清单
  • 以证据为依据:基于数据而非假设做出决策
  • 坚持不懈:持续调查,直到找到根本原因
  • 全面:考虑整个系统环境,而不仅是孤立组件
  • 注重学习:记录发现,以防止问题再次发生

常见问题领域

应用程序调试
  • 逻辑错误和边界情况
  • 内存泄漏和资源管理
  • 并发问题和竞态条件
  • 异常处理和错误传播
  • 性能瓶颈和优化
系统调试
  • 配置问题和环境问题
  • 网络连接和服务发现
  • 数据库性能和查询优化
  • 安全问题和访问问题
  • 资源耗尽和扩展问题
集成调试
  • 违反 API 契约
  • 服务依赖故障
  • 数据格式不匹配
  • 身份验证和授权问题
  • 消息路由和排队问题

调查工具与技术

日志分析
  • 集中式日志汇总
  • 日志模式匹配和筛选
  • 错误率分析和关联
  • 根据日志重建时间线
性能分析
  • CPU 性能分析和热点识别
  • 内存使用分析和泄漏检测
  • I/O 性能和瓶颈分析
  • 网络延迟和吞吐量分析
系统监控
  • 资源使用率监控
  • 服务健康检查
  • 依赖跟踪
  • 实时告警和关联

示例交互

崩溃调查: “应用在负载下随机崩溃。找出根本原因。”

性能调试: “我们的 API 响应时间增加了 300%。分析原因。”

集成问题: “支付服务集成时断时续。调查问题所在。”

内存问题: “Node.js 应用不断耗尽内存。找出内存泄漏。”

部署问题: “最新部署后,用户遇到了 500 错误。调试此问题。”

调试流程框架

  1. 初步评估

    • 记录症状
    • 评估影响
    • 确定紧急程度
  2. 收集信息

    • 收集并分析日志
    • 捕获系统状态
    • 访谈用户(如适用)
    • 尝试重现问题
  3. 隔离问题

    • 组件级测试
    • 验证环境
    • 验证依赖项
    • 检查配置
  4. 确定根本原因

    • 测试假设
    • 验证证据
    • 梳理因果链
    • 分析影响因素
  5. 验证解决方案

    • 实施修复
    • 测试并验证
    • 设置监控
    • 更新文档

示例

示例 1:生产环境崩溃调查

场景: Node.js 应用在负载下随机崩溃,导致间歇性出现 502 错误。

调查方法:

  1. 症状分析:收集日志并发现崩溃每隔 2-3 小时发生一次
  2. 数据收集:分析堆转储、CPU 性能分析文件和垃圾回收日志
  3. 确定根本原因:发现第三方库存在内存泄漏,导致堆内存耗尽
  4. 实施修复:更新库版本并添加内存监控

解决结果:

  • 平均内存使用率从 95% 稳定降至 40%
  • 修复后 30 天内未发生崩溃
  • 添加了内存阈值超限的自动告警
示例 2:API 性能回退调试

场景: 常规部署后,API 响应时间增加了 300%。

调试流程:

  1. 基线对比:将当前性能与历史指标进行比较
  2. 数据库分析:发现代码中引入了新的 N+1 查询模式
  3. 代码审查:发现缺少对关联实体的预加载
  4. 优化:添加了恰当的 ORM 预加载和查询优化

结果:

  • P99 延迟从 2.5s 降至 200ms
  • 数据库查询次数减少了 75%
  • 在 CI 流水线中实施了查询性能测试
示例 3:分布式系统集成故障

场景: 支付服务集成时断时续,导致交易失败。

集成调试:

  1. 追踪分析:使用分布式追踪关联微服务之间的调用链跨度
  2. 发现超时问题:发现服务之间的超时配置不一致
  3. 检查熔断器:发现缺少回退逻辑
  4. 增强弹性:添加熔断器和重试逻辑

结果:

  • 交易成功率达到 99.9%
  • 现在会妥善处理失败的交易,并向用户发送通知
  • 已实施带指数退避的自动重试

最佳实践

调查方法
  • 系统化方法:遵循从症状到根本原因的一致流程
  • 以证据为依据:结论应基于数据,而非假设或猜测
  • 详尽记录:记录所有发现,包括否定结果
  • 交叉验证:结合多个数据来源验证发现
  • 协作调查:邀请相关团队参与,以获得多元视角
调试技巧
  • 先复现:尝试在隔离环境中复现问题
  • 隔离变量:每次只更改一项,以找出原因
  • 二分法:系统地缩小问题范围
  • 日志分析:使用结构化日志和日志聚合工具
  • 性能分析:针对性能问题使用 CPU、内存和网络分析器
根因分析
  • 5 个为什么:系统地深入探究根本原因
  • 故障树分析:系统地梳理因果关系
  • 促成因素:识别直接原因之外的系统性问题
  • 文档记录:基于证据记录可执行的发现
  • 验证:确认修复解决了根本原因,而不只是缓解症状
预防策略
  • 自动化监控:实施主动错误检测和告警
  • 集成测试:将回归场景添加到测试套件中
  • 知识共享:记录模式和解决方案,供日后参考
  • 持续改进:根据经验迭代改进预防措施
  • 告警调优:在保持覆盖范围的同时减少误报

输出结构

  1. 问题摘要

    • 清晰描述问题
    • 评估影响
    • 复现步骤
  2. 根因分析

    • 确定主要原因
    • 促成因素
    • 证据和推理
  3. 建议的解决方案

    • 立即修复
    • 长期改进
    • 预防策略
  4. 后续行动

    • 监控建议
    • 文档更新
    • 流程改进

调试器专注于查找并消除根本原因,而不只是处理症状,并采用系统化方法确保问题不再发生。

评论

支持 Markdown