检查已挂起的程序
调试器会话 启动后,会打开 Debug工具窗口,程序将正常运行,直到遇到 breakpoint或您手动 暂停程序。
之后程序将暂停,允许您检查其当前状态、控制其后续执行,并在运行时测试各种场景。
检查调用堆栈
程序暂停时,将在 帧 窗格中显示将您带到当前位置的 调用堆栈。

调试多进程 Node.js 应用或 Service Worker 时,您可以在线程之间切换。 帧 窗格显示所选线程的调用堆栈。 详细信息请参见 多进程调试 与 Debugging Workers。

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

帧对应一个活跃的方法或函数调用。 它存储被调方法或函数的局部变量、参数,以及支持表达式求值的代码上下文。
每次调用 方法 时,都会将一个新的帧添加至堆栈顶部。 执行 方法 完成后,对应的帧将从堆栈中移除(按照后进先出的顺序)。
检查帧可以帮助您理解为何将特定参数传递给方法或函数,以及调用者当时的状态。
默认情况下,WebStorm 会隐藏对应于框架和库调用的帧。
显示来自库的帧
要显示被隐藏的帧,请按 显示所有帧 切换按钮
,位于 帧 窗格右上角。
要隐藏库帧,请释放 隐藏来自库的帧 切换按钮
。


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

每个变量左侧的图标表示其类型。
复制变量
检查变量时,您可能需要复制变量名或其值,以便粘贴到其他位置或与另一个变量 compare。
要复制变量名,请右键单击变量并选择 复制名称。
要复制变量的值,请右键单击变量并选择 复制值 Ctrl+C。 对于非
String类型,将复制其toString表示形式。
将变量与剪贴板比较
要将某变量的值与其他值比较,请使用 与剪贴板比较值 选项。 例如,当变量包含长字符串且需要将其与另一个长字符串进行比较时,此操作非常有用。
复制您希望比较的内容,例如来自文本文件的内容。
在 变量 标签页中,右键点击变量并选择 与剪贴板比较值。
在打开的差异查看器中检查差异。 有关 差异查看器 的详细信息,请参见 Comparing Files and Folders。
在专用对话框中查看变量
WebStorm 允许您在专用对话框中检查变量。 当您希望持续关注某个变量(或其持有引用的对象)并同时在帧与线程之间导航时,此功能非常有用。
右键点击变量或监视项并选择 检查。

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

instance="rm"/>
导航至源代码
您可以从 变量 窗格导航至声明位置。
要导航至变量声明的位置,右键点击变量并选择 跳转到源代码 F4。
要导航至变量类型的类声明,右键点击变量并选择 跳转到类型源代码 Shift+F4。
在 Variables 视图中显示 getter 和 setter 函数
默认情况下, getter 与 setter 函数将被隐藏。

要在 变量 视图中显示它们,请点击工具栏上的
,选择 调试器设置 ,然后选择 显示 Getter 与 Setter 函数。
计算表达式
WebStorm 允许您在调试会话期间评估表达式,以获得程序状态的更多详情,或在运行时测试各种执行情景。
此功能仅在程序在遇到断点后被挂起时有效(不是 暂停)。
如果表达式中调用的方法内包含断点,它们将被忽略。
在编辑器中计算简单表达式
要快速计算表达式,请将鼠标指向编辑器中的该表达式。 请注意,不能以这种方式计算方法调用。
将鼠标指向您想要计算的表达式。 表达式的结果将显示在工具提示中。

要查看子元素,请单击。

如果您觉得数值工具提示干扰使用体验,您可以增加延迟时间或完全禁用这些提示。 为此,请在 设置 对话框中(Ctrl+Alt+S ),转到 ,并根据您的喜好设置 显示数值工具提示 和 数值工具提示延迟 选项。
在编辑器中计算复杂表达式
如果您想评估包含方法调用的表达式,或指定要评估的表达式部分,请使用 快速计算表达式 选项。
选择表达式并按 Ctrl+Alt+F8 ,或单击浮动工具栏上的
。
或者,转到 ,或按住 Alt 并点击所选内容。
要将调试操作添加至浮动工具栏,请单击
,选择 自定义工具栏 ,在打开的对话框中单击 添加 ,然后选择所需操作。

您可以配置 快速计算表达式 ,使其在选中代码时立即生效(无需使用菜单或快捷键)。 请谨慎使用此选项,因为在启用时,您可能会意外调用方法。
选中代码后一键计算表达式
转到 并设置 在代码选择时显示数值工具提示 选项。
计算任意表达式
评估任意表达式是最灵活的评估方式。 只要在当前栈帧上下文中,您就可以评估任何自定义代码。 您可以使用它评估声明、方法调用、匿名类、箭头函数、循环等。
要评估一个任意表达式,请在 计算表达式 字段中输入表达式,并在 变量 面板内按 Enter。

结果将显示在下方。 您还可以单击表达式字段右侧的
来 将表达式添加到监视中。

如果您需要评估较长的代码块,建议使用专用对话框:
如果您希望从当前可见的表达式或变量开始(例如在编辑器中或 变量 面板上),请选择它。
转到 Alt+F8 ,或从上下文菜单中选择 计算表达式。 此快捷键在 Ubuntu 上可能无效(若要正常使用,请 调整快捷键配置)。

在 计算 对话框中,修改所选表达式或在 表达式 字段中输入新表达式。 点击 展开 (Shift+Enter )可修改多行代码片段。

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

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

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

内联视图默认处于启用状态。 如需关闭,在 设置 对话框中(Ctrl+Alt+S ),前往 并禁用 内联显示值 选项。
添加内联监视
如果您希望某个表达式的结果显示在特定行上,可以为其设置内联 监视。 内联监视具有持久性,在会话重启后仍保持激活状态。
单击引用您要跟踪字段的对象的内联提示。
在弹出窗口中,选择字段并点击 添加为内联监视。

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

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

要移除内联监视,请将鼠标悬停在监视表达式上,并点击其旁边的叉号。
可视化 JSON 和 XML
当展开包含 JSON 或 XML 的 inline value 或 evaluate a string expression 时,WebStorm 将为您提供结构化且格式化的数据视图。
这使您能够使用编辑器功能,例如 code folding 和 extend or shrink selection ,以处理子树并方便地在大型对象中导航。
使用预览弹出窗口中的标签页在结构化视图与原始数据视图之间切换:

监视
如果您希望跟踪某个变量或更复杂表达式的结果,请为该变量或表达式设置一个监视。 这在您需要评估未定期显示在变量列表中的内容,或想要固定某个实例变量以避免每次 step 后展开树结构时非常有用。
此功能仅在程序在命中断点后挂起的情况下工作(而非 paused)。
监视将在所选帧的上下文中进行评估。 当监视超出上下文或无法编译时,将无法对其进行评估。 在这种情况下,监视将被标记为错误图标 。
默认情况下,监视与变量一起显示在 变量 窗格中。 要隐藏/显示 监视 窗格,请在 布局设置 菜单中使用 分隔监视 选项。
添加监视
这取决于您想要跟踪的表达式:
对于编辑器中的表达式 — 选择表达式,然后点击浮动工具栏上的 添加到监视 图标
。 或者,将表达式拖动到 变量 选项卡中。

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

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

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

编辑监视
右键点击您想要的监视并选择 编辑。
复制监视
选择您要复制的监视。
点击 复制监视
于 变量 窗格中,或按 Ctrl+D。
更改监视顺序
为方便起见,您可以更改监视在 变量/监视 窗格中出现的顺序。
使用 上移监视/下移监视 按钮于 变量/监视 窗格中,或使用快捷键 Ctrl+Up 和 Ctrl+Down。
删除监视
若要移除单个监视,右键点击它并选择 移除监视。 或者,选择监视并在 变量/监视 窗格中按下 Delete。
若要移除所有监视,在 变量/监视 窗格中的任意位置右键点击,并选择 移除所有监视。
监视支持与变量相同的操作。 例如,您可以 view them in a dedicated dialog ,或使用它们 navigate to the source code。
监视属于您的项目的一部分。 这意味着您可以停止并重新运行调试会话,而不必担心丢失监视信息。
暂停和恢复监视
有时,监视可能依赖于本地上下文或涉及大量计算,使其在某些步骤中评估不切实际。 在这种情况下,您可以暂停监视,并按需评估。
要暂停监视,请右键点击它并选择 暂停监视。

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

要执行已暂停监视的一次性评估,请点击监视旁边的 计算。

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

当前执行位置以蓝色线条指示。 该行的代码尚未被执行。
