今天我们聊聊日常开发中常用的 debug 功能
本文的环境:
操作系统: windows 10
IDE: idea 2020.3
1 简介
1 以 DEBUG 模式启动
2 设置断点,也可以通过 Ctrl + F8 快捷键来设置/取消
3 8个调试按钮,后面会一一介绍
4 服务按钮,可以关闭/启动服务,设置断点,放行等
5 方法调用栈,这里显示了该线程调试所经过的所有方法,勾选右上角的[Show All Frames]按钮,就不会显示其它类库的方法了,否则这里会有一大堆的方法。
6 variables ,变量区,可以查看当前断点之前的当前方法内的变量
7 watches ,观察变量的实时变化情况
2 8个调试按钮
1 Show Execution Point (Alt + F10):如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行。

2 Step Over (F8):步过,一行一行地往下走,如果这一行上有方法不会进入方法。
3 Step Into (F7):步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法。
4 Force Step Into (Alt + Shift + F7):强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。
5 Step Out (Shift + F8):步出,从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值。
6 Drop Frame (默认无):回退断点,后面详细说明。
7 Run to Cursor (Alt + F9):运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。
8 Evaluate Expression (Alt + F8):计算表达式,后面会详细说明。
3 服务按钮
1 rerun 重新启动程序
2 Resume Program (F9):恢复程序,跳过当前断点,继续运行
3 Pause Program:暂停程序,启用Debug。目前没发现具体用法。
4 Stop 'xxx' (Ctrl + F2):连续按两下,关闭程序。
5 View Breakpoints (Ctrl + Shift + F8):查看所有断点,后面会涉及到。
6 Mute Breakpoints:使断点生效/失效,选择这个后,所有断点变为灰色,断点失效,按F9则可以直接运行完程序。再次点击,断点变为红色,有效。
4 计算表达式
即 2 中的第八个按钮
- 两个功能
-
- 动态获取变量或参数的值,也可以是方法的值
- 设置变量值,可以改变变量的值,方便我们调试不同值的情况
5 设置断点条件
通常,当我们在遍历一个比较大的集合或数组时,在循环内设置了一个断点,难道我们要一个一个去看变量的值?那肯定很累,说不定你还错过这个值得重新来一次。
右键断点。
或者在 3 中的 view breakpoints 中设置,还能将断点行以日志形式输出到控制台
6 多线程调试
IDEA在Debug时默认阻塞级别是ALL,会阻塞其它线程,只有在当前调试线程走完时才会走其它线程。可以在View Breakpoints里选择Thread
具体作用可以参考我的另一篇文章中踩到的坑
7 回退断点
- 回退的方式有两种
-
- 一种是Drop Frame按钮,按调用的方法逐步回退,包括三方类库的其它方法。
- 第二种方式,在调用栈方法上选择要回退的方法,右键选择Drop Frame,回退到该方法的上一个方法调用处,此时再按F9(Resume Program),可以看到程序进入到该方法的断点处了。