设置调试断点与配置调试器

前面两节一直在介绍如何在 PyCharm 里直接运行程序,但实际学习工作过程中, 写完代码很少一次就能运行成功,需要通过不断调试,最终使程序能成功执行,本节开始介绍与调试相关的功能,本节的重点是配置调试器与如何设置断点

1. 配置调试器

在前面章节,我们为项目配置了多个运行配置,对于这些已存在的配置,可以通过按 ⌃⇧F9(Ctrl + Shift + F9) 直接进入调试模式。但通常我们在调试前还需要配置调试器,主要包括通用 Debugger 与 Python Debugger:

1. 主菜单: PyCharm/File -> Preference/Settings -> Build, Execution, Delopyment -> Debugger, 下面列出各选项的解释,可根据需要进行设置。

图片描述
2. 主菜单: PyCharm/File -> Preference/Settings -> Build, Execution, Delopyment -> Python Debugger通常使用默认设置即可,不需要更改。除非你的程序使用了PyQt 或者 Gevent

图片描述

2. 断点

断点是源代码标记,可以在特定点暂停程序执行并检查其行为。设置后,断点将保留在项目中,直到显式删除它。断点分为行断点与异常断点。

设断点最直接的方式是在编辑器中,点击需要设置断点的代码行左侧边栏或者按 ⌘ F8 (Ctrl + F8) 就设置了行断点,然后在左侧边栏出现红色的圆点图标。

2.1 查看/编辑断点

1. 主菜单 Run -> View Breakpoints , 或者按 ⇧⌘ F8(Ctrl + Shift + F8),可以查看当前项目所有断点。

Tips: 断点虽然有多个属性,最常用的也就前两项,所以通常使用默认就可以了。其余属性做为一般了解。

图片描述

2. 在编辑器内, 右键点击断点图标,可以查看与编辑单个断点的属性。

图片描述
3. 使断点失效, 使上面的属性 “Enabled” 不选中即可,失效的断点图标是空心红色圆。

图片描述

2.2 创建行断点

在可执行代码行上设置行断点,在执行该断点以前,线程执行将被挂起,PyCharm 显示该线程堆栈上的堆栈帧。

在编辑器中,点击需要设置断点的代码行左侧边栏或者按 ⌘ F8 (Ctrl + F8) 就设置了行断点。
图片描述

Tips: 如果想移除断点,只需点击断点图标就可以了,移除断点的方法是在 Debugger 中设置的。

除此以外,如果按 ⌥ ⇧⌘ F8 (Ctrl + Alt + Shift + F8) 设置了临时断点,断点将在命中后从项目中删除,也就是说临时断点只使用一次。也可以通过设置断点属性 “Remove once hit” 创建临时断点。

图片描述

Tips: 临时断点图标与普通断点是一样的,没执行调试前是没办法直接区分的,只是在调试过程中,临时断点被击中后,就自动移除了。

2.2 创建异常断点

PyCharm 为 Python、Django、Jinja2 和 JavaScript 提供异常断点。当引发指定的异常时触发异常断点。它们全局应用于异常条件,不需要特定的源代码引用。

主菜单 Run -> View Breakpoints , 点击 + 按钮, 选择 Python Exception Breakpoint。

图片描述
在"Select Exception Class"对话框中,指定库或项目中的异常类。

图片描述

新增加的异常断点会显示在对应分类下,如果想删除,可以点击 — 按钮或者选择要删除断点,点击键盘上的删除按钮。

图片描述

3. 小结

本节主要是介绍调试程序前的准备工作, 主要包括如何配置调试器,断点的分类、创建、属性及编辑等功能。无论配置调试器还是断点,大多数情况都会选择系统提供的默认设置,如需更新属性设置,请先了解本节介绍的各个属性基本含义后再进行设置。

图片描述