OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  debug-pro:系统化调试方法与特定语言调试指南

debug-pro:系统化调试方法与特定语言调试指南

 
  visionos ·  2026-02-02 01:30:56 · 22 次点击  · 0 条评论  

debug-pro

系统化调试方法论与各语言调试命令。

七步调试法

  1. 复现 — 让问题稳定重现。记录确切的操作步骤、输入和环境。
  2. 隔离 — 缩小问题范围。可通过注释代码、二分查找法、或使用 git bisect 检查近期提交来实现。
  3. 假设 — 对根本原因形成一个具体、可验证的假设。
  4. 探查 — 添加有针对性的日志、断点或断言。
  5. 验证 — 确认根本原因。若假设错误,则返回第 3 步。
  6. 修复 — 应用最小化的正确修复。调试时克制重构的冲动。
  7. 回归测试 — 编写能捕获此错误的测试用例,并验证其通过。

语言相关调试

JavaScript / TypeScript

# Node.js 调试器
node --inspect-brk app.js
# Chrome DevTools 访问:chrome://inspect

# 控制台调试
console.log(JSON.stringify(obj, null, 2))
console.trace('此处调用堆栈')
console.time('perf'); /* 代码 */ console.timeEnd('perf')

# 内存泄漏排查
node --expose-gc --max-old-space-size=4096 app.js

Python

# 内置调试器
python -m pdb script.py

# 代码中设置断点
breakpoint()  # Python 3.7+

# 详细内存追踪
python -X tracemalloc script.py

# 性能分析
python -m cProfile -s cumulative script.py

Swift

# LLDB 调试
lldb ./MyApp
(lldb) breakpoint set --name main
(lldb) run
(lldb) po myVariable

# Xcode: Product → Profile (Instruments)

CSS / 布局

/* 高亮所有元素轮廓 */
* { outline: 1px solid red !important; }

/* 调试特定元素 */
.debug { background: rgba(255,0,0,0.1) !important; }

网络

# HTTP 调试
curl -v https://api.example.com/endpoint
curl -w "@curl-format.txt" -o /dev/null -s https://example.com

# DNS
dig example.com
nslookup example.com

# 端口
lsof -i :3000
netstat -tlnp

Git Bisect

git bisect start
git bisect bad              # 标记当前提交为有问题的
git bisect good abc1234     # 标记一个已知正常的提交
# Git 会检出中间提交 — 测试后执行:
git bisect good  # 或 git bisect bad
# 重复直到找到引入问题的提交
git bisect reset

常见错误模式

错误 可能原因 修复方法
Cannot read property of undefined 缺少空值检查或数据结构不符 添加可选链 (?.) 或验证数据
ENOENT 文件/目录不存在 检查路径、创建目录、使用 existsSync
CORS error 后端缺少 CORS 头 添加带有正确来源的 CORS 中间件
Module not found 依赖缺失或导入路径错误 npm install,检查 tsconfig 路径
Hydration mismatch (React) 服务端与客户端渲染的 HTML 不一致 确保渲染一致性,使用 useEffect 处理仅客户端逻辑
Segmentation fault 内存损坏、空指针 检查数组边界、指针有效性
Connection refused 服务未在预期端口运行 检查服务是否启动,验证端口/主机
Permission denied 文件/网络权限问题 检查 chmod、防火墙、sudo 权限

快速诊断命令

# 哪个进程占用了此端口?
lsof -i :端口号

# 这个进程在做什么?
ps aux | grep 进程名

# 监控文件变化
fswatch -r ./src

# 磁盘空间
df -h

# 系统资源使用情况
top -l 1 | head -10
22 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 33 ms
Developed with Cursor