断点
断点是能够使程序在特定点暂停执行的特殊标记。 这让您可以 检查程序状态并 逐步执行。 可以向断点添加 条件 ,也可以使用它们在不停止程序的情况下 记录值。
一旦设置了断点,除非明确移除,否则它将一直保留在您的项目中, 临时断点除外。
断点类型
在 GoLand 中有以下类型的断点:
行断点 :在到达设置断点的代码行时暂停程序。 这种类型的断点可以设置在任何可执行的代码行上。
异常断点 :当发生未恢复的 panic 或致命运行时错误时暂停程序。 Go 错误断点默认已启用。 在 macOS 上,即使禁用此断点,调试器也会在遇到这些错误时停止。
设置断点
设置行断点
点击可执行代码行的装订区域,设置断点。 或者,将文本光标放在行上并按下 Ctrl+F8。

设置条件断点和日志断点
要设置仅在满足条件时才暂停应用程序(条件断点)或记录消息(日志断点或日志点)的断点:
右键点击要设置断点的行或声明。
在出现的菜单中,分别选择 添加条件断点 或 添加日志记录断点。
在弹出的窗口中,指定你想要记录其结果的条件或表达式。
设置异常断点
按 Ctrl+Shift+F8 或从主菜单中选择 。
在 断点 对话框中,展开 转到错误断点 并选择 致命错误。 此断点默认创建并启用。 它会在出现未恢复的 panic 和致命运行时错误时停止程序,而不是在函数返回
error值时停止。要配置 JavaScript 异常,请选择 JavaScript 异常断点。

管理断点
移除断点
对于非异常断点:点击装订区域的断点。
对于所有断点:转到主菜单中的 Ctrl+Shift+F8 ,选择断点,然后点击 移除 或按 Delete。
为了避免意外删除断点及其参数,您可以选择通过将它们拖到编辑器或点击鼠标中键来删除断点。 为此,请前往 并选择 拖动到编辑器或使用中键单击。 点击断点将 启用或禁用它。
静音断点
如果您暂时不需要在断点处暂停,可以将其 静音。 这使您能够在不离开调试器会话的情况下恢复正常程序操作。 之后,您可以取消静音断点并继续调试。
点击 静音断点 按钮
在 调试 工具窗口的工具栏中。
启用/禁用断点
当您移除断点时,其 内部配置会丢失。 若要在不丢失断点参数的情况下暂时关闭单个断点,您可以 disable 它:
对于非异常断点:右键点击并根据需要设置 已启用 选项。 或者,可在按住 Alt 的同时单击断点,或使用鼠标中键单击该断点来实现。 对于鼠标中键,请确保未将删除断点功能 分配给该按键。
对所有断点:点击 运行 | 查看断点 Ctrl+Shift+F8 ,然后在列表中选中/取消选中断点。
移动 / 复制断点
要移动断点,请将其拖到另一行。
要复制断点,请按住 Ctrl 并将断点拖到另一行。 这将在目标位置创建具有相同参数的断点。
查看所有设置的断点
您可以在 书签 工具窗口中查看所有断点的列表。 当您在代码中设置断点后,断点会自动添加到工具窗口中的专用列表中。
在主菜单中,转到 并展开 断点 列表。

分组断点
您可以将断点组织到组中,例如,如果您需要标记出针对特定问题的断点。
在 断点 对话框 Ctrl+Shift+F8 中,选择您想要放置在组中的断点,然后从菜单中选择 。
配置断点的属性
根据断点类型,您可以配置附加属性,从而使其操作符合特定需求。 最常用的选项通过 意图可用。
要访问断点意图,请将文本光标放在有断点的行上,然后按 Alt+Enter。 在需要快速配置基本断点属性时,请使用此选项。
要访问完整的属性列表,请右键点击断点并点击 更多 或按 Ctrl+Shift+F8。
意图参考
断点属性参考
在本章中,您可以找到有关断点功能的信息。
已启用
取消选中此复选框以暂时禁用断点,而不将其从项目中移除。 禁用的断点将在单步执行期间被 跳过。
您可以配置 GoLand 以通过点击启用/禁用断点,而不是完全移除它们。 要执行此操作,请转到 并将 移除断点 选项设置为 拖动到编辑器或用中键点击。
挂起
指定在断点命中时是否暂停程序执行。
非挂起断点在您需要记录某个表达式而不暂停程序时非常有用(例如,当您需要知道方法被调用的次数时)或在您需要创建一个 触发断点以在触发时启用 依赖断点。
条件
该选项用于指定在每次命中断点时检查的条件。 如果条件计算结果为 true ,则执行所选操作。 否则,断点将被忽略。
使用布尔表达式,例如 count > 10。 当条件计算结果为 true 时,调试器会停止。
在评估表达式时,请确保您意识到它们可能产生的副作用,因为这些副作用可能会影响程序的行为和结果。
日志选项
当断点被触发时,可将以下内容记录到控制台:
“Breakpoint hit”消息柜台号 0。 :一条类似
Breakpoint reached的日志消息。堆栈跟踪 :当前帧的堆栈跟踪。 如果您想在不中断程序执行的情况下检查导致此点的路径,这将非常有用。
评估并记录 :任意表达式的结果,例如,
"Initializing"或len(users)。例如,输入
len(users),以便每次执行到达断点时记录用户数。在评估表达式时,请确保您意识到它们可能产生的副作用,因为这些副作用可能会影响程序的行为和结果。
设置日志断点
(可选)如果您想要记录的表达式在编辑器中可见,请选中它。
按住 Shift 并点击边栏。
命中后移除
指定断点在被命中一次后是否应从项目中移除。
断点状态
断点可能具有以下状态:
断点图标
折线图 | 异常 | |
|---|---|---|
常规 | ||
已禁用 | ||
静音 | ||
静音已禁用 | ||
非挂起 | ||
无效 | ||