PyCharm 2025.3 Help

检查已暂停的程序

在调试会话 已启动后,会显示 调试 工具窗口,程序将正常运行,直到发生以下情况之一:

之后,程序会被挂起,使您可以检查其当前状态、控制其后续执行,并在运行时测试各种场景。

检查帧

程序的状态由 表示。 当程序被挂起时,当前帧栈会显示在 调试 工具窗口的 选项卡上。

调试工具窗口的帧选项卡

帧对应一个活动的方法或函数调用。 它存储所调用的方法或函数的局部变量、其参数以及支持计算表达式的代码上下文。

每次调用 方法 时,都会在栈顶添加一个新的帧。 当 方法 的执行完成时,相应的帧会从栈中移除(后进先出)。

检查帧有助于您了解为何向某个方法传递了特定参数,以及调用发生时调用方的状态。

将堆栈复制到剪贴板

  • 要复制当前线程的调用栈,请在 选项卡上任意位置右键点击并选择 复制堆栈

检查/更新变量

变量 选项卡显示所选 帧/线程 中的变量列表。 检查变量可帮助您了解程序为何以特定方式运行。

变量选项卡显示从当前执行点可见的变量

每个变量左侧的图标表示其类型。

变量类型

图标

说明

数组

局部数组

基本类型

局部基本类型

监视

监视 和自动变量。

基本类型

局部引用变量

复制变量

检查变量时,您可能需要复制变量名称或值,以便粘贴到其他位置,或将其与另一个变量进行 比较

  • 要复制变量名称,请右键点击该变量并选择 复制名称

  • 要复制变量所持有的值,请右键点击该变量并选择 复制值 Ctrl+C

  • 默认情况下,字符串变量会以单引号复制。 要更改引号策略,请在 调试 工具窗口的工具栏中点击 更多更多 ,选择 调试器设置 | 变量加引号策略 ,然后选择所需选项。

    更改变量的引号策略

将变量与剪贴板比较

要将变量值与其他值进行比较,请使用 与剪贴板比较值 选项。 例如,当变量包含一个很长的字符串,而您需要将其与另一个很长的字符串进行比较时,这会很有帮助。

  1. 复制您要比较的内容,例如从文本文件中复制。

  2. 变量 选项卡中,右键点击变量并选择 与剪贴板比较值

  3. 在打开的差异查看器中检查差异。 有关 差异查看器 的详细信息,请参阅 比较文件和文件夹

在专用对话框中查看变量

PyCharm 允许您在专用对话框中检查变量。 当您需要跟踪某个变量(或其持有引用的对象),并同时在帧与线程之间导航时,这会很有用。

  • 右键点击变量或监视并选择 检查

    检查对话框

查看数据结构

  • 调试 工具窗口中查看变量时,您可以点击 作为数组查看作为DataFrame 查看作为系列查看 链接,在 数据视图 工具窗口中显示数据。

    查看数据帧
  • 默认情况下,使用新的表格表示。

    点击 更多操作 并选择 在表格表示之间切换在表格表示之间切换 以更改表格界面。

设置变量值

如果您想测试程序在特定数据下的行为,或在运行时更改其流程,您可以通过更改变量值来实现。

  1. 选择变量并按 F2。 或者,从上下文菜单中选择 设置值

  2. 输入该变量的值并按 Enter

    在其名称旁边的字段中输入变量的新值

instance="rm"/>

您可以从 变量 窗格导航到声明。

  • 要导航到变量声明所在的代码,请右键点击该变量并选择 跳转到源代码 F4

  • 要导航到变量类型的类声明,请右键点击该变量并选择 跳转到类型源代码 Shift+F4

计算表达式

PyCharm 让您在调试会话期间计算表达式,以获取有关程序状态的更多详细信息,或在运行时测试各种执行方案。

此功能仅在程序命中断点后被挂起时才可用(不是 暂停)。

如果在表达式调用的方法内部存在断点,这些断点会被忽略。

在编辑器中计算简单表达式

要快速计算表达式,请在编辑器中将鼠标指针指向它。 请注意,无法通过这种方式计算方法调用。

  1. 将鼠标指针指向要计算的表达式。 表达式的结果会显示在工具提示中。

    值工具提示
  2. 要查看结果对象的子元素,请点击 展开按钮 或按 Ctrl+F1

    值工具提示

如果您觉得值工具提示干扰,您可以增加延迟或将其完全禁用。 为此,请在 设置 对话框(Ctrl+Alt+S )中,转到 构建、执行、部署 | 调试器 | 数据视图 ,并根据您的偏好设置 显示值工具提示值工具提示延迟 选项。

在编辑器中计算复杂表达式

如果您想在代码中计算包含方法调用的表达式,或指明要计算的表达式的特定部分,请使用 快速计算表达式 选项。

  • 选择该表达式并按 Ctrl+Alt+F8 ,或在出现的浮动工具栏中选择 计算表达式

    会显示值工具提示
  • 或者,转到 运行 | 调试操作 | 快速计算表达式 ,或按住 Shift+Alt 并点击所选内容。

您可以将 快速计算表达式 配置为只需选择一段代码即可工作(无需使用菜单/快捷键)。 请谨慎使用此选项,因为启用后您可能会不小心调用方法。

在选中代码时计算表达式

  • 转到 设置 | 构建、执行、部署 | 调试器 | 数据视图 并设置 在选择代码时显示值工具提示 选项。

计算任意表达式

计算任意表达式是最灵活的计算方式。 只要位于当前帧的上下文中,您就可以计算任何自定义代码。 借助该功能,您可以计算语句、函数调用、循环等。

  1. 要计算任意表达式,请在 变量 窗格中的 计算表达式 字段中输入表达式,然后按 Enter

  2. 结果显示在其正下方。 您还可以通过点击表达式字段右侧的 将表达式添加到监视

    在变量选项卡中的表达式结果

如果您想计算较长的代码块,建议使用专用对话框:

在专用对话框中计算表达式

  1. 如果您想从当前可见的某个表达式或变量开始(例如在编辑器中或 变量 窗格中),请选择它。

    选择要作为起点的表达式
  2. 转到 运行 | 调试操作 | 计算表达式 Alt+F8 ,或在上下文菜单中选择 计算表达式。 在 Ubuntu 上快捷键可能不起作用(要正确运行, 调整快捷键配置)。

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

    表达式会输入到代码片段字段中
  4. 点击 计算 (多行模式下为 Ctrl+Enter)。 表达式结果显示在 结果 字段中。

    表达式的结果取自 return 语句。 如果没有 return 语句,结果取自最后一行代码(甚至不必是表达式;单个字面量也可以)。 如果没有可用于取值的有效代码行,结果为 undefined。 如果指定的表达式无法计算, 结果 字段会指明原因。

    计算表达式结果

计算 对话框是非模态的,因此您可以将焦点切换回编辑器以复制其他变量和表达式。 您还可以打开多个 计算 对话框。

内联查看值

PyCharm 显示变量的值紧挨其用法的位置。

变量值显示在其使用的行上

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

变量的内联值会随每一步而变化

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

内联调试器提示

内联视图默认启用。 要将其关闭,请在 设置 对话框(Ctrl+Alt+S )中,转到 构建、执行、部署 | 调试器 | 数据视图 ,并禁用 内联显示值 选项。

添加内联监视

如果您想让某个表达式的结果显示在特定行上,您可以为此设置内联 监视。 内联监视是持久的,并在会话重新启动后保持活动。

  1. 点击指向您要跟踪其字段的对象的内联提示。

  2. 在弹出窗口中,选择该字段并点击 添加为内联监视

    添加内联监视选项
  3. 如有需要,请微调该监视。 您可以使用任何有效表达式作为监视。

    设置内联监视

要移除内联监视,将鼠标悬停在该监视上,并点击其旁边的叉号。

可视化 JSON 和 XML

当您展开一个 内联值计算包含 JSON 或 XML 的字符串表达式 时,PyCharm 会为您提供结构化且格式化的数据视图。

这使您可以使用编辑器功能(例如 代码折叠扩展或缩小选择 )来处理子树并在大型对象中进行便捷导航。

在预览弹出窗口中使用选项卡在结构化视图与原始视图之间切换:

%alt

监视

如果您想跟踪某个变量或更复杂表达式的结果,请为该变量或表达式设置一个监视。 当您需要计算列表中未常规显示的内容,或固定某个实例变量,从而无需在每次 后展开树时,此方法非常有用。

此功能仅在程序命中断点后被挂起时才可用(不是 暂停)。

监视会在所选帧的上下文中进行计算。 当监视超出上下文或无法编译时,无法进行计算。 在这种情况下,该监视会以错误图标 错误图标 标记。

添加监视

  1. 监视 选项卡上点击 新建监视 New Watch 按钮

  2. 输入要计算的变量或表达式。 在表达式中,您可以计算方法调用、声明变量等,只要它处于本地上下文中即可。

    添加监视

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

编辑监视

  • 右键点击所需的监视并选择 编辑

复制监视

  1. 选择您要复制的监视。

  2. 变量/监视 选项卡上点击 复制监视 Duplicate Watch 按钮 ,或按 Ctrl+D

更改监视的顺序

为方便起见,您可以更改监视在 变量/监视 窗格中的显示顺序。

  • 请使用 上移监视/下移监视 按钮(位于 变量/监视 窗格上),或使用 Alt+Shift+UpAlt+Shift+Down 键盘快捷键。

删除监视

  • 要移除单个监视,右键点击它并选择 移除监视。 或者,选择该监视并在 变量/监视 窗格上按 Delete

  • 要移除所有监视,请在 变量/监视 窗格上的任意位置右键点击并选择 移除所有监视

监视允许执行与变量相同的操作。 例如,您可以 在专用对话框中查看它们 ,或使用它们 导航到源代码

监视是您项目的一部分。 这意味着您可以停止并重新运行调试会话,而无需担心丢失它们。

暂停并恢复监视

有时,某个监视可能依赖本地上下文或涉及大量计算,从而使其在某些步骤中不便进行计算。 在这种情况下,您可以暂停该监视,并按需进行计算。

  • 要暂停监视,请右键点击它并选择 暂停监视

    暂停监视
  • 要恢复监视,请右键点击它并选择 恢复监视

    恢复已暂停的监视
  • 要对已暂停的监视执行一次性计算,请点击监视旁边的 计算

    计算已暂停的监视

执行点

返回到当前执行点

检查程序状态涉及在代码中导航,您经常需要返回到程序被挂起的位置。

执行以下任一操作:

  • 在主菜单中,转到 运行(U) | 调试操作 | 显示执行点

  • Alt+F10

  • 调试 工具窗口的步进工具栏上点击 More 按钮 ,然后在打开的上下文菜单中选择 Show Execution Point 按钮显示执行点

当前执行点由蓝色线条指示。 该行处的代码尚未执行。

指示当前执行点的蓝色线条
最后修改日期: 2025年 12月 2日