RubyMine 2025.2 Help

断点

断点是能够使程序在特定点暂停执行的特殊标记。 这使您能够检查程序的状态和行为。 断点可以是简单的,例如,在达到某行代码时暂停程序,或者涉及更复杂的逻辑,例如检验 附加条件写入日志 等等。

一旦设置了断点,除非明确移除,否则它将一直保留在您的项目中, 临时断点除外。

断点类型

在 RubyMine 中有以下类型的断点:

  • 行断点 :在到达设置断点的代码行时暂停程序。 这种类型的断点可以设置在任何可执行的代码行上。

  • 异常断点 :在抛出指定异常时暂停程序。 它们在任何情况下都适用,不需要特定的源代码引用。

设置断点

设置行断点

  • 点击可执行代码行的装订区域,设置断点。 或者,将文本光标放在行上并按下 Ctrl+F8

    行断点
  • 要设置临时行断点,请按 Ctrl+Alt+Shift+F8。 或者按住 Alt 并点击栏边。 此断点将在命中后立即从您的项目中删除。

设置异常断点

  1. Ctrl+Shift+F8 或从主菜单中选择 运行 | 查看断点

  2. 断点 对话框中,按 Alt+Insert 或单击 "添加"按钮 ,并选择 Ruby 异常断点JavaScript 异常断点

    创建异常断点
  3. 选择异常类 对话框中,指定来自库或项目的异常类。

管理断点

移除断点

  • 对于非异常断点:点击装订区域的断点。

  • 对于所有断点:转到 运行 | 查看断点 Ctrl+Shift+F8 的主菜单,选择断点,然后单击 移除 或按下 Delete

为了避免意外删除断点及其参数,您可以选择通过将它们拖到编辑器或点击鼠标中键来删除断点。 为此,请前往 设置 | 构建、执行、部署 | 调试器 并选择 拖动到编辑器或使用中键点击。 点击断点将 启用或禁用它。

静音断点

如果您暂时不需要在断点处暂停,可以将其 静音。 这使您能够在不离开调试器会话的情况下恢复正常程序操作。 之后,您可以取消静音断点并继续调试。

  • 点击 静音断点 按钮 静音断点按钮Debug 工具窗口的工具栏中。

启用/禁用断点

当您移除断点时,其 内部配置会丢失。 若要在不丢失断点参数的情况下暂时关闭单个断点,您可以 disable 它:

  • 对于非异常断点:右键点击并根据需要设置 已启用 选项。 或者,您也可以按住 Alt 点击断点,或使用中键单击断点来完成此操作。 对于中键,请确保未将删除断点的操作 分配给它

  • 对所有断点:点击 运行 | 查看断点 Ctrl+Shift+F8 ,然后在列表中选中/取消选中断点。

移动 / 复制断点

  • 要移动断点,请将其拖到另一行。

  • 要复制断点,请按住 Ctrl 并将断点拖到另一行。 这将在目标位置创建具有相同参数的断点。

查看所有设置的断点

您可以在 书签 工具窗口中查看所有断点的列表。 当您在代码中设置断点后,断点会自动添加到工具窗口中的专用列表中。

  • 在主菜单中,转到 """ 视图 | 工具窗口 | 书签 """ 或按 Alt+2 并展开 断点 列表。

书签工具窗口

分组断点

您可以将断点组织到组中,例如,如果您需要标记出针对特定问题的断点。

  • 断点 对话框 Ctrl+Shift+F8 中,选择您想要放置在组中的断点,然后从菜单中选择 移动到组

配置断点的属性

根据断点类型,您可以配置附加属性,从而使其操作符合特定需求。 最常用的选项通过 意图可用。

  • 要访问断点意图,请将文本光标放在有断点的行上,然后按 Alt+Enter。 在需要快速配置基本断点属性时,请使用此选项。

    断点意图
  • 要访问完整的属性列表,请右键点击断点并点击 更多 或按 Ctrl+Shift+F8

意图参考

意图

描述

移除断点

移除所选行的断点。

禁用断点

禁用 选定行的断点。

编辑断点

打开一个对话框,其中包含最常用的断点 属性。 更多属性,请点击 更多 或按 Ctrl+Shift+F8

断点属性参考

在本章中,您可以找到有关断点功能的信息。

已启用

取消选中此复选框以暂时禁用断点,而不将其从项目中移除。 禁用的断点将在单步执行期间被 跳过

您可以配置 RubyMine 以通过点击启用/禁用断点,而不是完全移除它们。 要执行此操作,请转到 设置 | 构建、执行、部署 | 调试器 并将 移除断点 选项设置为 拖动到编辑器中或使用鼠标中键点击

暂停执行

指定在断点命中时是否暂停程序执行。

非挂起断点在您需要记录某个表达式而不暂停程序时非常有用(例如,当您需要知道方法被调用的次数时)或在您需要创建一个 触发断点以在触发时启用 依赖断点

条件

该选项用于指定在每次命中断点时检查的条件。 条件是一个 Ruby 布尔表达式,评估为 truefalse ,例如 @user.name == "Example User"。 如果条件计算结果为 true ,则执行所选操作。 否则,断点将被忽略。

表达式的结果取自 return 语句。 当没有 return 语句时,结果取自代码的最后一行。

在评估表达式时,请确保您意识到它们可能产生的副作用,因为这些副作用可能会影响程序的行为和结果。

日志选项

当断点被触发时,可将以下内容记录到控制台:

  • “断点命中”消息(M) :一条类似 Breakpoint reached at ocean.Whale.main(Whale.java:5) 的日志消息。

  • 堆栈跟踪(K) :当前帧的堆栈跟踪。 如果您想在不中断程序执行的情况下检查导致此点的路径,这将非常有用。

  • 求值并记录(E) :任意表达式的结果。

    表达式的结果取自 return 语句。 当没有 return 语句时,结果取自代码的最后一行,这行代码不必是表达式:文字常量也适用。 这可以用来生成自定义消息或在程序执行时跟踪一些值。

    在评估表达式时,请确保您意识到它们可能产生的副作用,因为这些副作用可能会影响程序的行为和结果。

设置日志断点

  1. (可选)如果您想要记录的表达式在编辑器中可见,请选中它。

  2. 按住 Shift 并点击边栏。

命中后移除

指定断点在被命中一次后是否应从项目中移除。

禁用直到命中以下断点

当在 禁用直到命中以下断点 框中选择断点时,它会作为当前断点的触发器。 这 禁用当前断点,直到指定断点被触发。

您还可以选择是在发生这种情况后再次禁用它,还是保持启用状态。

此选项在您只需要在特定条件下或执行某些操作后挂起程序时很有用。 在这种情况下,触发断点通常不需要停止程序执行,并被设置为 非暂停状态

断点状态

断点可能具有以下状态:

状态

描述

已验证

当您开始调试器会话后,调试器会检查是否技术上可以在断点处暂停程序。 如果是,则调试器将断点标记为 已验证

警告

如果技术上可以在断点处暂停程序,但存在相关问题,调试器会将断点状态设置为 warning。 例如,当无法在某个方法的某个实现处暂停程序时,可能会发生这种情况。

无效

如果在断点处技术上无法暂停程序,调试器会将其标记为 无效。 这经常发生是因为该行没有可执行代码。

非活动/依赖

当断点 配置为在另一个断点被触发前禁用时,它会被标记为非活动/依赖状态,并且此事件尚未发生。

静音

所有断点都已暂时失效,因为它们已被 静音

已禁用

此断点暂时处于非活动状态,因为它已被 禁用

非挂起

此断点的 挂起策略设置为命中时不挂起执行。

断点图标

根据它们的 类型状态 ,中断点会被标记以下图标:

折线图

异常

常规

行断点

异常断点

已禁用

禁用行断点

禁用异常断点

已验证

已验证行断点

静音

静音行断点

非活动/依赖

不活跃/从属行断点

静音已禁用

已禁用的行断点

非挂起

非挂起行断点

已验证的非挂起

已验证的非挂起行断点

无效

提高效率的提示

将断点用于“printf”调试

请使用 非中断 日志断点(在其他调试器中有时称为监视点)代替在您的代码中插入打印语句。 这提供了一种更灵活且集中的方式来处理调试日志消息。

更快速地设置日志断点

要设置一个 不断点 日志断点,请按住 Shift 并点击边栏。 这不会暂停程序执行,而是记录一条类似于 Breakpoint reached 的消息。 如果您想记录编辑器中面前的某个表达式,请在按住 Shift 并点击装订线之前先选择它。

添加断点描述

如果您的项目中有许多断点,您可以为这些断点添加描述以便于搜索。 要执行此操作,请右键点击 断点 对话框 Ctrl+Shift+F8 中的一个断点,然后从菜单中选择 编辑说明。 现在当您开始输入断点名称时,它会获得焦点。

跳转到源

要从 断点 对话框跳转到设置选定断点的代码行,请按 F4

最后修改日期: 2025年 9月 26日