断点
断点是源代码标记,可让您在特定点暂停程序执行并检查其行为。
一旦设置,断点将保留在您的项目中,直到您明确删除它(临时行断点除外)。
如果带有断点的文件被外部修改,例如,通过 VCS 更新或在外部编辑器中更改,并且行号已更改,则断点将相应移动。请注意,进行此类更改时,WebStorm 必须正在运行,否则它们将被忽视。
行断点
可以在可执行的代码行上设置行断点。线程执行在具有此类断点的行之前暂停,WebStorm 显示该线程堆栈上的堆栈帧。
设置行断点
单击要设置断点的可执行代码行旁边的间距。
或者,将插入符号放在此行并按Ctrl+F8。
要设置临时行断点,请按Ctrl+Alt+Shift+F8。断点将在被击中后立即从您的项目中删除。
对于箭头函数,您可以在一行中设置多个断点。单击装订线并选择要设置断点的函数。
删除行断点
单击装订线中的断点图标。
为避免意外删除断点并丢失其参数,您可以选择通过将断点拖到编辑器或单击鼠标中键来删除断点:打开设置/首选项对话框 ( Ctrl+Alt+S),转到 ,然后选择拖动到编辑器或用鼠标中键单击。单击断点将切换其状态(启用/禁用)。
异常断点
抛出指定异常时触发异常断点。
设置异常断点
按Ctrl+Shift+F8或选择
从主菜单在断点对话框中,选择任何异常复选框。
要让调试器在特定类型的异常处停止,请按Alt+Insert或单击并选择JavaScript Exception Breakpoint。然后,在打开的“添加异常断点”对话框中,从库或项目中指定异常类。
移除异常断点
按Ctrl+Shift+F8或选择
从主菜单在Breakpoints对话框中,在JavaScript Exception Breakpoints或Dart Exception Breakpoints下选择要删除的断点,然后单击或按Alt+Delete。
断点属性
根据断点的类型,您可以配置以下附加断点属性:
命中断点时要执行的操作
一个暂停策略,它定义了在命中断点时是否必须暂停应用程序
对其他断点的依赖
定义何时必须命中断点的条件
要编辑断点的属性,请按Ctrl+Shift+F8或右键单击编辑器装订线中的断点。
选项 | 描述 | 断点类型 |
---|---|---|
启用 | 清除复选框以暂时禁用断点而不将其从项目中删除。在调试过程中将跳过禁用的断点。 | 所有类型 |
暂停 | 选中该复选框以在遇到断点时暂停程序执行。如果您需要在不中断程序的情况下获取日志信息或计算某个点的表达式,则暂停应用程序很有用。如果您需要创建一个主断点,在命中时将触发相关断点,请选择不在该断点处暂停程序。 | 所有类型 |
健康)状况 | 如果您希望调试器仅在满足特定条件时在断点处停止,请选中此复选框。 您可以键入多行表达式,例如:
typeof 范围 === '字符串' || (!Array.isArray(scope) && typeof scope === 'object' && scope !== null)
或者,指定您希望 WebStorm 在满足条件并且调试器在断点处停止时执行的操作,从下面的日志中了解更多信息。 当调试器到达带有条件断点的行时,将评估指定的布尔表达式。如果表达式的计算结果为 | 行断点 |
日志 | 选择是否要将以下事件记录到控制台:
| 所有类型 |
评估和记录 | 选择在断点被命中时计算表达式,并在控制台输出中显示结果。 | 行断点 |
击中后移除 | 选择在项目被击中后立即从项目中删除断点。 | 所有类型 |
禁用直到断点被命中 | 选择将触发当前断点的断点。在命中该断点之前,当前断点将被禁用。您还可以选择是否希望再次禁用它或在它被击中后保持启用状态。 | 所有类型 |
生产力提示
- 快速访问最常用的设置
右键单击编辑器装订线中的断点以快速禁用或暂停它,或设置条件。
- 断点意图
您可以通过意图操作( Alt+Enter) 访问最常见的断点操作和过滤器。
- 组断点
您可以将断点组织成组,例如,如果您需要为特定问题标记断点。
在Breakpoints对话框Ctrl+Shift+F8中,选择要放置在组中的断点,然后选择 <group_name>/从上下文菜单
- 移动断点
要移动行断点,请将其拖动到目标行。
- 复制断点
要复制断点,请按下Ctrl并将其拖动到目标行。
- 禁用断点
要暂时禁用断点而不将其从项目中删除,请按住该Alt键并单击装订线中的断点图标。
- 快速搜索
如果您的项目中有许多断点,您可以向它们添加简短描述以便轻松搜索它们:右键单击断点对话框中的断点,然后从上下文菜单中Ctrl+Shift+F8选择编辑描述。现在,当您开始键入断点的名称时,它会获得焦点。
- 跳转到源
要从Breakpoints对话框跳转到设置所选断点的代码行,请按F4。