Intellij调试断点高级使用方法

摘要:在调试程序的时候断点设置是一个常用功能,这里介绍一下 Intellij 中断点的高级功能。

断点条件

有时候我们在调试一个循环的时候,可能循环次数太多,我们只关心某一个中条件下的处理,这时候如果代码没有条件处理,那么加断点只能在循环体内,然后手动继续,知道找到我们需要的条件。

这时候 Intellij 支持加入条件的断点设置,这里我们举一个例子,比如我们在调试的时候发现 ConcurrentHashMap 类中的 get(Object key) 方法总是抛出没有捕获到的 NPE,但是这个类调用太多了,没办法确定到底是那次调用抛出的异常,如果手动继续再查看不现实 (大项目可能要调用成百上千次),这时候我们就可以在断点处加入条件,只有当 key 为 null 的时候,断点才会生效,这样一下就可以定位到问题所在了。下面介绍一下具体操作步骤:

打开断点管理

邮件点击红色的 breakpoint,然后选择 More, 当然也可以使用快捷键 Ctrl+Shift+F8

enter description here

断点管理

enter description here

加入条件

我们可以在 Condition 处加入所需要的断点条件即可 (参考上图)。

最后我们会发现这个断点的标志变成带有问号的断点,表示其并不是一定暂停的,满足条件才会暂停。

enter description here