跳到主要内容

PyCharm 程序运行中调试

程序运行中调试

熟练地掌握开发工具的调试功能是每个程序员的必备技能,无论是开发中还是排查程序 BUG 中,熟练运用开发工具的调试功能往往能事半功倍 。

调试步骤

  1. 第一步:在需要调试的地方,打上断点
  2. 第二步:调试模式下运行程序
  3. 第三步:开始逐步分析调试

点击上图中的小蜘蛛 ,开启调试模式,在 PyCharm 下方会弹出一个选项卡。

调试窗口

  1. 变量查看窗口
  2. 调试控制窗口
  3. 线程控制窗口
  4. 程序控制窗口

变量查看窗口:可以查看当前程序进行到该断点处,所有普通变量和特殊变量值,每往下执行一行代码,这些变量都有可能跟着改变 。

线程控制窗口:如果运行的是多线程程序,可以通过线程控制窗口的下拉框切换线程,查看相应运行信息 。

调试控制窗口:共有 8 个按钮,他们的作用分别如下

  1. Show Execution Point:点击该按钮,无论编码窗口的光标在何处,都会自动跳转至程序运行的位置 。
  2. Step Over:单步执行时,函数内遇到子函数时不会进入子函数,将子函数整个执行完再停止,子函数也视为一步。当不存在子函数时与 Step Into 效果一样 。
  3. Step Into:单步执行时,遇到子函数会进入并继续单步执行,甚至跳转至源代码中执行 。
  4. Step Into My Code:单步执行时,遇到子函数会进入并且继续单步执行,不会跳转至源代码中执行 。
  5. Step Out:当进入一个函数中时,点击该按钮,会跳出当前函数体,返回至调用此函数的位置 。
  6. Run To Cursor:当调试代码时,不需要逐行调试,又不想打很多断点,可以把光标放在需要代码运行暂停的位置,点击该按钮运行到光标位置,这样更优雅 。
  7. Evaluate Expression:计算表达式,可以在弹出视图中执行一些代码片段 。

动态执行代码

在打断点调试过程中使用 Evaluate Expression 执行表达式设置某个变量,这对调试某段代码逻辑很有效 。

在图示位置处,点击右键使用 Evaluate Expression

弹出 Evaluate Expression 窗口,可以运行命令表达式,直接操作变量。

提示

Evaluate Expression 只能在 Debug 打断点模式下使用,如果需要使用表达式调试,可以使用 Show Python Prompt 更加方便 。

程序控制窗口,共有 6 个按钮,作用分别如下:

  1. Rerun:重新以 DeBug 模式运行该程序 。
  2. Resume Program:跳过当前断点,运行到下一个断点 。
  3. Stop:停止调试运行 。
  4. View Breakpoints:显示所有断点 。
  5. Mute Breakpoints:禁止所有断点 。
  6. Settings:恢复控制台布局 。

调试相关快捷键

  • Shift + F10:运行当前运行配置中的文件,等同于 Ctrl + Shift + F10
  • Shift + 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:计算表达式(可以更改变量值使其生效)