调试基础概念
断点调试是程序开发中最重要的调试技术之一,通过在代码中设置断点,可以暂停程序执行,观察变量状态、方法调用栈等信息。IntelliJ IDEA 提供了强大的调试功能,支持多种类型的断点设置。
断点类型与使用方法
1. 行断点(Line Breakpoints)
使用场景:在特定代码行暂停执行。
设置方法:
点击代码行号左侧的空白区域。
或使用快捷键 Ctrl+F8(Windows/Linux)或 Cmd+F8(Mac)。
特点:
红色圆点标记。
程序执行到该行时暂停。
可以查看当前作用域内的所有变量值。
2. 方法断点(Method Breakpoints)
使用场景:在方法入口或出口处暂停。
设置方法:
在方法声明行设置断点。
断点图标为菱形。
优势:
无需进入方法内部即可观察方法调用。
可以捕获方法的进入和退出。
3. 字段断点(Field Breakpoints)
使用场景:监控字段的读写操作。
设置方法:
在字段声明行设置断点。
紫色图标表示字段断点。
功能:
当字段被读取或修改时暂停执行。
特别适合调试并发问题和数据不一致。
4. 条件断点(Conditional Breakpoints)。
使用场景:只在满足特定条件时暂停。
设置方法:
右键点击已有断点。
选择 "More" 或直接输入条件表达式。
5. 异常断点(Exception Breakpoints)
使用场景:在抛出特定异常时暂停。
设置方法:
进入 Run → View Breakpoints 或使用 Ctrl+Shift+F8。
添加 Java Exception Breakpoints。
配置选项:
捕获任何异常或特定异常。
可选择在异常被捕获或未捕获时暂停。
调试界面详解
调试工具栏
Resume Program (F9):继续执行到下一个断点。
Pause Program:暂停正在运行的程序。
Stop (Ctrl+F2):停止调试会话。
View Breakpoints (Ctrl+Shift+F8):管理所有断点。
变量查看窗口
Variables:显示当前作用域的所有变量。
Watches:自定义监控表达式。
可以修改变量值进行测试。
调用栈窗口
显示方法调用链。
点击不同栈帧查看对应状态的变量。
高级调试技巧
1. 表达式求值(Evaluate Expression)
快捷键:Alt+F8。
在调试暂停时执行任意Java表达式。
实时查看表达式结果。
2. 强制返回(Force Return)
在方法执行过程中强制返回指定值。
跳过剩余代码执行。
3. 抛出异常(Throw Exception)
在当前位置抛出指定异常。
测试异常处理逻辑。
4. 单步调试
Step Over (F8):执行下一行,不进入方法。
Step Into (F7):进入方法内部。
Step Out (Shift+F8):跳出当前方法。
5. 断点管理
禁用/启用断点:右键点击断点。
导出/导入断点配置。
设置断点组,便于管理复杂调试场景。