检查挂起的程序
调试器会话 启动后, 调试工具窗口会出现,程序会正常运行,直到遇到 断点或您手动 暂停程序。
之后,程序将被挂起,允许您检查其当前状态、控制其进一步执行并在运行时测试各种场景。
检查调用栈
当程序被挂起时,将在 窗口 窗格中显示将您带到此点的 调用栈。

当您调试多进程 Node.js 应用程序或 Service Workers 时,您可以在线程之间切换。 窗口 窗格显示所选线程的调用栈。 从 多进程调试 和 调试 Workers中了解更多信息。

在其他情况下,当只有一个线程时, 窗口 窗格仍会在 线程 字段中显示 主线程。

帧对应于活动的方法或函数调用。 它存储了被调用方法或函数的局部变量、其参数以及使表达式求值成为可能的代码上下文。
每次调用 method 时,都会在栈顶新增一个帧。 当 method 的执行完成时,相应的帧将从堆栈中移除(最后一个进,最先一个出)。
检查帧有助于您理解为什么将特定参数传递给方法或函数,以及调用时调用者的状态。
默认情况下,WebStorm 会隐藏对应框架和库调用的帧。
显示来自库的帧
要显示隐藏的框架,请按右上角的 显示所有框架 切换按钮
,该按钮位于 帧 面板中。
要隐藏库帧,请释放 在库中隐藏帧 切换按钮
。


复制堆栈到剪贴板
要复制当前线程的调用堆栈,请右键点击 帧 选项卡上的任意位置,然后选择 复制堆栈。
检查/更新变量
变量 选项卡显示所选 帧/线程中的变量列表。 检查变量可以帮助您理解程序为何以某种方式运行。

每个变量左侧的图标表示其类型。
复制变量
在检查变量时,您可能需要复制变量名称或值以粘贴到其他地方或将其与另一个变量进行 比较。
要复制变量的名称,请右键点击变量并选择 复制名称。
要复制变量所持有的值,请右键点击变量并选择 复制值 Ctrl+C。 对于
String以外的类型,将复制toString表示形式。
与剪贴板比较变量
将变量值与其他值进行比较,请使用 与剪贴板比较值 选项。 这很有用,例如,当一个变量包含一个长字符串时,您需要将其与另一个长字符串进行比较。
将您想要比较的内容复制,例如,从一个文本文件中。
在 变量 选项卡中,右键点击一个变量并选择 与剪贴板比较值。
查看打开的 差异查看器 中的差异。 如需了解更多关于 差异查看器 的信息,请参阅 比较文件和文件夹。
在专用对话框中查看变量
WebStorm 允许您在专用对话框中检查变量。 这在您需要跟踪某个变量(或它所持有引用的对象)并且同时能够在帧和线程之间导航时非常有用。
右键点击变量或监视并选择 检查。

设置变量值
如果您想测试程序在特定数据下的行为或在运行时更改其流程,可以通过更改变量值来实现。
选择一个变量并按 F2。 或者,从上下文菜单中选择 设置值。
请输入变量的值然后按 Enter。

导航到源代码
您可以从 变量 窗格导航到声明。
要导航到变量声明的代码位置,请右键点击变量并选择 跳转到源 F4。
要导航到变量类型的类声明,请右键点击该变量,然后选择 跳转到类型源 Shift+F4。
在变量视图中显示 getter 和 setter 函数
默认情况下, getter 和 setter 函数是隐藏的。

要在 变量 视图中显示它们,请点击工具栏上的
,选择 调试器设置 ,然后选择 显示 getter 和 setter 函数.。
计算表达式
WebStorm 允许您在调试会话中评估表达式,以获取有关程序状态的更多详细信息或在运行时测试各种执行场景。
此功能仅在程序在命中断点后暂停(而非 暂停 )时有效。
如果表达式中调用的方法内有断点,它们将被忽略。
在编辑器中评估一个简单表达式
要快速评估表达式,请在编辑器中指向它。 请注意,方法调用无法以这种方式评估。
指向您要计算的表达式。 表达式的结果显示在工具提示中。

要查看子元素,请点击。

如果您觉得数值工具提示干扰到了您的操作,您可以增加延迟时间或完全禁用它们。 为此,请在 设置 对话框(Ctrl+Alt+S )中,转到 并根据您的偏好设置 显示值提示 和 值工具提示延迟 选项。
在编辑器中评估复杂表达式
如果您想在代码中评估涉及方法调用的表达式或指示要评估的表达式的特定部分,请使用 对表达式快速求值 选项。
选择表达式并按 Ctrl+Alt+F8 ,或点击浮动工具栏中出现的
。
或者,转到 ,或按住 Alt 并点击选择。
要将调试操作添加到浮动工具栏,请点击
,选择 自定义工具栏 ,在打开的对话框中点击 添加 ,然后选择所需的操作。

您可以配置 对表达式快速求值 使其只在选择一段代码时运行(无需使用菜单/快捷键)。 启用此选项时请谨慎操作,因为您可能会意外调用方法。
选中代码时评估表达式
前往 并设置 在代码选择上显示值提示 选项。
计算任意表达式
评估任意表达式是最灵活的评估选项。 它允许您评估任何自定义代码,只要它在当前帧的上下文中。 使用它,您可以评估声明、方法调用、匿名类、箭头函数、循环等。
要评估任意表达式,请在 对表达式求值 字段中输入它,然后在 变量 窗格中按 Enter

结果显示在下面。 您还可以通过点击表达式字段右侧的
来 将表达式添加到 watches。

如果您想评估长代码块,您可能需要为此使用专用对话框:
如果您想从当前在您面前的某个表达式或变量开始(例如,在编辑器或 变量 窗格上),请选择它。
前往 Alt+F8 或从上下文菜单中选择 对表达式求值。 快捷键可能在 Ubuntu 上无法使用(为正确操作, 调整快捷键配置)。

在 求值 对话框中,修改所选表达式或在 表达式 字段中输入一个新的。 点击 展开 Shift+Enter 以修改多行代码片段。

点击 求值 (Ctrl+Enter 以进入多行模式)。 表达式结果显示在 结果 字段中。
表达式的结果取自 return 语句。 当没有 return 语句时,结果取自代码的最后一行(甚至不必是表达式:单个字面量也可以)。 当没有有效的行可取值时,结果是
undefined。 如果无法计算指定表达式, 结果 字段将指示原因。
求值 对话框是非模态的,因此您可以将焦点切换回编辑器以复制其他变量和表达式。 您还可以打开多个 求值 对话框。
内联查看值
WebStorm 在变量使用的旁边显示其值。

一旦变量值更改,内联视图将会更新为新值并更改其颜色。

如果一行包含对对象的引用,您可以直接在编辑器中检查其字段。 在此弹出窗口中,您还可以 更改变量值和 添加内联监视。

默认情况下,内联视图是启用的。 要关闭此功能,请在 设置 对话框(Ctrl+Alt+S )中,转到 并禁用 内联显示值 选项。
添加内联监视
如果您希望某个表达式的结果显示在特定的行上,您可以为此设置一个内联 watch。 内联监视是持久的,并且在会话重启后仍然保持活动状态。
点击指向您想跟踪其字段的对象的内联提示。
在弹出窗口中,选择该字段并点击 添加为内联监视。

如有需要,微调 watch。 您可以使用任何有效的表达式作为监视。

您在编辑器中设置的内联监视也会显示在 内联监视 工具窗口的变量窗格 调试 中:

要删除行内监视,请将鼠标悬停在监视上,然后点击旁边的叉号。
监视
如果您想跟踪某个变量或更复杂表达式的结果,请为此变量或表达式设置监视。 当您需要评估未在变量列表中定期显示的内容,或固定某些实例变量以消除每次 步骤后展开树的需要时,这非常有用。
此功能仅在程序在命中断点后暂停(而非 暂停 )时有效。
在所选帧的上下文中评估 Watches。 监视在上下文之外或编译失败时无法评估。 如果是这种情况,手表将标有错误图标 。
默认情况下,监视会与变量一起显示在 变量 窗格中。 要隐藏/显示 监视 窗格,请使用 分离 watches 选项,该选项位于 布局设置 菜单中。
添加监视
根据您想要跟踪的表达式:
对于编辑器中的表达式——选择表达式,然后点击浮动工具栏中出现的 添加到监视 图标
。 或者,将表达式拖动到 变量 选项卡。

对于当前上下文中的元素——右键点击 变量 选项卡中的变量,然后从菜单中选择 添加到监视。

对于任意表达式——在 变量 选项卡的顶部部分输入表达式,然后点击 添加到监视。

在您将一个变量/表达式添加到 监视 之后,它会保留在那里,并在每个 步骤中进行评估,为您提供当前上下文中的结果。

编辑监视
右键点击所需的监视器,然后选择 编辑。
复制监视
选择您想要复制的监视。
点击 复制监视
,位于 变量 窗格中,或按 Ctrl+D。
更改监视的顺序
为了方便,您可以更改监视在 变量/监视 窗格中显示的顺序。
使用 上移监视/下移监视 按钮,位于 变量/监视 窗格中,或使用 Ctrl+Up 和 Ctrl+Down 快捷键。
删除监视
要移除单个监视,请右键点击并选择 移除监视。 或者,选择监视并按 Delete ,位于 变量/监视 窗格中。
要移除所有监视,请右键点击 变量/监视 窗格上的任意位置,然后选择 移除所有监视。
监视允许执行与变量相同的操作。 例如,您可以 在专用对话框中查看它们 ,或使用它们 导航到源代码。
监视是您项目的一部分。 这意味着您可以停止并重新运行调试会话而不会有丢失它们的风险。
暂停和恢复监视
有时,监视可能依赖于本地上下文或涉及大量计算,使其在某些步骤中评估变得不切实际。 在这种情况下,您可以暂停监视并按需评估它。
要暂停监视,请右键点击它并选择 暂停监视。

要恢复监视,请右键点击它并选择 继续监视。

要对暂停的监视进行一次性评估,请点击监视附近的 求值。

执行点
返回当前执行点
检查程序状态涉及在代码中导航,您经常需要返回到程序挂起的位置。
请执行以下操作之一:
在主菜单中,进入 .
按下 Alt+F10。
点击
,位于 调试 工具窗口的步进工具栏上,并从打开的上下文菜单中选择
显示执行点。

当前的执行点用蓝色线条表示。 此行代码尚未执行。
