本章将讲解有关调试模式中断点的相关概念。
一、断点是什么?
- 断点是在特定点暂停程序执行的特殊标记,使用断点可以使你检查当前程序状态和行为。
- 断点一旦设置便保留在你的项目中,直到你明确删除它。
二、断点的类型
IDE 中通常会提供四种类型的断点:
- 行断点:可作用在任何一行代码上,图标为红色圆形。当程序执行到设置断点的行时将会被触发。
- 方法断点:当断点被标记在方法的定义上时生效,图标为红色菱形,在方法的进入和退出时将被触发。(方法断点需要在断点处右键,勾选功能才能生效)
- 变量断点:只能作用在变量的定义上,图标为红色眼睛。当程序读取或者写入被标记的变量时,断点均会触发。
- 异常断点:当程序抛出相对应的异常时将会触发,作用范围为全局,图标为红色闪电。
三、断点的状态
IDE中的断点状态通常分为八种,分别对应不同的情景。
- 常规状态:默认(原始)状态。
- 禁用状态:断点暂时处于禁用状态,不会被执行。
- 已验证状态:编译器会检查断点的设置是否合理。如果是,则将断点标记为已验证。
- 静音状态:断点暂时处于静音状态,不会被执行;其与禁用状态功能类似,不同点在于使用场景。
- 依赖状态:当一个断点的触发依赖于另一个断点时,显示为依赖状态。
- 挂起状态:挂起状态有两种类型,第一种是挂起全部线程,第二种是只挂起当前线程。当断点状态设置成了第二种方式后,只有当前线程会被堵塞,其他线程(程序)会正常执行,这在Spring Boot程序的测试中十分有用。
- 无效状态:断点的设置不是合理的,被标记的代码永远不可能被执行到。
- 警告状态: 如果断点的设置是合理的,但是存在其他问题,则编译器会向您发出警告。例如当被标记的方法可能不会被执行到时。