GoLand 2025.3 Help

断点

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

设置后,除 临时断点 外,断点将保留在项目中,直到您显式将其移除。

断点类型

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

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

  • 异常断点 :当 panic() 抛出时暂停程序。

设置断点

设置行断点

  • 点击可执行代码行的装订区域,设置断点。 或者,将插入符号置于该行并按 Ctrl+F8

    调试行断点

设置异常断点

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

  2. 断点 对话框中,选择 转到错误断点JavaScript 异常断点

    创建异常断点

管理断点

删除断点

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

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

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

将断点静音

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

  • 点击 将断点静默 按钮 静音断点按钮调试 工具窗口的工具栏中。

启用/禁用断点

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

  • 对于非异常断点:右键点击并根据需要设置 已启用 选项。 或者,您也可以在按住 Alt 的同时点击断点,或使用鼠标中键点击断点。 对于鼠标中键,请检查未将删除断点操作 分配给它

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

移动 / 复制断点

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

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

查看所有设置的断点

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

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

书签工具窗口

分组断点

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

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

配置断点的属性

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

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

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

意图参考

意图

描述

移除断点

移除所选行的断点。

禁用断点

禁用 选定行的断点。

编辑断点

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

断点属性参考

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

已启用

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

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

挂起

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

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

条件

该选项用于指定在每次命中断点时检查的条件。 如果条件计算结果为 true ,则执行所选操作。 否则,断点将被忽略。

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

对表达式求值时,请注意其可能产生的副作用,因为这些副作用可能会影响程序的行为和结果。

日志选项

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

  • “断点命中”消息(M) :一条类似 Breakpoint reached 的日志消息。

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

  • 求值并记录(E) :任意表达式的结果,例如, "Initializing"len(users)

    评估和记录设置

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

    对表达式求值时,请注意其可能产生的副作用,因为这些副作用可能会影响程序的行为和结果。

设置日志断点

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

  2. 按住 Shift 并点击边栏。

命中后移除

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

在命中以下断点之前禁用

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

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

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

断点状态

断点可能具有以下状态:

状态

描述

无效

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

静音

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

已禁用

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

非挂起

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

断点图标

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

异常

常规

行断点

异常断点

已禁用

禁用行断点

禁用异常断点

静音

静音行断点

静音已禁用

已禁用的行断点

非挂起

非挂起行断点

无效

无效断点

提高效率的提示

使用断点进行调试打印

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

更快速地设置日志断点

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

添加断点描述

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

最后修改日期: 2025年 12月 5日