GoLand 2025.2 Help

断点

断点是特殊标记,可在特定位置挂起程序的执行。 这样,您可以检查程序的状态和行为。 断点可以很简单,例如在到达某代码行时挂起程序,也可以涉及更复杂的逻辑,例如检查 附加条件写入日志等。

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

断点类型

GoLand 中提供以下类型的断点:

  • 行断点 :在执行到设置断点的代码行时挂起程序。 此类断点可设置在任何可执行代码行上。

  • 异常断点 :在抛出 panic() 时挂起程序。

设置断点

设置行断点

  • 在需要设置断点的可执行代码行的标记栏中单击。 或者,将插入符号放在该行并按下 Ctrl+F8

    调试行断点

设置异常断点

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

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

    创建异常断点

管理断点

删除断点

  • 对于非异常断点:单击标记栏中的断点。

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

为避免意外删除断点并丢失其参数,您可以选择将其拖动到编辑器中或使用鼠标中键删除断点。 执行此操作,请转到 设置 | 构建、执行、部署 | 调试器 并选择 拖动到编辑器或使用中键单击。 然后单击断点将 启用或禁用该断点。

静音断点

如果暂时不需要在断点处中断,您可以 静音断点。 这使您无需离开调试会话即可恢复程序的正常运行。 此后,您可以取消静音断点并继续调试。

  • 点击 静音断点 按钮 “静音断点”按钮 ,该按钮位于 调试 工具窗口的工具栏中。

启用/禁用断点

删除断点时,其 内部配置将丢失。 如需暂时关闭某个断点而不丢失其参数,您可以 禁用该断点:

  • 对于非异常断点:右键点击断点,并按需设置 已启用 选项。 或者,可在按住 Alt 的同时单击断点,或使用鼠标中键单击该断点来实现。 对于鼠标中键,请确保未将删除断点功能 分配给该按键

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

移动/复制断点

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

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

查看所有已设置断点

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

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

书签工具窗口

对断点分组

您可以将断点组织到不同的组中,例如,若需要标记与特定问题相关的断点。

  • 断点 对话框 Ctrl+Shift+F8 中,选择要放入某个组的断点并从菜单中选择 移动到分组

配置断点属性

根据断点类型,您可以配置其他属性,使其行为更符合特定需求。 最常用的选项可通过 意图操作访问。

  • 要访问断点的意图操作,将光标置于包含断点的行并按 Alt+Enter。 在需要快速配置断点的基本属性时,请使用此选项。

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

意图操作参考

意图操作

描述

移除断点

移除选定行处的断点。

禁用断点

禁用选定行处的断点。

编辑断点

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

断点属性参考

在本章中,您可以了解与断点相关的功能信息。

已启用

清除复选框以临时禁用断点,但不将其从项目中移除。 禁用的断点在 单步调试时会被跳过。

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

暂停

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

非挂起断点适用于需要记录某些表达式而不暂停程序时(例如,了解某个方法被调用的次数),或是当您需要创建一个 触发断点以在其命中时启用 依赖断点时。

条件

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

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

在计算表达式时,请确保了解它们可能产生的副作用,这些副作用可能会影响程序的行为和结果。

日志记录选项

断点被命中时,可以将以下内容记录到控制台:

  • “断点命中”消息(M) :记录类似 已到达断点 的日志消息。

  • 堆栈跟踪(K) :当前帧的堆栈跟踪。 这在您需要查看达到某点的调用路径而又不希望中断程序执行时非常有用。

  • 求值并记录(E) :任意表达式的结果,例如 “正在初始化”len(users)

    “计算并记录”设置

    表达式的结果取自 return 语句。 如果没有 return 语句,则结果取自代码最后一行,其不必是表达式,字面量也可。 此功能可用于生成自定义消息或记录程序执行过程中的一些值。

    在计算表达式时,请确保了解其可能产生的副作用,这些副作用可能影响程序行为和结果。

设置日志断点

  1. (可选)如果您想记录的表达式就在编辑器中,可将其选中。

  2. 按住 Shift 并点击标记栏。

命中后删除

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

在命中以下断点之前禁用

当在 在命中以下断点之前禁用 框中选择一个断点时,它将充当当前断点的触发器。 这会在指定断点被命中前 禁用当前断点。

您还可以选择是否在触发后再次禁用它或保持启用状态。

在仅需在特定条件或操作后挂起程序时,此选项非常有用。 在此情况下,触发断点通常无需中断程序执行,因此将其设置为 非挂起

断点状态

断点可能具有以下状态:

状态

说明

无效

如果从技术上无法在断点处挂起程序,调试器会将其标记为 无效。 这通常是由于该行没有可执行代码。

已静音

所有断点已被 静音 ,因此暂时处于非活动状态。

已禁用

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

不挂起

已为该断点设置 挂起策略 ,使其在命中时不会挂起程序执行。

断点图标

根据断点的 类型状态 ,会使用以下图标进行标记:

异常

常规

行断点

异常断点

已禁用

已禁用行断点

已禁用异常断点

已静音

已静音行断点

已静音且禁用

已静音禁用行断点

不挂起

不暂停的行断点

无效

无效断点

效率提示

使用断点进行调试打印

请使用 non-suspending logging 断点(在其他调试器中有时称为 watchpoint),而不是在代码中插入打印语句。 这提供了一种更灵活且更集中的方式来处理调试日志消息。

更快速地设置日志断点

要设置 non-suspending logging 断点,请按住 Shift ,然后点击边距。 这不会暂停程序执行,而是记录类似 已到达断点 的消息。 如果您想记录编辑器中显示的某个表达式,请在按住 Shift 并点击边距之前先选中该表达式。

添加断点描述

如果项目中存在多个断点,您可以为断点添加描述以便搜索。 为此,请在 断点 对话框中右键点击某个断点,按 Ctrl+Shift+F8 ,然后从菜单中选择 编辑描述。 现在当您开始输入断点名称时,它将获得焦点。

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