PyCharm 程序运行中调试
程序运行中调试
熟练地掌握开发工具的调试功能是每个程序员的必备技能,无论是开发中还是排查程序 BUG 中,熟练运用开发工具的调试功能往往能事半功倍 。
调试步骤
- 第一步:在需要调试的地方,打上断点
- 第二步:调试模式下运行程序
- 第三步:开始逐步分析调试
点击上图中的小蜘蛛 ,开启调试模式,在 PyCharm 下方会弹出一个选项卡。
调试窗口
- 变量查看窗口
- 调试控制窗口
- 线程控制窗口
- 程序控制窗口
变量查看窗口:可以查看当前程序进行到该断点处,所有普通变量和特殊变量值,每往下执行一行代码,这些变量都有可能跟着改变 。
线程控制窗口:如果运行的是多线程程序,可以通过线程控制窗口的下拉框切换线程,查看相应运行信息 。
调试控制窗口:共有 8 个按钮,他们的作用分别如下
Show Execution Point
:点击该按钮,无论编码窗口的光标在何处,都会自动跳转至程序运行的位置 。Step Over
:单步执行时,函数内遇到子函数时不会进入子函数,将子函数整个执行完再停止,子函数也视为一步。当不存在子函数时与Step Into
效果一样 。Step Into
:单步执行时,遇到子函数会进入并继续单步执行,甚至跳转至源代码中执行 。Step Into My Code
:单步执行时,遇到子函数会进入并且继续单步执行,不会跳转至源代码中执行 。Step Out
:当进入一个函数中时,点击该按钮,会跳出当前函数体,返回至调用此函数的位置 。Run To Cursor
:当调试代码时,不需要逐行调试,又不想打很多断点,可以把光标放在需要代码运行暂停的位置,点击该按钮运行到光标位置,这样更优雅 。Evaluate Expression
:计算表达式,可以在弹出视图中执行一些代码片段 。
动态执行代码
在打断点调试过程中使用 Evaluate Expression
执行表达式设置某个变量,这对调试某段代码逻辑很有效 。
在图示位置处,点击右键使用 Evaluate Expression
弹出 Evaluate Expression
窗口,可以运行命令表达式,直接操作变量。
提示
Evaluate Expression
只能在 Debug 打断点模式下使用,如果需要使用表达式调试,可以使用 Show Python Prompt 更加方便 。
程序控制窗口,共有 6 个按钮,作用分别如下:
Rerun
:重新以 DeBug 模式运行该程序 。Resume Program
:跳过当前断点,运行到下一个断点 。Stop
:停止调试运行 。View Breakpoints
:显示所有断点 。Mute Breakpoints
:禁止所有断点 。Settings
:恢复控制台布局 。
调试相关快捷键
Shift + F10
:运行当前运行配置中的文件,等同于 Ctrl + Shift + F10Shift + F9
:调试当前运行配置中的文件Ctrl + Shift + F10
:运行main
函数Alt + Shift + F10
:弹出菜单,让你选择运行哪一个文件(你得提前设置好运行配置)Alt + Shift + F9
:弹出菜单,让你选择调试哪一个文件(你得提前设置好运行配置)F8
:单步执行,不进入函数F7
:单步执行,进入函数Alt + Shift +F7
:单步执行,只进入自己写的函数Shift + F8
:跳出函数体Alt + F9
:运行到光标所在行F9
:运行到下一断点Ctrl + F2
:终止调试程序Ctrl + F5
:重新以调试模式运行Ctrl + Shift + F8
:查看所有设置的断点Ctrl + F8
:切换断点(有断点则取消断点,没有则加上断点)Alt + F8
:计算表达式(可以更改变量值使其生效)