PhpStorm 2021.3 Help

跟踪运行选项卡

该选项卡由一个工具栏和三个窗格组成:事件窗格事件堆栈窗格快速评估窗格

事件工具栏

使用工具栏上的按钮来控制要捕获的事件范围、配置它们的呈现以及浏览捕获的事件列表。

物品

工具提示和快捷方式

描述

全部展开按钮

展开全部Ctrl+NumPad +

单击此按钮可展开列表中的所有节点。

全部折叠按钮

全部收缩Ctrl+NumPad -

单击此按钮可折叠列表中的所有节点。

以前的

向上堆栈跟踪

单击此按钮导航到堆栈跟踪中的上一个跟踪页面。

下一个

向下堆栈跟踪

单击此按钮可导航到堆栈跟踪中的下一个跟踪页面。

一键导航

一键导航

按此切换按钮可使事件窗格中的列表自动与编辑器同步。

  • 按下按钮时:在“事件”窗格中单击事件时,事件的详细信息会立即显示在“事件堆栈”窗格中,并且由事件调用的脚本会自动在编辑器中打开。

    当您在打开自动滚动到跟踪模式的情况下浏览事件堆栈时,相应的文件也会在编辑器中自动打开,并突出显示调用函数。

  • 释放按钮时:事件调用的脚本只有在事件堆栈窗格中双击事件时才会在编辑器中打开。

捕获事件

捕获事件

单击此按钮可配置要捕获并显示在“事件”列表中的事件范围。

默认情况下,Spy-js 会捕获所有打开的网页上的所有事件,不包括https 安全网站,除非您在运行配置中明确指定它们的 URL 地址。所有捕获的事件都显示在Spy-js工具窗口的事件窗格中。您可以通过应用用户定义的事件过滤器来禁止捕获某些类型的事件。当您单击时,列表会显示所有可用的过滤器,当前应用的过滤器会标有勾号。默认情况下,应用捕获所有预定义过滤器。要在不停止应用程序的情况下停止捕获事件,请选择Mute All。有关详细信息,请参阅配置事件捕获策略过滤器

要定义自定义事件过滤器:

  1. 单击捕获事件,然后从列表中选择编辑捕获排除项

  2. 在打开的Spy-js Capture Exclusions 对话框中,单击左侧窗格中的添加。 图标一般添加

  3. 在右侧窗格中,在排除名称字段中指定过滤器名称并配置排除规则列表。

    • 要添加规则,请单击图标一般添加,将打开“将条件添加到排除”对话框。在值/模式字段中键入模式,在条件类型列表中指定模式是否应应用于事件类型或脚本名称。请注意,使用了glob 模式匹配。当您单击OK时,PhpStorm 会将您带到Spy-js Capture Exclusions Dialog

    • 要编辑规则,请在列表中选择它,单击图标动作编辑,然后在打开的对话框中更新规则。要删除规则,请在列表中选择它并单击图标一般删除

要激活过滤器,请选中列表中所需过滤器旁边的复选框。

设置

单击此按钮可从跟踪中删除所有或部分事件,并在编辑器中关闭相应的跟踪文件。在显示的列表中选择以下选项之一:

  • 全部删除:选择此选项可取消对所有捕获事件的跟踪,而无需在编辑器中关闭跟踪文件。

  • 关闭所有跟踪文件:选择此选项可关闭编辑器中的所有跟踪文件,但继续跟踪相应的事件。要从跟踪中移除事件或脚本并在编辑器中关闭相应的跟踪文件,请从事件或脚本的上下文菜单中选择移除

  • 删除所有不活动:选择此选项以删除不再活动的页面的所有节点(例如,因为页面已在浏览器中关闭)。

  • 保存跟踪:选择此选项以保存当前会话的图像。Spy-js 将跟踪会话的调用和属性存储在可以压缩到zip存档中的.json文件中。您可以在以后随时提取它们以将跟踪会话图像加载到 Spy-js 中。

  • 加载跟踪:选择此选项可将先前保存的跟踪会话图像加载到Spy-js中。提取并导入存储该会话的调用和属性的.json文件。

    请注意,加载的图像不会恢复会话,因为实际上没有执行任何脚本。您所能做的就是分析先前执行的代码的流程和属性。

  • 在会话停止时关闭所有跟踪文件:选择此选项可在您单击停止按钮停止以通过标准shutdown脚本在外部停止跟踪会话时关闭编辑器中的所有跟踪文件。

    单击按钮一次调用终止,允许应用程序捕获SIGINT事件并执行正常终止(在 Windows 上,Ctrl+C模拟事件)。按钮单击一次后,替换为终止进程按钮指示后续单击将导致应用程序强制终止,例如在 UnixSIGKILL上发送。

  • 启用 Spy-js 自动完成和放大镜:选择此选项以使用运行时数据扩展基本完成列表(Spy-js 自动完成),并获得在不实际运行调试会话的情况下评估表达式的可能性(Spy-js 放大)。默认情况下,该功能处于关闭状态。

    术语Spy-js 自动完成表示使用从运行时数据中检索到的建议扩展基本完成列表。Spy-js 自动完成功能可从文件中获得,用于已执行的代码(在相应的跟踪文件中以绿色突出显示)。

    当您将插入符号放在源文件中的符号上并按Ctrl+Space时,Spy-js从浏览器或正在运行的 Node.js 应用程序中检索数据,并根据以下规则将其与基本完成列表合并:

    1. 如果一个对象既存在于基本完成列表中,又从运行时检索,则提供有关参数、属性、它们的类型等的更多信息的变体保留在列表中。

    2. Spy.js检索到的对象显示在列表顶部并标有Spy.js 图标图标。如果检索到的对象特定于浏览器,则该对象用Spy.js 图标图标和该浏览器的图标标记。

    术语Spy-js 放大表示 在不实际运行调试会话的情况下评估表达式。当您单击表达式或将插入符号放置在其上并按Ctrl+Alt+F8时,将在表达式下方显示一个工具提示,以显示表达式值。如果Spy-js检索到多个值,请单击图标一般添加工具提示中的图标以展开值列表。

    放大功能可从文件中获得,用于已执行和尚未执行的代码。

  • Spy-js支持source maps,这意味着您现在可以从Event Stack窗格直接跳转到ECMAScript 6TypeScriptCoffeeScript中的原始源代码,并观察执行了哪些代码片段。使用以下选项来配置源映射的处理方式:

    • 启用源映射查找:选择此选项可使用编译期间生成的源映射启用对ECMAScript 6TypeScriptCoffeeScript源代码的导航。

    • 启用源映射生成:选择此选项可为所有内容生成源映射以映射检测代码。如果您要在Chrome Dev ToolsFireFox FireBug开发工具中调试原始代码,请选择此选项。

    • 始终打开源映射跟踪(如果可用):选择此选项可让Spy-js在您调用从事件到其调用者的导航时尝试打开映射跟踪文件。

事件窗格

该窗格显示捕获的事件树。顶级节点表示作为涉及跟踪的网页的文档。当您将鼠标悬停在文档上时,PhpStorm 会显示一个工具提示,其中包含文档的 URL 地址、打开文档的浏览器以及运行浏览器的操作系统。文档节点还提供了一个图标,该图标指示打开它的浏览器。

在每个文档节点下,列出了在页面上检测到的事件以及从其启动的脚本。相同类型的事件被分组到可视容器中。容器的标题显示分组在其中的事件的名称、容器内所有事件的平均执行时间以及容器内的事件数。您可以展开每个节点并检查其中的各个事件。

脚本文件名具有不同的颜色指示符,有助于在使用“事件堆栈”窗格时区分它们。通过将鼠标悬停在脚本文件名上,您可以看到完整的脚本 URL。

单击事件后,其调用堆栈将显示在“事件堆栈”窗格中。堆栈由函数调用树表示。

文档节点的上下文菜单

菜单项

描述

消除

选择此选项可取消跟踪选定页面上的所有脚本,并从“事件”窗格中删除选定节点及其下的所有项目。所有当前打开的跟踪文件在编辑器中保持打开状态。

删除所有孩子

选择此选项可删除所选页面下的项目,但继续跟踪它,以便仍接收来自该页面的新事件。文档节点本身仍保留在“事件”窗格中,并且所有当前打开的跟踪文件仍保留在编辑器中。

删除并关闭跟踪文件

选择此选项可取消跟踪所选页面上的所有脚本,从“事件”窗格中删除所选节点及其下的所有项目,并在编辑器中关闭相应的跟踪文件。

关闭跟踪文件

选择此选项可关闭与所选文档节点及其下的项目对应的所有当前打开的跟踪文件。文档节点及其下的项目仍保留在“事件”窗格中。

在浏览器中刷新页面

选择此选项可重新加载与所选文档节点对应的页面。放弃对选定节点的跟踪,创建用于跟踪同一页面的新文档节点,并且旧节点变为非活动状态

尝试在浏览器中关闭页面

选择此选项可关闭与所选节点对应的页面。所选节点的跟踪被放弃,节点变为非活动状态

显示应用依赖图

选择此选项以构建包含整个应用程序中的依赖关系的图表。

  • 该图在单独的编辑器选项卡中打开。图中的节点代表您的项目文件,而边缘代表源文件中有一个或多个函数调用目标文件中的函数的事实。

  • 要检查节点或边的详细信息,请选择节点或边并在编辑器右上角的专用窗格中查看其详细信息树。该窗格显示连接功能组合,以及在其中进行调用的事件和进行的调用次数。

事件或脚本的上下文菜单

菜单项

描述

静音事件

选择此选项可即时将事件添加到排除过滤器。

静音脚本

选择此选项可即时将脚本添加到排除过滤器。

消除

选择此选项可取消跟踪所选事件或脚本,从“事件”窗格中删除所选项目,但在编辑器中保持打开相应的跟踪文件。

添加标签

选择此选项以设置时间戳标签。时间戳标签可帮助您分析特定时间段内的代码执行情况。例如,您可以设置两个时间戳标签并查看在它们之间捕获了哪些事件。或者相反,您可以定位在某个时间段内未捕获的事件,尽管您预计它们会出现,从而检测性能问题。

显示事件依赖图

选择此选项以构建包含事件选定事件所涉及的依赖关系的图表。

  • 该图在单独的编辑器选项卡中打开。图中的节点代表您的项目文件,而边缘代表源文件中有一个或多个函数调用目标文件中的函数的事实。

  • 要检查节点或边的详细信息,请选择节点或边并在编辑器右上角的专用窗格中查看其详细信息树。该窗格显示连接功能组合,以及在其中进行调用的事件和进行的调用次数。

配置要捕获的事件范围

默认情况下,Spy-js 会捕获所有打开的网页上的所有事件,不包括https 安全网站,除非您在运行配置中明确指定它们的 URL 地址。所有捕获的事件都显示在Spy-js工具窗口的事件窗格中。您可以通过应用用户定义的事件过滤器来禁止捕获某些类型的事件。

您可以动态定义新的自定义过滤器或将事件模式添加到现有过滤器。

查看可用的已配置过滤器

  • 单击工具栏上的捕获事件按钮捕获事件。当前应用的过滤器标有勾号。默认情况下,应用捕获所有预定义过滤器。

在不停止应用程序的情况下停止捕获事件

  • 单击工具栏上的捕获事件按钮,然后从上下文菜单中捕获事件选择全部静音。应用程序仍在运行,但“事件”窗格显示最后捕获的事件。如果您要分析脚本并因此需要将其显示在“事件”窗格中但在捕获新事件时不将其删除,这将很有帮助。

定义新的事件过滤器

  1. 单击工具栏上的捕获事件按钮捕获事件,然后从列表中选择编辑捕获排除项

  2. 在打开的Spy-js Capture Exclusions 对话框中,单击左侧窗格中的添加。 图标一般添加

  3. 在右侧窗格中,在排除名称字段中指定过滤器名称并配置排除规则列表。

    • 要添加规则,请单击图标一般添加,将打开“将条件添加到排除”对话框。在值/模式字段中键入模式,在条件类型列表中指定模式是否应应用于事件类型或脚本名称。请注意,使用了glob 模式匹配。当您单击OK时,PhpStorm 会将您带到Spy-js Capture Exclusions Dialog

    • 要编辑规则,请在列表中选择它,单击图标动作编辑,然后在打开的对话框中更新规则。要删除规则,请在列表中选择它并单击图标一般删除

选择要应用的过滤器

  • 单击筛选并选中列表中所需过滤器旁边的复选框。如果没有配置过滤器或没有可用的过滤器适合该任务,请按上述方式创建一个新过滤器。

在“事件”窗格中浏览已捕获事件的树时,您可能会遇到一些您绝对不想跟踪的事件或脚本。您可以如上所述创建过滤器,但在这种情况下,您必须离开窗格。使用 PhpStorm,只要您检测到此类事件或脚本,就可以直接从事件窗格中创建基于任何事件或脚本的排除规则。

即时创建排除规则

  • 选择要排除的事件并选择Mute <event name> eventMute <script name> file。如果当前应用了用户定义的过滤器,则新规则会以静默方式添加到其中。如果Capture All当前处于活动状态,则会打开Spy-js Capture Exclusions 对话框,您可以在其中基于所选事件或脚本创建新过滤器,或选择现有过滤器并将新规则添加到其中。

事件堆栈窗格

单击“事件”窗格中的事件后,其调用堆栈将显示在“事件堆栈”窗格中。堆栈由函数调用树表示。每个树节点代表调用的函数。节点文本包含总执行时间、脚本文件名和函数名。单击节点时,“快速评估”窗格会显示其他函数调用详细信息、参数值和返回值,如果在函数执行期间发生异常详细信息。

该窗格与编辑器同步,因此您可以从堆栈树中的项目导航到相应的跟踪文件源文件

  • 跟踪文件是脚本的写保护美化版本,名为<script name>.js.trace。当您双击堆栈树中的项目或选择它并从选择的上下文菜单中选择跳转到跟踪时,相应的跟踪文件将在编辑器中打开,光标位于单击的函数上。另一种方法是按下Autoscroll to Trace切换按钮并选择各种堆栈节点。在这种情况下,当您单击“事件”窗格中的事件或脚本时,将打开跟踪文件。

    您不仅可以跳转到一个函数,还可以跳转到代码中调用它的位置。为此,请选择所需的项目并从上下文菜单中选择跳转到调用者。

    文件的内容被高亮显示以显示所选堆栈节点的代码执行路径。

  • 当您使用ECMASript6CoffeeScriptTypeScript代码 跟踪应用程序时, Spy-js还会生成映射的跟踪文件。这些是EcmaScript 6TypeScriptCoffeeScript跟踪文件,扩展名为.ts.trace.coffee.trace.js.trace。这些文件中的代码片段被突出显示,就好像它们真的被执行了一样。

  • 您还可以通过在“事件堆栈”窗格中选择一个项目并从所选内容的上下文菜单中选择“跳转到源”来导航到按原样显示的源文件,而无需美化。如果被跟踪的站点映射有 PhpStorm 项目,PhpStorm 会根据映射检测到对应的本地文件,并在编辑器中打开该文件。如果您正在跟踪未映射到 PhpStorm 项目的站点,PhpStorm 会打开只读页面源,就像您在浏览器中选择了查看页面源一样。

    当跟踪站点映射到 PhpStorm 项目时,PhpStorm 会在任何尝试编辑打开的跟踪文件时打开文件。

脚本或函数的上下文菜单

物品

描述

跳转到来电者

选择此选项可导航到跟踪文件中调用当前所选项目的片段。当您使用ECMASript6CoffeeScriptTypeScript代码跟踪应用程序时,PhpStorm 会打开跟踪JavaScript 文件或映射的跟踪文件(TypeScript、CoffeeScript 或 ECMAScript6):

  • 如果选择了Always open source mapped trace if available选项,则会打开相应的映射跟踪文件。

  • 如果未选择Always open source mapped trace if available选项,则会打开 JavaScript 跟踪文件。

跳转到跟踪

选择此选项可导航到跟踪文件中当前选定项的定义。

跳转到源

选择此选项可导航到源文件中当前选定项的定义。

将此文件静音

选择此选项可将所选脚本即时添加到排除过滤器,请参阅配置要捕获的事件范围

仅捕获此文件

在所有事件中搜索此函数调用

选择此选项可在整个跟踪(跨越所有跟踪事件)中的函数调用之间导航,如高级跟踪搜索中所述。

导航

使用此项下的选项,根据调用在整个堆栈中移动,定位到没有被调用的函数,即定位到没有被执行的代码片段,分析其被跳过的原因。

可以使用以下六个操作: 移至跟踪文件中下一个/当前/上一个函数的下一个/上一个调用。完整的操作列表可从“事件堆栈”窗格的上下文菜单中获得。移至所选函数的下一个和上一个调用、上一个函数的上一个调用以及下一个函数的下一个调用也可以从事件堆栈窗格的导航工具栏中获得。

spy_js_advanced_navigation_1.png
当您选择其中一项操作时,光标会跳转到堆栈中的调用。如果按下Autoscroll to Trace切换按钮,相应的跟踪文件将自动打开,光标位于调用处。

窗格和编辑器之间的同步

事件堆栈窗格与事件窗格和编辑器同步。

查看脚本或事件的调用堆栈

  • 单击“事件”窗格中的事件或脚本。它的调用堆栈显示在事件堆栈窗格中。

  • 可选:要在编辑器中自动打开相应的跟踪文件,请按工具栏上的Autoscroll to Trace切换按钮。

在编辑器中打开事件或脚本的跟踪文件

跟踪文件是脚本的写保护美化版本,名为<script name>.js.trace

  • Event Stack窗格中,单击脚本或事件两次,或者在其上下文菜单中选择Jump to Trace 。

  • 激活自动导航(单击Autoscroll to Trace )并在Events窗格中单击所需的事件或脚本。

将事件窗格直接与编辑器同步

  • 按工具栏上的Autoscroll to Trace切换按钮。

    之后,在“事件”窗格中单击节点时,PhpStorm 在“事件堆栈”窗格中显示其调用堆栈,然后在编辑器中打开相应的跟踪文件。此外,当您滚动浏览事件堆栈时, PhpStorm 会自动在编辑器中打开相应的文件并突出显示调用的函数。

快速评估窗格

当您单击事件堆栈窗格中的节点时,快速评估窗格会显示其他函数调用详细信息、参数值和返回值,如果在函数执行期间发生异常详细信息。

上下文菜单关闭函数调用详情

上下文菜单可从窗格中显示的所有项目中使用。

物品

描述

检查

选择此选项以打开“检查”对话框。

复制值

选择此选项可将选定节点的值复制到剪贴板。

将值与剪贴板进行比较

选择此选项可打开文件的差异查看器,其中显示所选节点的值和剪贴板中的值,以便您可以比较它们。

复制名称

选择此选项可将选定节点的名称复制到剪贴板。

最后修改:2021 年 12 月 9 日