易君召
易君召
发布于 2026-11-05 / 3 阅读
0

常用代码调试工具分类推荐

覆盖 本地 IDE 调试、命令行调试、日志 / 链路追踪、内存 & 性能调试、线上诊断、容器云原生调试,按语言和场景划分,都是工程里高频在用的。

一、IDE 内置调试器(日常开发首选,最常用)

优点:断点、单步、查看变量、watch、条件断点、表达式求值一站式,开箱即用

  1. IDEA Debugger(Java/Kotlin/Scala) SpringBoot、Maven/Gradle 项目标配,支持远程调试、热加载断点、线程调试、条件断点、异常断点。

  2. VS Code Debugger(全语言通用) 靠插件:Python、Go、C/C++、Java、Node.js、Rust。配置 launch.json,支持本地 / 远程 attach 调试。

  3. PyCharm Debugger(Python) Python 开发首选,支持多进程、gevent 协程调试,断点调试 jupyter。

  4. CLion(C/C++/Rust):基于 GDB/Lldb 封装

  5. Visual Studio(C#/C++):.NET 生态最强调试器

二、原生命令行调试器(底层、服务器无 GUI 场景)

  1. gdb:Linux 下 C/C++ 调试神器,断点、查看栈、core 文件分析、attach 正在运行进程

  2. lldb:macOS、FreeBSD,替代 gdb,语法更清爽,Apple 平台标配

  3. pdb(Python 内置)

    import pdb; pdb.set_trace()
    

    不用装额外包,简单脚本快速调试;进阶:ipdb(彩色增强版 pdb)

  4. node inspect / chrome devtools(NodeJS) node --inspect app.js,Chrome 浏览器 devtools 连进去断点调试 JS/TS

  5. dlv(Delve,Go 语言):Go 官方推荐调试器,IDE 底层也是它

三、线上链路、日志、分布式调试(微服务重点)

适合跨服务调用,没法本地断点的场景

  1. SkyWalking / Pinpoint / Jaeger:分布式链路追踪,看调用链、耗时、异常堆栈

  2. ELK(Elasticsearch+Logstash+Kibana)、Loki+Grafana:集中日志检索,线上查报错栈

  3. Sentry:异常捕获,自动上报堆栈、上下文、请求参数,前后端都能用,定位线上崩溃非常好用

  4. Arthas(Java 线上诊断神器,强推) 阿里开源,不用改代码、不用重启进程:查看方法入参返回值、监控方法耗时、看类源码、线程栈、热更新,生产 Java 故障排查必备

    常用命令:watch、trace、stack、jad

  5. Btrace:Java 动态字节码追踪(轻量埋点,比 Arthas 门槛高一点)

四、内存、性能、CPU / 堆分析工具(排查泄漏、OOM、CPU 飙高)

Java

  • JDK 自带:jstack(线程栈)、jmap(堆 dump)、jhat、jstat

  • MAT(Eclipse Memory Analyzer):分析 heap dump,定位内存泄漏

  • JProfiler / YourKit:商业级性能剖析,CPU、内存、锁分析,可视化很强

C/C++

  • Valgrind(memcheck):检测内存越界、内存泄漏、野指针(慢,适合测试环境)

  • AddressSanitizer (ASAN):编译期开启,速度比 valgrind 快很多,现在主流

  • ThreadSanitizer (TSAN):专门查多线程数据竞争

Python

  • memory_profiler:逐行内存占用

  • py-spy:非侵入式 Python 采样剖析,不用停服务,看 CPU 热点

Go

  • pprof(内置):CPU、内存、goroutine 泄漏分析,配合 go tool pprof

五、容器 & 云原生调试(Docker/K8s 场景)

  1. k9s + kubectl debug:k8s 里给 Pod 开临时调试容器、attach 进程

  2. dlv + kubectl port-forward:远程调试容器内 Go 服务

  3. ephemeral-container(临时调试容器):不用改镜像,直接在故障 Pod 里抓栈

  4. distroless 环境调试工具:busybox、nsenter

  5. otel(OpenTelemetry):统一可观测埋点,链路、指标、日志标准

六、网络调试辅助(很多 bug 根源是网络)

  • Wireshark:抓包

  • tcpdump:服务器命令行抓包

  • mitmproxy:中间人代理,调试 HTTP/HTTPS 接口

七、前端调试

  • Chrome DevTools:JS 断点、DOM、Network、Performance、Memory

  • React DevTools / Vue DevTools:框架专属调试插件

  • source-map:线上压缩代码还原堆栈

快速选型建议

  • 日常本地开发:IDE 自带 Debugger(IDEA / VSCode)

  • Java 生产不重启排查:Arthas

  • Java OOM、内存泄漏:MAT + jmap

  • Python 脚本快速打断点:ipdb

  • Go 调试:dlv + pprof

  • C/C++ 内存问题:ASAN

  • 分布式微服务异常:SkyWalking + Sentry + Loki

  • K8s 容器内排障:kubectl debug


本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。

原文链接 https://www.yijunzhao.cn/archives/common-code-debugging-tools-category-recommendation

欢迎访问 小易撩挨踢

https://www.yijunzhao.cn/