PyCharm 2026.1 Help

跟踪运行选项卡

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

事件工具栏

使用工具栏上的按钮控制要捕获的事件范围、配置其呈现方式,并在已捕获事件列表中导航。

项目

工具提示与快捷键

描述

全部展开按钮

全部展开 Ctrl+NumPad +

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

Collapse All 按钮

全部折叠 Ctrl+NumPad -

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

上一条

上移堆栈跟踪

点击此按钮可在堆栈跟踪中导航到上一个被跟踪的页面。

下一条

下移堆栈跟踪

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

点击导航

点击导航

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

  • 按下该按钮时:一旦您在 事件 窗格中点击某个事件,事件的详细信息会显示在 事件堆栈 窗格中,并且该事件调用的脚本会在编辑器中自动打开。

    当您在 事件堆栈 中导航且启用了 自动滚动到跟踪 模式时,编辑器也会自动打开相应的文件,并高亮显示调用的函数。

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

捕获事件

捕获事件

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

默认情况下,Spy-js 会捕获所有已打开 Web 页面上的所有事件,但不包括 https secure 网站,除非您在运行配置中显式指定其 URL 地址。 所有捕获的事件都会显示在 Spy-js 工具窗口的 事件 窗格中。 您可以通过应用用户定义的事件过滤器来抑制对某些类型事件的捕获。 当您点击 筛选器 时,列表会显示所有可用的过滤器,当前应用的过滤器会以勾号标记。 默认情况下, 捕获全部 预定义过滤器会被应用。 要停止捕获事件而不停止应用程序,请选择 全部静默。 有关详细信息,请参阅 配置事件捕获策略

定义自定义事件过滤器:

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

  2. 在打开的 Spy-js Capture Exclusions Dialog 中,点击左侧窗格中的 添加

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

    • 要添加规则,点击 将条件添加到排除项 对话框将打开。 在 值/模式 字段中键入模式,在 条件类型 列表中指定该模式应应用于事件类型还是脚本名称。 请注意,使用了 glob 模式匹配。 当您点击 确定 ,PyCharm 会将您带到 Spy-js 捕获排除项对话框

    • 要编辑规则,请在列表中选择该规则,点击 ,并在打开的对话框中更新该规则。 要移除规则,请在列表中选择该规则,并点击

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

设置

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

  • 全部移除: 选择此选项可取消跟踪所有已捕获事件,但不关闭编辑器中的跟踪文件。

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

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

  • 保存跟踪: 选择此选项可保存当前会话的映像。 Spy-js 会将跟踪会话的调用和属性存储在 .json 文件中,这些文件可以压缩为一个 zip 归档。 您可以随时解压它们,将跟踪会话映像加载到 Spy-js 中。

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

    请注意,加载的映像不会还原会话,因为实际上未执行任何脚本。 您只能分析先前已执行代码的流程和属性。

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

    点击此按钮一次会调用 软终止 ,使应用能够捕获 SIGINT 事件并执行优雅终止(在 Windows 上,会模拟 Ctrl+C 事件)。 按钮被点击一次后,它会被替换为 强制终止按钮 ,表示随后点击将导致应用被强制终止,例如在 Unix 上会发送 SIGKILL

  • 启用 Spy-js 自动补全和放大镜: 选择此选项可将基本补全列表扩展为包含运行时数据(Spy-js auto-completion ),并在不实际运行调试会话的情况下对表达式进行求值(Spy-js magnification)。 默认情况下,功能被关闭。

    术语 Spy-js 自动补全 指使用从运行时数据检索的建议来扩展 基本补全列表Spy-js 自动补全 功能适用于 源文件 中已执行的代码(在相应的 跟踪 文件中以绿色高亮显示)。

    当您在源文件中将光标置于某个符号处并按下 Ctrl+SpaceSpy-js 会从浏览器或正在运行的 Node.js 应用程序检索数据,并根据以下规则将其与基本补全列表合并:

    如果某个对象既出现在基本补全列表中,又从运行时检索到,则提供更多关于参数、属性及其类型等信息的候选项 将保留在列表中。

    术语 Spy-js 放大 指在不运行调试会话的情况下 求值表达式。 当您点击表达式或将光标置于其上并按下 Ctrl+Alt+F8 时,会在表达式下方显示一个工具提示,显示该表达式的值。 如果 Spy-js 检索到多个值,在工具提示中点击 图标以展开值列表。

    放大 功能适用于 文件中的已执行和尚未执行的代码。

  • Spy-js 支持 源映射 ,这意味着您现在可以直接从 事件堆栈 窗格跳转到 ECMAScript 6TypeScriptCoffeeScript 的原始源代码,并查看哪些代码片段被执行。 使用以下选项来配置源映射的处理方式:

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

    • 启用源映射生成: 选择此选项可为所有内容生成源映射,用于映射经过插桩的代码。 如果您打算在 Chrome Dev ToolsFireFox FireBug 开发工具中调试原始源代码,请选择此选项。

    • 如果可用,始终打开源映射的跟踪: 选择此选项可让 Spy-js 在您从事件导航到其调用方时尝试打开 mapped trace file

事件窗格

该窗格显示已捕获事件的树。 顶层节点表示参与跟踪的 文档 (即网页)。 当您将鼠标悬停在 文档 上时,PyCharm 会显示一个工具提示,其中包含该 文档 的 URL 地址、打开它的浏览器以及该浏览器运行的操作系统。 该 文档 节点还带有一个图标,用于指示其打开所在的浏览器。

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

脚本文件名具有不同的颜色标识,可帮助您在使用 事件堆栈 窗格时区分它们。 当您将鼠标悬停在脚本文件名上时,可以看到完整的脚本 URL。

点击事件后,其调用堆栈会显示在 事件堆栈 窗格中。 该堆栈以函数调用树的形式呈现。

文档节点的上下文菜单

菜单项

描述

移除

选择此选项可取消对所选页面上所有脚本的跟踪,并将所选节点及其下的所有项目从 事件 窗格中移除。 所有当前已打开的跟踪文件将继续在编辑器中打开。

移除所有子项

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

移除并关闭跟踪文件

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

关闭跟踪文件

选择此选项可关闭所有当前已打开的跟踪文件,这些文件对应于所选文档节点及其下的项目。 文档节点及其下的项目将保留在 事件 窗格中。

在浏览器中刷新页面

选择此选项可重新加载与所选文档节点对应的页面。 将放弃对所选节点的跟踪,会创建用于跟踪同一页面的新文档节点,旧节点将变为 inactive

尝试在浏览器中关闭页面

选择此选项可关闭与所选节点对应的页面。 将放弃对所选节点的跟踪,该节点将变为 inactive

显示应用程序依赖关系图

选择此选项可构建整个应用程序内的依赖关系图。

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

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

事件或脚本的上下文菜单

菜单项

描述

排除此事件

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

排除此脚本

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

移除

选择此选项可取消对所选事件或脚本的跟踪,将所选项从 事件 窗格中移除,但在编辑器中保留相应的跟踪文件处于打开状态。

添加标签

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

显示事件依赖关系图

选择此选项可构建一个显示所选事件所涉及依赖关系的图。

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

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

配置要捕获的事件范围

默认情况下,Spy-js 会捕获所有已打开 Web 页面上的所有事件,但不包括 https secure 网站,除非您在运行配置中显式指定其 URL 地址。 所有捕获的事件都会显示在 Spy-js 工具窗口的 事件 窗格中。 您可以通过应用用户定义的事件过滤器来抑制对某些类型事件的捕获。

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

查看可用的已配置过滤器

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

停止捕获事件而不停止应用程序

  • 点击工具栏上的 捕获事件 按钮 捕获事件 ,并从上下文菜单中选择 全部静默。 应用程序仍在运行,但 事件 窗格显示最后一个捕获的事件。 如果您想分析某个脚本,因此需要它显示在 事件 窗格中,而不因捕获到新事件而被移除,这将非常有用。

定义新的事件过滤器

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

  2. 在打开的 Spy-js Capture Exclusions Dialog 中,点击左侧窗格中的 添加

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

    • 要添加规则,点击 将条件添加到排除项 对话框将打开。 在 值/模式 字段中键入模式,在 条件类型 列表中指定该模式应应用于事件类型还是脚本名称。 请注意,使用了 glob 模式匹配。 当您点击 确定 ,PyCharm 会将您带到 Spy-js 捕获排除项对话框

    • 要编辑规则,请在列表中选择该规则,点击 ,并在打开的对话框中更新该规则。 要移除规则,请在列表中选择该规则,并点击

选择要应用的过滤器

  • 点击 过滤 ,并在列表中选中所需过滤器旁边的复选框。 如果尚未配置任何过滤器,或可用过滤器均不适用于该任务,请按照上述说明创建一个新过滤器。

事件 窗格中浏览已捕获事件的树时,您可能会遇到一些确定不想跟踪的事件或脚本。 您可以按照上述说明创建过滤器,但在这种情况下,您将不得不离开该窗格。 借助 PyCharm,您可以基于任何事件或脚本创建排除规则,一旦您检测到此类事件或脚本,即可直接在 事件 窗格中创建。

即时创建排除规则

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

事件堆栈窗格

事件 窗格中点击某个事件后,其调用堆栈会显示在 事件堆栈 窗格中。 该堆栈以函数调用树的形式呈现。 树中的每个节点表示被调用的函数。 节点文本包含总执行时间、脚本文件名和函数名称。 点击节点时, 快速计算 窗格会显示其他函数调用详细信息、参数值和返回值,以及在函数执行期间发生的异常的详细信息(如果有)。

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

  • 跟踪文件 是脚本的写保护的美化版本,其名称为 <script name>.js.trace 。 当您双击堆栈树中的条目,或选择它并从所选内容的上下文菜单中选择 跳转到跟踪文件 时,相应的 跟踪文件 会在编辑器中打开,光标定位在所点击的函数处。 另一种方法是按下 自动滚动到跟踪 切换按钮,并选择不同的堆栈节点。 在这种情况下,当您在 事件 窗格中点击事件或脚本时,将打开跟踪文件。

    您不仅可以跳转到函数,还可以跳转到其在代码中的调用位置。 为此,选择所需条目,并在上下文菜单中选择 跳转到调用方

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

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

  • 您还可以在 事件堆栈 窗格中选择某个条目,并从所选内容的上下文菜单中选择 跳转到源代码 ,导航到按原样显示且未美化的 源文件。 如果被跟踪的站点与 一个 PyCharm 项目建立了映射,PyCharm 会根据该映射检测到相应的本地文件,并在编辑器中打开该文件。 如果您跟踪的站点未映射到 一个 PyCharm 项目,PyCharm 会打开只读的 页面源代码 ,就像您在浏览器中选择了 查看页面源代码 一样。

    当被跟踪的站点与 一个 PyCharm 项目建立了映射时,在任何尝试编辑已打开的 跟踪文件 的情况下,PyCharm 都会打开 源文件

脚本或函数的上下文菜单

项目

描述

跳转到调用方

选择此选项可导航到 trace file 中调用了当前所选项的代码片段。 当您在跟踪具有 ECMASript6CoffeeScriptTypeScript 代码的应用程序时,PyCharm 会打开 trace JavaScript 文件或 mapped trace 文件(TypeScript、CoffeeScript 或 ECMAScript6):

  • 如果已选择 如可用,始终打开源映射的跟踪 选项,将打开相应的映射的跟踪文件。

  • 如果未选择 如可用,始终打开源映射的跟踪 选项,将打开 JavaScript 跟踪文件。

跳转到跟踪文件

选择此选项可导航到 trace file 中当前所选项的定义。

跳转到源代码

选择此选项可导航到 source file 中当前所选项的定义。

排除此文件

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

仅捕获此文件

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

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

导航到

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

以下六个操作可用:在跟踪文件中,移动到下一个、当前或上一个函数的下一次或上一次调用。 完整的操作列表可在 事件堆栈 窗格的上下文菜单中查看。 在 事件堆栈 窗格的导航工具栏中,也可执行以下操作:移动到所选函数的下一次和上一次调用、移动到上一个函数的上一次调用,以及移动到下一个函数的下一次调用。

spy_js_advanced_navigation_1.png

当您选择其中一个操作时,光标会跳转到堆栈中的调用处。 如果按下 自动滚动到跟踪 切换按钮,将自动打开相应的跟踪文件,光标定位在该调用处。

窗格与编辑器之间的同步

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

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

  • 事件 窗格中点击事件或脚本。 其调用堆栈显示在 事件堆栈 窗格中。

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

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

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

  • 事件堆栈 窗格中,双击脚本或事件,或在其上下文菜单中选择 跳转到跟踪文件

  • 启用自动导航 (点击 自动滚动到跟踪 ),然后在 事件 窗格中点击所需的事件或脚本。

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

  • 按下工具栏上的 自动滚动到跟踪 切换按钮。

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

快速求值窗格

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

函数调用详细信息的上下文菜单

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

项目

描述

检查

选择此选项可打开 检查 对话框。

复制值

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

将值与剪贴板比较

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

复制名称

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

2026年 3月 24日