Eclipse Debug 调试

以下是 Eclipse Debug 调试的终极速成 + 进阶全家桶(2025 年最新版),看完这篇你立刻能比 95% 的人更快、更准、更爽地定位 bug。

一、先记住这 8 个核心快捷键(背下来,一辈子受用)

快捷键功能记忆口诀
F11直接启动 Debug(上一次配置)红色虫子最快键
F5步入(Step Into)进方法里看
F6步过(Step Over)一行一行走,不进方法
F7步出(Step Out)从当前方法跳出来
F8继续(Resume)跑到下一个断点或结束
Ctrl + Shift + B在当前行打/取消断点最快打断点方式
Ctrl + Shift + I选中表达式 → 实时求值看变量值神器
Ctrl + R运行到光标行(Run to Line)快速跳过大循环

二、Debug 界面核心区域(从上到下记清楚)

  1. Debug 视图(左上)
  • 显示所有线程,绿色那个是当前停的线程
  • 右键 → Suspend / Resume / Terminate
  1. Variables 视图(右上)
  • 查看所有局部变量、this、参数
  • 右键变量 → Change Value → 临时改值测试
  1. Breakpoints 视图(右边标签)
  • 所有断点一览,勾选框可批量启用/禁用
  • 右键 → Add Condition(条件断点)
  1. Expressions 视图(可打开)
  • 拖一个表达式进来,运行时实时显示值(比如 user.getOrders().size())

三、10 个最实用调试技巧(直接抄)

需求操作方式(复制粘贴就行)
1. 条件断点(只在 id=100 时停)断点右键 → Breakpoint Properties → Condition → 输入:id == 100
2. 循环10000次只看第500次条件断点:i == 500
3. 任何地方抛空指针都停Breakpoints 视图 → J! → Add Java Exception Breakpoint → NullPointerException
4. 跳过 Spring/MyBatis 源码Debug Configurations → Source → 勾选你的项目 → 排除 org.springframework.** 等
5. 实时改变量值测试Variables 视图 → 右键变量 → Change Value → 输入新值
6. 实时执行任意代码Display 视图(没打开就 Alt+Shift+D)→ 输入 user.setName("新名字") → Ctrl+U 执行
7. 方法不执行完直接返回假数据在 Variables 视图右键当前方法栈 → Force Return → 输入 return new ArrayList<>()
8. 快速跳到调用我的地方在方法上右键 → Show Call Hierarchy 或在代码里 Ctrl+Alt+H
9. 热替换代码(改了不重启)默认开启 + 装 Spring Boot DevTools,改完保存立刻生效
10. 远程调试生产环境服务器启动加参数:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
Eclipse 新建 Remote Java Application → 填 IP:8000

四、经典 Debug 场景实战模板

场景推荐操作顺序
接口返回空,查不出来哪层丢了1. 在 Controller 方法第一行打断点
2. F6 一路步过
3. 每层看返回值是否为空
4. 发现空了就 F5 进上一层继续查
死循环卡住1. F8 暂停 → Debug 视图看哪个线程卡住
2. 双击线程 → 看堆栈定位到 while(true)
多线程数据错乱1. 在关键变量修改处打断点
2. 右键断点 → Thread → 勾选只在特定线程停
想看集合里第10个元素Variables 视图展开 list → 右键 → Copy → Paste Value(粘贴到浏览器看)

五、一句话总结

日常调试永远只用这三步:

  1. Ctrl + Shift + B 打断点(怀疑哪里有问题点哪里)
  2. F11 启动 Debug
  3. F6 走 + F5 进 + Ctrl + Shift + I 看变量

现在告诉我你正在遇到的 bug 是什么?我直接告诉你该在哪里打断点、用什么条件断点、怎么最快定位!
(比如:接口返回空?死循环?多线程问题?Spring Bean 没注入?)快发来!

文章已创建 2615

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部