IDEA 调试技巧
打印日志能解决问题,但效率低。断点调试可以逐行观察程序执行、查看变量值、追踪方法调用,快速定位问题根源。
快捷键速查
| 功能 | Windows/Linux | macOS |
|---|---|---|
| 设置断点 | Ctrl+F8 | Cmd+F8 |
| 开始调试 | Shift+F9 | Ctrl+D |
| 单步跳过 | F8 | F8 |
| 单步进入 | F7 | F7 |
| 单步跳出 | Shift+F8 | Shift+F8 |
| 恢复执行 | F9 | Cmd+Alt+R |
| 停止调试 | Ctrl+F2 | Cmd+F2 |
断点类型
行断点
在代码行号旁边点击,设置普通断点。程序运行到该行时暂停。
条件断点
在循环中断点处右键,设置条件,只在满足条件时暂停:
java
for (int i = 0; i < 1000; i++) {
process(i); // 只想在 i == 500 时暂停
}设置方法:右键断点 → Conditions → 输入 i == 500。
异常断点
在抛出特定异常时自动中断,无需手动设置断点。
设置方法:Ctrl+Shift+F8 → + → Java Exception Breakpoints → 输入异常类型如 NullPointerException。
调试视图
| 区域 | 内容 |
|---|---|
| Frames | 方法调用栈 |
| Variables | 当前作用域的变量值 |
| Watches | 自定义监视表达式 |
| Console | 程序输出 |
查看变量:基本类型直接显示值,对象可展开查看属性,数组显示长度和元素,集合显示元素列表。
实用技巧
条件断点
右键断点 → Conditions → 输入条件表达式。
Watch 变量
在 Variables 面板右键变量 → "Add to Watches",持续监控特定表达式的值。
评估表达式
按 Alt+F8 打开表达式计算器,可以在调试时执行任意表达式。
强制返回
在方法内设置断点,右键断点 → "Force Return",强制方法返回特定值。
断点命中次数
右键断点 → "More" → 设置 "Hit Count",只在循环第 N 次执行时暂停。
常见问题
断点无效,程序没有停下来?确保处于 Debug 模式(Shift+F9),不是 Run 模式;检查断点是否被禁用;确认断点所在代码路径被执行。
变量面板显示 "was muted"?变量在当前作用域不可见,可能是已出栈的局部变量。
后续可阅读:常见运行错误、Java 程序运行机制、Java 垃圾回收简介
