断点
最后修改时间:2023 年 12 月 4 日断点是在特定点暂停程序执行的特殊标记。这使您可以检查程序状态和行为。断点可以很简单(例如,在到达某行代码时暂停程序),也可以涉及更复杂的逻辑(检查附加条件、写入日志消息等)。
设置后,断点将保留在您的项目中,直到您明确删除它为止,临时断点除外。
笔记
如果带有断点的文件被外部修改,例如通过 VCS 更新或在外部编辑器中更改,并且行号已更改,断点将相应移动。请注意,进行此类更改时 PyCharm 必须正在运行,否则它们将被忽视。
断点类型
PyCharm 中提供以下类型的断点:
行断点:在到达设置断点的代码行时暂停程序。这种类型的断点可以设置在任何可执行代码行上。
异常断点
Exception
:当抛出异常或其子类时,暂停程序 。在 PyCharm 中,您可以为 Python 异常设置断点。对于 PyCharm Professional、Django、Jinja2、JavaScript 和 Jupyter 异常断点可用。它们全局适用于异常情况,不需要特定的源代码参考。
设置断点
设置行断点
单击要设置断点的可执行代码行的装订线。或者,将插入符号放在该行并按。CtrlF8
设置异常断点
按或选择运行 | 从主菜单查看断点。CtrlShiftF8
在“断点”对话框中,按或单击,然后选择 “Python 异常断点”或“JavaScript 异常断点”。AltInsert
管理断点
删除断点
对于非异常断点:单击装订线中的断点。
对于所有断点:转到Run | 查看断点 ,选择断点,然后单击删除。CtrlShiftF8 Delete
为了避免意外删除断点并丢失其参数,您可以选择通过将断点拖动到编辑器或单击鼠标中键来删除断点。为此,请转至“设置”|“ 构建、执行、部署 | 调试器并选择“拖动到编辑器”或单击鼠标中键。单击断点将启用或禁用它。
静音断点
如果您不需要在断点处停止一段时间,可以将它们静音。这允许您在不离开调试器会话的情况下恢复正常的程序操作。之后,您可以取消断点静音并继续调试。
单击“调试”工具窗口工具栏中的“静音断点”按钮。
启用/禁用断点
当您删除断点时,其内部配置将丢失。要暂时关闭单个断点而不丢失其参数,您可以禁用它:
对于非异常断点:右键单击它并根据需要设置“启用”选项。如果未指定删除断点,您还可以使用鼠标中键切换它们。
对于所有断点:单击“查看断点” 并选中/取消选中列表上的断点。CtrlShiftF8
移动/复制断点
要移动断点,请将其拖动到另一行。
要复制断点,请按住断点并将其拖动到另一行。这将在目标处创建一个具有相同参数的断点。Ctrl
配置断点的属性
根据断点类型,您可以配置其他属性,以便根据特定需要定制其操作。最常用的选项可以通过意图获得。
要访问断点意图,请将插入符号放在断点所在行并按。当您需要快速配置基本断点属性时,请使用此选项。AltEnter
要访问完整的属性列表,请右键单击断点,然后单击更多或按。使用此选项可以鸟瞰所有断点并完全控制其配置。CtrlShiftF8
意向参考
断点的属性
选项 | 描述 | 断点类型 |
---|---|---|
启用 | 清除该复选框可暂时禁用断点,而不将其从项目中删除。调试过程中将跳过禁用的断点。 | 所有类型 |
暂停 | 选中该复选框可在命中断点时暂停程序执行。如果您需要在某个点获取日志信息或计算表达式而不中断程序,则挂起应用程序非常有用。如果您需要创建一个主断点,在命中时将触发从属断点,请选择不在该断点处暂停程序。 选择暂停策略:
| 所有类型 |
健康)状况 | 选择以指定命中断点的条件。条件是一个 Python 布尔表达式。 该表达式必须在设置断点的行有效,并且每次命中断点时都会对其进行求值。如果评估结果为 | Python 行和异常断点 |
日志 | 选择是否要将以下事件记录到控制台:
| Python 行和异常断点 |
评估并记录 | 选择在命中断点时计算表达式,并在控制台输出中显示结果。 | Python 行和异常断点 |
击中后移除 | 选择在命中断点后立即从项目中删除断点。 | Django 异常、Jinja2 异常和 JavaScript 异常断点 |
禁用直到遇到断点 | 选择将触发当前断点的断点。在命中断点之前,当前断点将被禁用。您还可以选择是否要再次禁用它或在点击后保持启用状态。 | 所有类型 |
仅未捕获 | 选择在未捕获的异常上遇到断点时收到通知。 | JavaScript 异常断点 |
激活政策 | ||
终止时 | 选择当进程因抛出此异常而终止时停止调试器。 | Python 异常断点 |
加注时 | 选择在引发此异常时停止调试器。在这种情况下,进程不会终止。 | Python 异常断点 |
忽略库文件 | 如果您不希望调试器在库内引发此异常时停止,请选择此选项。 | Python 异常断点 |
断点状态
断点可以有以下状态:
地位 | 描述 |
---|---|
已验证 | 启动调试器会话后,调试器会检查技术上是否可以在断点处挂起程序。如果是,调试器将断点标记为已验证。 |
警告 | 如果技术上可以在断点处暂停程序,但存在与之相关的问题,调试器会向您发出警告。例如,当无法在方法的实现之一处挂起程序时,可能会发生这种情况。 |
无效的 | 如果技术上不可能在断点处暂停程序,调试器会将其标记为无效。最常见的原因是线路上没有可执行代码。 |
不活跃/依赖 | 当断点被配置为禁用直到命中另一个断点时,断点被标记为非活动/依赖,而这还没有发生。 |
静音 | 所有断点都暂时处于非活动状态,因为它们已被静音。 |
残疾人 | 该断点暂时处于非活动状态,因为它已被禁用。 |
非暂停 | 为该断点设置了暂停策略,以便在命中时不会暂停执行。 |
断点图标
线 | 方法 | 例外 | ||
---|---|---|---|---|
常规的 | ||||
残疾人 | ||||
已验证 | ||||
静音 | ||||
不活跃/依赖 | ||||
静音禁用 | ||||
非暂停 | ||||
已验证非暂停 | ||||
无效的 |
生产力技巧
感谢您的反馈意见!