IDEA调试技巧总结
1、常用调试技巧(界面介绍)
(1)
Step Over
从当前断点处一步一步地往下执行,
遇到调用方法不会步入
,倘若已经执行到本方法的最后一行,下一次Step Over就会返回上层调用;
(2)
Step Into
当前断点调用了一个本地的方法时,可以使用该功能
进入被调用的方法
中;
(3)
Force Step Into
当前断点调用了一个类库方法时(引用的jar包),可以使用该功能
强行进入被调用的方法
中;
(4)
Step Out
返回
调用当前方法的调用处;
(5)
Run To Cursor
设置好光标位置后,点击此功能
直接运行到光标所在行
;
(6)
Resume Program
按照程序既定逻辑,运行到
下一个有效断点处
;
2、回退drop frame
【断点回退】 ==> 是回退到上一个方法调用的开始处,在IDEA里测试无法一行一行地回退或回到到上一个断点处,而是
回到上一个方法
。
(0)frame说明
(1)Drop Frame按钮
回退之前:
回退之后:
(2)在调用栈方法上选择要回退的方法,右键选择Drop Frame
回退到该方法的上一个方法调用处,此时再按F9(Resume Program),可以看到程序进入到该方法的断点处。
注意
【 断点回退】只能重新走一下流程,之前的某些参数/数据的状态已经改变了的是无法回退到之前的状态的,如对象、集合、更新了数据库数据等等(
已改变的数据无法回退!
)
3、条件断点
在设置断点处右键,弹出断点设置界面,在condition中输入想要的断点条件,点击done即可;
再次启动调试,只在满足设置的条件时,才会暂停。
4、热修改
当我们运行到断点处时,如果当前变量的值不是我们想要的,我们想看看当变量为其他值的时候,程序会发生什么,
可以在【
变量区
】选中该变量,然后
右击选择
Set Value
,然后就可以将变量修改为你想要的值,再进行程序的调试。
5、表达式求值
(1)查看变量
使用表达式来求解程序中没有的逻辑,比如我想查看当前变量fruit的长度,那么在弹出来的表达式求值中输入fruit.length(),回车执行即可。
(2)修改变量
还可以用【表达式求值】设置变量的值
6、新建变量监控
新建变量监控,对属性
右键选择
Add to Watches
就可以让我们关心的值一直展示在watch列表中,随着程序的执行,自动求值
7、多线程调试
可以在子线程逻辑的指定位置处,打上断点,然后
右击断点
,选择【
Thread模式
】;
然后启动调试,此时在调试面板中会出现的多个线程运行到此处都暂停了。
然后再全部放行。
8、主动抛出异常
在断点调试的时候,我们想看看如果异常发生了,程序是否有问题。但是此处的异常很难模拟,比如调用三方库函数,我们不想改动代码就能模拟出调用返回了一个异常。
可以在调试界面的左侧
选择当前的进程
,然后
右击选择【Throw Exception】
,在弹出框内给出具体的想要抛出的异常类型。
参考:
https://www.jianshu.com/p/12e12645547f