PyCharm 2025.2 Help

断点

断点是能够使程序在特定点暂停执行的特殊标记。 这使您能够检查程序的状态和行为。 断点可以是简单的,例如,在达到某行代码时暂停程序,或者涉及更复杂的逻辑,例如检验 附加条件写入日志 等等。

断点

一旦设置了断点,除非明确移除,否则它将一直保留在您的项目中, 临时断点除外。

断点类型

在 PyCharm 中有以下类型的断点:

  • 行断点 :在到达设置断点的代码行时暂停程序。 这种类型的断点可以设置在任何可执行的代码行上。

  • 异常断点 :当抛出 Exception 或其子类时暂停程序。 在 PyCharm 中,您可以为 Python 异常设置断点。 对于 PyCharm Pro,Django、Jinja2、JavaScript 和 Jupyter 异常断点是可用的。 它们在任何情况下都适用,不需要特定的源代码引用。 与堆栈跟踪不同,在异常时暂停应用程序可让您检查周围的上下文或数据,同时这些数据仍然可用。

设置断点

设置行断点

  • 点击可执行代码行的装订区域,设置断点。 或者,将文本光标放在行上并按下 Ctrl+F8

    行断点

设置异常断点

  1. Ctrl+Shift+F8 或从主菜单中选择 运行 | 查看断点

  2. 断点 对话框中,按 Alt+Insert 或单击 "添加"按钮 ,并选择 Python 异常断点JavaScript 异常断点

    创建异常断点

管理断点

移除断点

  • 对于非异常断点:点击装订区域的断点。

  • 对于所有断点:转到主菜单中的 运行 | 查看断点 Ctrl+Shift+F8 ,选择断点,然后点击 移除移除 或按 Delete

    静音断点

为了避免意外删除断点及其参数,您可以选择通过将它们拖到编辑器或点击鼠标中键来删除断点。 为此,请前往 设置 | 构建、执行、部署 | 调试器 并选择 拖动到编辑器或使用中键单击。 点击断点将 启用或禁用它。

静音断点

如果您暂时不需要在断点处暂停,可以将其 静音。 这使您能够在不离开调试器会话的情况下恢复正常程序操作。 之后,您可以取消静音断点并继续调试。

  • 点击 静音断点 按钮 静音断点按钮调试 工具窗口的工具栏中。

    静音断点

启用/禁用断点

当您移除断点时,其 内部配置会丢失。 若要在不丢失断点参数的情况下暂时关闭单个断点,您可以 disable 它:

  • 对于非异常断点:右键点击并根据需要设置 已启用 选项。 或者,您也可以在按住 Alt 的同时单击断点,或使用鼠标中键单击断点来完成此操作。 对于鼠标中键,请确保未将移除断点的操作 分配给该键

    禁用非异常断点
  • 对所有断点:点击 运行 | 查看断点 Ctrl+Shift+F8 ,然后在列表中选中/取消选中断点。

移动 / 复制断点

  • 要移动断点,请将其拖到另一行。

  • 要复制断点,请按住 Ctrl 并将断点拖到另一行。 这将在目标位置创建具有相同参数的断点。

查看所有设置的断点

您可以在 书签 工具窗口中查看所有断点的列表。 当您在代码中设置断点后,断点会自动添加到工具窗口中的专用列表中。

  • 在主菜单中,转到 """ 视图 | 工具窗口 | 书签 """ 或按 Alt+2 并展开 断点 列表。

书签工具窗口

分组断点

您可以将断点组织到组中,例如,如果您需要标记出针对特定问题的断点。

  • 断点 对话框 Ctrl+Shift+F8 中,选择您想要放置在组中的断点,然后从菜单中选择 移动到组

    移动到组

配置断点的属性

根据断点类型,您可以配置附加属性,从而使其操作符合特定需求。 最常用的选项通过 意图可用。

  • 要访问断点意图,请将文本光标放在有断点的行上,然后按 Alt+Enter。 在需要快速配置基本断点属性时,请使用此选项。

    断点意图
  • 要访问完整的属性列表,请右键点击断点并点击 更多 或按 Ctrl+Shift+F8

意图参考

意图

描述

移除断点

移除所选行的断点。

禁用断点

禁用 选定行的断点。

编辑断点

打开一个对话框,其中包含最常用的断点 属性。 更多属性,请点击 更多 或按 Ctrl+Shift+F8

断点属性参考

选项

描述

断点类型

已启用

取消选中此复选框以暂时禁用断点,而不将其从项目中移除。 禁用的断点将在调试过程中被跳过。

所有类型

挂起

选中复选框以在断点命中时暂停程序执行。 暂停应用程序很有用,如果您需要在某个点获取日志信息或计算表达式而不中断程序。 如果您需要创建一个 断点,以在命中时触发依赖断点,请选择不在该断点处暂停程序。

选择暂停策略:

  • All :所有线程将被暂停

  • 线程 :仅包含此断点的线程将被暂停。 如果您希望将 线程 策略用作默认策略,请单击 设为默认 按钮。

所有类型

条件

选择以指定命中断点的条件。 条件是一个 Python 布尔表达式。

此表达式必须在设置断点的行上有效,并且每次命中断点时都会进行评估。 如果评估结果为 True ,将执行选定的操作。

Python 行断点和异常断点

日志

选择是否将以下事件记录到控制台:

  • “断点已命中”消息 :当断点命中时,日志消息将显示在控制台输出中。

  • 堆栈跟踪 :当断点命中时,其堆栈跟踪将打印到控制台。

    如果您想检查哪些路径导致了这一点而不中断程序的执行,这将非常有用。

Python 行断点和异常断点

评估并记录

选择在断点命中时评估一个表达式,并在控制台输出中显示结果。

Python 行断点和异常断点

命中后移除

选择在断点命中后立即将其从项目中移除。

Django 异常断点、Jinja2 异常断点和 JavaScript 异常断点

在断点命中之前禁用

选择将触发当前断点的断点。 在该断点命中之前,当前断点将被禁用。 您还可以选择在命中后再次禁用它或保持启用状态。

所有类型

仅未捕获

选择在未捕获异常上触发断点时收到通知。

JavaScript 异常断点

激活策略

终止时

选择在进程因抛出此异常而终止时停止调试器。

Python 异常断点

引发时

选择在抛出此异常时停止调试器。 在这种情况下,进程不会终止。

Python 异常断点

忽略库文件

选择如果此异常在库中抛出,则不希望调试器停止。

Python 异常断点

断点状态

断点可能具有以下状态:

状态

描述

已验证

当您开始调试器会话后,调试器会检查是否技术上可以在断点处暂停程序。 如果是,则调试器将断点标记为 已验证

警告

如果技术上可以在断点处暂停程序,但存在相关问题,调试器会将断点状态设置为 warning。 例如,当无法在某个方法的某个实现处暂停程序时,可能会发生这种情况。

无效

如果在断点处技术上无法暂停程序,调试器会将其标记为 无效。 这经常发生是因为该行没有可执行代码。

非活动/依赖

当断点 配置为在另一个断点被触发前禁用时,它会被标记为非活动/依赖状态,并且此事件尚未发生。

静音

所有断点都已暂时失效,因为它们已被 静音

已禁用

此断点暂时处于非活动状态,因为它已被 禁用

非挂起

此断点的 挂起策略设置为命中时不挂起执行。

断点图标

根据它们的 类型状态 ,中断点会被标记以下图标:

折线图

异常

常规

行断点

异常断点

已禁用

禁用行断点

禁用异常断点

已验证

已验证行断点

静音

静音行断点

非活动/依赖

不活跃/从属行断点

静音已禁用

已禁用的行断点

非挂起

非挂起行断点

已验证的非挂起

已验证的非挂起行断点

无效

无效断点

提高效率的提示

使用断点进行调试打印

请使用 非中断 日志断点(在其他调试器中有时称为监视点)代替在您的代码中插入打印语句。 这提供了一种更灵活且集中的方式来处理调试日志消息。

更快速地设置日志断点

要设置一个 不断点 日志断点,请按住 Shift 并点击边栏。 这不会暂停程序执行,而是记录一条类似于 Breakpoint reached: threads.py:28 的消息。 如果您想记录编辑器中面前的某个表达式,请在按住 Shift 并点击装订线之前先选择它。

添加断点描述

如果您的项目中有许多断点,您可以为这些断点添加描述以便于搜索。 要执行此操作,请右键点击 断点 对话框 Ctrl+Shift+F8 中的一个断点,然后从菜单中选择 编辑说明。 现在当您开始输入断点名称时,它会获得焦点。

跳转到源

要从 断点 对话框跳转到设置选定断点的代码行,请按 F4

最后修改日期: 2025年 9月 26日