今天在工作发现有些新入职的小伙伴们,在调试程序时不是很会正确使用IDEA所提供Breakpoints(断点),这里就简单的介绍下比较常用的功能。
快捷键:
切换行断点:Ctrl F8
编辑断点属性:Ctrl Shift F8
断点的类型
- 行断点:到达设置断点的代码行时暂停程序。此类断点可设置在任何可执行代码行上。
- 方法断点:在进入或退出指定方法或其实现之一时暂停程序,允许您检查方法的进入/退出条件。
- 字段观察点:在读取或写入指定字段时暂停程序。这允许您对与特定实例变量的交互做出反应。例如,如果在一个复杂过程结束时,您的某个字段的值明显错误,则设置字段观察点可能有助于确定故障的来源。
- 异常断点:当或其子类被抛出时暂停程序
Throwable
。它们全局应用于异常情况,不需要特定的源代码引用。与堆栈跟踪不同,在发生异常时暂停应用程序可让您在周围上下文或数据仍然可用时检查它们。
设置断点
补充:每次字段被赋值时,程序都会断点到此断点处,可以观察字段每次被赋了什么值
配置断点属性
本文简单介绍几项:
在IDEA中默认鼠标左击行号处设置断点,右击断点将出现上图弹框
-
Enabled
清除复选框可暂时禁用断点,但不将其从项目中删除。单步执行期间将跳过已禁用的断点。
您可以配置 IntelliJ IDEA 以在单击时启用/禁用断点,而不是将它们全部删除。为此,请转到设置 | 构建、执行、部署 | 调试器,并将删除断点选项设置为拖动到编辑器或单击鼠标中键。
-
Suspend
指定当断点被触发时是否暂停程序执行。
当您需要在不暂停程序的情况下记录某些表达式(例如,当您需要知道某个方法被调用了多少次时)或者您需要创建一个触发断点(当命中时将启用依赖断点)时,非暂停断点很有用。
对于暂停程序执行的断点,有以下策略可用:- 全部:当任何一个线程遇到断点时,所有线程都会被暂停。
- 线程:只有遇到断点的线程才会被暂停。
-
Condition
此选项用于指定每次遇到断点时检查的条件。如果条件计算结果为true
,则执行所选操作。否则,将忽略断点。 表达式的结果取自 return 语句。当没有 return 语句时,结果取自最后一行代码。- 在条件主体中,您可以使用:
this
(在非静态上下文中),例如,引用当前异常:!(this.entries.isEmpty())
- 多个语句,包括声明、循环、匿名类等
- 标签包含表达式中的跟踪实例或检查其布尔字段:
trackedObject_DebugLabel.isComplete()
- 在条件主体中,您可以使用:
此文只是描述了常用的功能,更多功能可以查看IDEA官网:IDEA使用文档
如果觉得有帮助的话,请打赏下博主吧!
大家可以关注下公众号: