Web Inspector 参考符号断点

在调试原生函数调用或尝试在多个同名函数中设置断点时,符号断点会很有用。它们将在给定名称的函数即将被调用时暂停 JavaScript 执行。

创建符号断点时给定的名称也可以不区分大小写和/或被解释为正则表达式模式。

可以通过点击 [创建断点] 按钮(位于源代码面板导航侧边栏断点部分的右上角)后选择符号断点...来添加符号断点

所有符号断点在 Web Inspector 会话之间都会被保留。

配置

符号断点有几个不同的配置选项,可以通过右键单击并在上下文菜单中选择编辑断点...来访问。

条件输入允许您限制符号断点仅在给定的 JavaScript 求值为真值时才暂停 JavaScript 执行。这对于您只想在满足特定条件(例如变量具有特定值)时暂停 JavaScript 执行的情况非常有用。请记住,所包含的 JavaScript 在达到符号断点时会被评估,并且根据您作为条件运行的代码,可能会导致额外的副作用。

然而,您可能不想执行任意代码,而只是想忽略符号断点前几次被触发。如果是这种情况,将忽略输入设置为任何正整数将阻止符号断点暂停执行,直到它已被触发该次数。

现在您可能想知道动作是什么。它有四种不同的类型:

  • 日志消息

    这基本上是使用console.log记录值的“快捷方式”。您提供的字符串行为类似于模板字面量,这意味着只要它在${…}内,您就可以评估任意 JavaScript。

  • 执行 JavaScript

    可以说是最强大的符号断点动作,它允许您在每次触发该符号断点时评估任何任意 JavaScript。给定的 JavaScript 执行时,就好像它在代码行之前一样,这意味着它将可以访问该范围内相关行之前的所有可用变量。

  • 播放声音

    添加其中一个将导致 Web Inspector 在每次触发符号断点时播放系统蜂鸣声。

  • 探测表达式

    探测表达式可以看作是一个迷你控制台。每次触发相关符号断点时,探测表达式都会被评估,结果会保存在源代码面板详细信息侧边栏探测面板中,让您可以看到表达式的结果在程序生命周期中是如何变化的。您可以使用它来观察特定变量(例如this)的变化,或整个表达式(例如this.foo === "bar")的变化。

如果设置了任何动作,您还可以将符号断点配置为评估后自动继续。这将使符号断点实际上“隐形”,因为它永远不会暂停执行。评估后自动继续符号断点在图标中会有一个小的白色三角形(“空心”):

状态

符号断点可以处于启用或禁用状态。理想情况下,符号断点将始终处于启用状态,但它们也有几个原因会处于禁用状态

  • 符号断点被手动禁用。在源代码面板导航侧边栏的任何断点图标上单击(或右键单击并在上下文菜单中选择启用断点禁用断点)都可以在启用和禁用之间切换。
  • 断点已全局禁用。全局断点控制是一个按钮,它看起来就像位于源代码面板导航侧边栏顶部的断点。

右键单击任何符号断点时,上下文菜单中提供了所有启用/禁用/删除切换选项。

图标图例

  • 已启用(全局断点已启用)
  • 已启用(全局断点已启用)并自动继续
  • 已禁用(全局断点已启用)
  • 已禁用(全局断点已启用)并自动继续
  • 已启用(全局断点已禁用)
  • 已启用(全局断点已禁用)并自动继续
  • 已禁用(全局断点已禁用)
  • 已禁用(全局断点已禁用)并自动继续

Safari 技术预览 154 更新。试用它,获取最新的 Web Inspector 功能,包括以上所有以及更多。


作者:Devin Rousso,2022年9月22日

最后更新:Devin Rousso,2022年9月22日