跟踪运行选项卡
该选项卡由一个工具栏和三个窗格组成:事件窗格、事件堆栈窗格和快速评估窗格。
事件工具栏
使用工具栏上的按钮来控制要捕获的事件范围、配置它们的呈现以及浏览捕获的事件列表。
物品 | 工具提示和快捷方式 | 描述 |
---|---|---|
展开全部Ctrl+NumPad + | 单击此按钮可展开列表中的所有节点。 | |
全部收缩Ctrl+NumPad - | 单击此按钮可折叠列表中的所有节点。 | |
向上堆栈跟踪 | 单击此按钮导航到堆栈跟踪中的上一个跟踪页面。 | |
向下堆栈跟踪 | 单击此按钮可导航到堆栈跟踪中的下一个跟踪页面。 | |
一键导航 | 按此切换按钮可使事件窗格中的列表自动与编辑器同步。
| |
捕获事件 | 单击此按钮可配置要捕获并显示在“事件”列表中的事件范围。 默认情况下,Spy-js 会捕获所有打开的网页上的所有事件,不包括https 安全网站,除非您在运行配置中明确指定它们的 URL 地址。所有捕获的事件都显示在Spy-js工具窗口的事件窗格中。您可以通过应用用户定义的事件过滤器来禁止捕获某些类型的事件。当您单击时,列表会显示所有可用的过滤器,当前应用的过滤器会标有勾号。默认情况下,应用捕获所有预定义过滤器。要在不停止应用程序的情况下停止捕获事件,请选择Mute All。有关详细信息,请参阅配置事件捕获策略。 要定义自定义事件过滤器:
要激活过滤器,请选中列表中所需过滤器旁边的复选框。 | |
单击此按钮可从跟踪中删除所有或部分事件,并在编辑器中关闭相应的跟踪文件。在显示的列表中选择以下选项之一:
|
事件窗格
该窗格显示捕获的事件树。顶级节点表示作为涉及跟踪的网页的文档。当您将鼠标悬停在文档上时,PhpStorm 会显示一个工具提示,其中包含文档的 URL 地址、打开文档的浏览器以及运行浏览器的操作系统。文档节点还提供了一个图标,该图标指示打开它的浏览器。
在每个文档节点下,列出了在页面上检测到的事件以及从其启动的脚本。相同类型的事件被分组到可视容器中。容器的标题显示分组在其中的事件的名称、容器内所有事件的平均执行时间以及容器内的事件数。您可以展开每个节点并检查其中的各个事件。
脚本文件名具有不同的颜色指示符,有助于在使用“事件堆栈”窗格时区分它们。通过将鼠标悬停在脚本文件名上,您可以看到完整的脚本 URL。
单击事件后,其调用堆栈将显示在“事件堆栈”窗格中。堆栈由函数调用树表示。
文档节点的上下文菜单
菜单项 | 描述 |
---|---|
消除 | 选择此选项可取消跟踪选定页面上的所有脚本,并从“事件”窗格中删除选定节点及其下的所有项目。所有当前打开的跟踪文件在编辑器中保持打开状态。 |
删除所有孩子 | 选择此选项可删除所选页面下的项目,但继续跟踪它,以便仍接收来自该页面的新事件。文档节点本身仍保留在“事件”窗格中,并且所有当前打开的跟踪文件仍保留在编辑器中。 |
删除并关闭跟踪文件 | 选择此选项可取消跟踪所选页面上的所有脚本,从“事件”窗格中删除所选节点及其下的所有项目,并在编辑器中关闭相应的跟踪文件。 |
关闭跟踪文件 | 选择此选项可关闭与所选文档节点及其下的项目对应的所有当前打开的跟踪文件。文档节点及其下的项目仍保留在“事件”窗格中。 |
在浏览器中刷新页面 | 选择此选项可重新加载与所选文档节点对应的页面。放弃对选定节点的跟踪,创建用于跟踪同一页面的新文档节点,并且旧节点变为非活动状态。 |
尝试在浏览器中关闭页面 | 选择此选项可关闭与所选节点对应的页面。所选节点的跟踪被放弃,节点变为非活动状态。 |
显示应用依赖图 | 选择此选项以构建包含整个应用程序中的依赖关系的图表。
|
事件或脚本的上下文菜单
菜单项 | 描述 |
---|---|
静音事件 | 选择此选项可即时将事件添加到排除过滤器。 |
静音脚本 | 选择此选项可即时将脚本添加到排除过滤器。 |
消除 | 选择此选项可取消跟踪所选事件或脚本,从“事件”窗格中删除所选项目,但在编辑器中保持打开相应的跟踪文件。 |
添加标签 | 选择此选项以设置时间戳标签。时间戳标签可帮助您分析特定时间段内的代码执行情况。例如,您可以设置两个时间戳标签并查看在它们之间捕获了哪些事件。或者相反,您可以定位在某个时间段内未捕获的事件,尽管您预计它们会出现,从而检测性能问题。 |
显示事件依赖图 | 选择此选项以构建包含事件选定事件所涉及的依赖关系的图表。
|
配置要捕获的事件范围
默认情况下,Spy-js 会捕获所有打开的网页上的所有事件,不包括https 安全网站,除非您在运行配置中明确指定它们的 URL 地址。所有捕获的事件都显示在Spy-js工具窗口的事件窗格中。您可以通过应用用户定义的事件过滤器来禁止捕获某些类型的事件。
您可以动态定义新的自定义过滤器或将事件模式添加到现有过滤器。
查看可用的已配置过滤器
单击工具栏上的捕获事件按钮。当前应用的过滤器标有勾号。默认情况下,应用捕获所有预定义过滤器。
在不停止应用程序的情况下停止捕获事件
单击工具栏上的捕获事件按钮,然后从上下文菜单中选择全部静音。应用程序仍在运行,但“事件”窗格显示最后捕获的事件。如果您要分析脚本并因此需要将其显示在“事件”窗格中但在捕获新事件时不将其删除,这将很有帮助。
定义新的事件过滤器
单击工具栏上的捕获事件按钮,然后从列表中选择编辑捕获排除项。
在打开的Spy-js Capture Exclusions 对话框中,单击左侧窗格中的添加。
在右侧窗格中,在排除名称字段中指定过滤器名称并配置排除规则列表。
要添加规则,请单击,将打开“将条件添加到排除”对话框。在值/模式字段中键入模式,在条件类型列表中指定模式是否应应用于事件类型或脚本名称。请注意,使用了glob 模式匹配。当您单击OK时,PhpStorm 会将您带到Spy-js Capture Exclusions Dialog。
要编辑规则,请在列表中选择它,单击,然后在打开的对话框中更新规则。要删除规则,请在列表中选择它并单击。
选择要应用的过滤器
单击并选中列表中所需过滤器旁边的复选框。如果没有配置过滤器或没有可用的过滤器适合该任务,请按上述方式创建一个新过滤器。
在“事件”窗格中浏览已捕获事件的树时,您可能会遇到一些您绝对不想跟踪的事件或脚本。您可以如上所述创建过滤器,但在这种情况下,您必须离开窗格。使用 PhpStorm,只要您检测到此类事件或脚本,就可以直接从事件窗格中创建基于任何事件或脚本的排除规则。
即时创建排除规则
选择要排除的事件并选择Mute <event name> event或Mute <script name> file。如果当前应用了用户定义的过滤器,则新规则会以静默方式添加到其中。如果Capture All当前处于活动状态,则会打开Spy-js Capture Exclusions 对话框,您可以在其中基于所选事件或脚本创建新过滤器,或选择现有过滤器并将新规则添加到其中。
事件堆栈窗格
单击“事件”窗格中的事件后,其调用堆栈将显示在“事件堆栈”窗格中。堆栈由函数调用树表示。每个树节点代表调用的函数。节点文本包含总执行时间、脚本文件名和函数名。单击节点时,“快速评估”窗格会显示其他函数调用详细信息、参数值和返回值,如果在函数执行期间发生异常详细信息。
该窗格与编辑器同步,因此您可以从堆栈树中的项目导航到相应的跟踪文件或源文件。
跟踪文件是脚本的写保护美化版本,名为<script name>.js.trace。当您双击堆栈树中的项目或选择它并从选择的上下文菜单中选择跳转到跟踪时,相应的跟踪文件将在编辑器中打开,光标位于单击的函数上。另一种方法是按下Autoscroll to Trace切换按钮并选择各种堆栈节点。在这种情况下,当您单击“事件”窗格中的事件或脚本时,将打开跟踪文件。
您不仅可以跳转到一个函数,还可以跳转到代码中调用它的位置。为此,请选择所需的项目并从上下文菜单中选择跳转到调用者。
文件的内容被高亮显示以显示所选堆栈节点的代码执行路径。
当您使用ECMASript6、CoffeeScript和TypeScript代码 跟踪应用程序时, Spy-js还会生成映射的跟踪文件。这些是EcmaScript 6、TypeScript或CoffeeScript跟踪文件,扩展名为.ts.trace、.coffee.trace或.js.trace。这些文件中的代码片段被突出显示,就好像它们真的被执行了一样。
您还可以通过在“事件堆栈”窗格中选择一个项目并从所选内容的上下文菜单中选择“跳转到源”来导航到按原样显示的源文件,而无需美化。如果被跟踪的站点映射有 PhpStorm 项目,PhpStorm 会根据映射检测到对应的本地文件,并在编辑器中打开该文件。如果您正在跟踪未映射到 PhpStorm 项目的站点,PhpStorm 会打开只读页面源,就像您在浏览器中选择了查看页面源一样。
当跟踪站点映射到 PhpStorm 项目时,PhpStorm 会在任何尝试编辑打开的跟踪文件时打开源文件。
脚本或函数的上下文菜单
物品 | 描述 |
---|---|
跳转到来电者 | 选择此选项可导航到跟踪文件中调用当前所选项目的片段。当您使用ECMASript6、CoffeeScript和TypeScript代码跟踪应用程序时,PhpStorm 会打开跟踪JavaScript 文件或映射的跟踪文件(TypeScript、CoffeeScript 或 ECMAScript6):
|
跳转到跟踪 | 选择此选项可导航到跟踪文件中当前选定项的定义。 |
跳转到源 | 选择此选项可导航到源文件中当前选定项的定义。 |
将此文件静音 | 选择此选项可将所选脚本即时添加到排除过滤器,请参阅配置要捕获的事件范围。 |
仅捕获此文件 | |
在所有事件中搜索此函数调用 | 选择此选项可在整个跟踪(跨越所有跟踪事件)中的函数调用之间导航,如高级跟踪搜索中所述。 |
导航 | 使用此项下的选项,根据调用在整个堆栈中移动,定位到没有被调用的函数,即定位到没有被执行的代码片段,分析其被跳过的原因。 可以使用以下六个操作: 移至跟踪文件中下一个/当前/上一个函数的下一个/上一个调用。完整的操作列表可从“事件堆栈”窗格的上下文菜单中获得。移至所选函数的下一个和上一个调用、上一个函数的上一个调用以及下一个函数的下一个调用也可以从事件堆栈窗格的导航工具栏中获得。 当您选择其中一项操作时,光标会跳转到堆栈中的调用。如果按下Autoscroll to Trace切换按钮,相应的跟踪文件将自动打开,光标位于调用处。 |
窗格和编辑器之间的同步
事件堆栈窗格与事件窗格和编辑器同步。
查看脚本或事件的调用堆栈
单击“事件”窗格中的事件或脚本。它的调用堆栈显示在事件堆栈窗格中。
可选:要在编辑器中自动打开相应的跟踪文件,请按工具栏上的Autoscroll to Trace切换按钮。
在编辑器中打开事件或脚本的跟踪文件
跟踪文件是脚本的写保护美化版本,名为<script name>.js.trace。
在Event Stack窗格中,单击脚本或事件两次,或者在其上下文菜单中选择Jump to Trace 。
激活自动导航(单击Autoscroll to Trace )并在Events窗格中单击所需的事件或脚本。
将事件窗格直接与编辑器同步
按工具栏上的Autoscroll to Trace切换按钮。
之后,在“事件”窗格中单击节点时,PhpStorm 在“事件堆栈”窗格中显示其调用堆栈,然后在编辑器中打开相应的跟踪文件。此外,当您滚动浏览事件堆栈时, PhpStorm 会自动在编辑器中打开相应的文件并突出显示调用的函数。
快速评估窗格
当您单击事件堆栈窗格中的节点时,快速评估窗格会显示其他函数调用详细信息、参数值和返回值,如果在函数执行期间发生异常详细信息。
上下文菜单关闭函数调用详情
上下文菜单可从窗格中显示的所有项目中使用。
物品 | 描述 |
---|---|
检查 | 选择此选项以打开“检查”对话框。 |
复制值 | 选择此选项可将选定节点的值复制到剪贴板。 |
将值与剪贴板进行比较 | 选择此选项可打开文件的差异查看器,其中显示所选节点的值和剪贴板中的值,以便您可以比较它们。 |
复制名称 | 选择此选项可将选定节点的名称复制到剪贴板。 |