SuperAPI AI 工具集

debugging

编程与开发

查看项目

更新于 10-15 10:59

技能介绍

用途

本技能提供跨语言、跨平台的系统化调试方法论、工具与工作流,帮助开发者定位并修复代码缺陷、内存问题、网络故障与性能瓶颈。当用户提出“调试这段代码”“找出 bug”“为什么失败”“追踪错误”“调试内存”等请求时适用。

主要能力

系统化调试方法论

提供五步调试流程:复现(可靠触发 bug)、隔离(缩小到最小可复现案例)、定位(确定根因而非症状)、修复(针对性修正根因)、验证(确认修复且无回归)。强调记录环境信息、创建最小复现、使用二分法隔离、基于假设验证而非随机猜测。

堆栈跟踪阅读

讲解 Node.js、Python、Java 堆栈跟踪的结构与阅读策略:从错误消息开始,定位自己代码的第一帧,理解调用链;Python 自下而上阅读,Java 关注“Caused by”链。提供搜索错误消息、结合 git blame 检查近期变更等技巧。

浏览器 DevTools 调试

涵盖 Chrome DevTools 的 Sources 面板(断点、条件断点、日志点、单步执行、监视表达式)、Console 技巧(console.table、group、time、assert、trace)、Network 面板(XHR 过滤、请求响应头、时序分析、网络限速、复制为 cURL)、Performance 面板(火焰图、长任务、布局抖动)。同时介绍 Firefox DevTools 的 CSS Grid 检查器、无障碍检查器与网络面板编辑重发功能。

语言专用调试器

  • Node.js:内置 Inspector(--inspect、--inspect-brk)、VS Code launch.json 配置、ndb、debugger 语句。
  • Python:pdb 内置调试器及常用命令、ipdb、pudb、VS Code debugpy 配置、事后调试(pdb.post_mortem)。
  • C/C++:GDB 与 LLDB 的断点、单步、变量查看、调用栈、监视点等命令。
  • Go:Delve(dlv)的断点、goroutine 查看、栈追踪。
  • Java:JDB 的断点、单步、变量与线程查看。

内存泄漏检测

  • Node.js:--max-old-space-size、堆快照、process.memoryUsage 监控、常见泄漏模式(全局变量、未移除监听器、闭包、无界缓存)。
  • Python:tracemalloc 快照统计、objgraph 对象引用可视化。
  • C/C++:Valgrind 的 leak-check、memcheck、massif 堆剖析。
  • Chrome Memory Profiler:堆快照对比、分离 DOM 节点检测、时间线分配插桩。

网络调试

浏览器 Network 标签、curl 详细输出与时序分解、tcpdump 抓包、Wireshark 显示过滤器与 TCP 流跟踪、DNS 调试(dig +trace、记录类型查询、反向查询)。

性能剖析

火焰图(Node.js 0x、Python py-spy、Go pprof)、Node.js 内置 profiler 与 clinic.js、Python cProfile/pstats 与 line_profiler、Go pprof HTTP 端点。

竞态条件调试

提供增加日志时间戳、提高并发、使用竞态检测器、简化并发代码等策略;涵盖 Go Race Detector、C/C++ ThreadSanitizer、Python 线程日志与锁。

使用方式

本技能以文档形式提供调试知识与命令示例,用户可根据具体语言与场景查阅对应章节,复制命令或配置到本地环境执行。所有代码与命令均保持原样,可直接参考使用。

适用场景

  • 日常代码缺陷排查与修复
  • 内存泄漏与性能瓶颈分析
  • 网络请求失败与延迟问题定位
  • 并发竞态条件排查
  • 跨语言调试工具选型与配置

限制

本技能为调试知识集合,不包含自动化调试执行能力;具体工具需用户本地安装并具备相应环境。部分命令涉及系统权限(如 tcpdump 需 sudo)。资料未提供收费、价格或平台支持信息。