检查断点配置选项
- 6 分钟
调试器用于帮助你分析代码,并可用于控制程序的运行时执行。 启动 Visual Studio Code 调试器时,它会立即开始执行代码。 由于代码在微秒内执行,因此有效的代码调试取决于在代码中的任何语句上暂停程序的能力。 断点用于指定代码执行暂停的位置。
设置断点
Visual Studio Code 提供了几种在代码中配置断点的方法。 例如:
- 代码编辑器:可以通过单击行号左侧的列来设置 Visual Studio Code 编辑器中的断点。
- 运行菜单:可以从“运行”菜单切换断点的开启/关闭。 编辑器中当前代码行指定了切换断点操作的应用位置。
设置断点后,编辑器中行号左侧会显示一个红色圆圈。 在调试器中运行代码时,执行会在断点处暂停。
删除、禁用和启用断点
在应用程序中设置断点并利用它们来隔离问题之后,您可能需要删除或禁用这些断点。
若要删除断点,请重复用于设置断点的操作。 例如,单击行号左侧的红色圆圈或使用 “运行” 菜单上的切换断点选项。
如果要保留断点位置,但不希望它在下次调试会话期间触发,该怎么办? Visual Studio Code 使你能够“禁用”断点,而不是完全删除它。 若要禁用活动断点,请右键单击行号左侧的红点,然后从上下文菜单中选择 “禁用断点 ”。
禁用断点时,行号左侧的红点将更改为灰色点。
注释
右键单击断点时显示的上下文菜单还包括“删除断点”和“编辑断点”选项。 本单元后面的“条件断点和日志点”部分将介绍“编辑断点”选项。
除了在编辑器中管理单个断点之外,运行菜单还提供用于执行所有断点的批量操作的选项。
- 启用所有断点:使用此选项启用所有禁用的断点。
- 禁用所有断点:使用此选项可禁用所有断点。
- 删除所有断点:使用此选项删除所有断点(同时删除已启用断点和禁用断点)。
条件断点
条件断点是一种特殊类型的断点,仅在满足指定条件时触发。 例如,可以创建一个条件断点,该断点在命名 numItems 变量大于 5 时暂停执行。
你已看到右键单击断点会打开包含 “编辑断点 ”选项的上下文菜单。 选择 “编辑断点 ”可将标准断点更改为条件断点。
除了编辑现有断点之外,还可以直接设置条件断点。 如果右键单击(而不是左键)设置新的断点,可以选择创建条件断点。
创建条件断点时,需要指定表示条件的表达式。
每次调试器遇到条件断点时,都会计算表达式。 如果表达式的计算结果为 true,则会触发断点并暂停执行。 如果表达式的计算结果为 false,则执行会像没有断点一样继续执行。
例如,假设你需要调试循环的代码块 for 内的一些代码。 你已注意到,只有在循环完成多次迭代后,才会发生你正在调试的问题。 你决定希望断点在循环的迭代控制变量 i大于 3 后触发。 创建条件断点并指定表达式 i > 3。
在调试器中运行代码时,它会跳过断点,直到迭代 i > 3 的计算结果为 true。 当 i = 4 时,执行在条件断点上暂停。
支持 Hit Count 断点和 Logpoints
Visual Studio Code 的 C# 调试器还支持 Hit Count 断点和 Logpoints。
“命中次数”断点可用于指定断点在“中断”执行之前必须遇到的次数。 可以在创建新断点(使用“添加条件断点”操作)或修改现有断点(使用“编辑条件”操作)时指定命中次数值。 在这两种情况下,将打开一个带有下拉菜单的内联文本框,您可以在其中输入点击次数值。
“记录点”是断点的变体,它不会“中断”到调试器,而是将消息记录到控制台。 在调试无法暂停或停止的生产环境时,日志点尤其适用于注入日志记录。 日志点由“菱形”图标表示,而不是实心圆。 日志消息是纯文本,但可以包含要在大括号 ('{}') 内求值的表达式。
日志点可以包含条件“表达式”和/或“命中次数”,以进一步控制生成日志记录消息的时间。 例如,可以将 Logpoint 消息 i = {i} 与命中计数条件 >4合并,以生成日志消息,如下所示:
回顾
在本单元中,应谨记以下几个重要事项:
- Visual Studio Code 允许在代码编辑器或 “运行 ”菜单中设置断点。 断点代码行用行号左侧的红点标记。
- 可以使用用于设置断点的相同选项删除或禁用断点。 “运行”菜单上提供了影响所有断点的批量操作。
- 条件断点可用于在满足指定条件或达到“命中计数”时暂停执行。
- Logpoint 可用于将信息记录到终端,而无需暂停执行或插入代码。