摘要:在pycharm中经常需要代码调试来读懂程序,但是有时使用pycharm界面的调试按钮会遇到程序卡死在某一行而无法继续调试的情况。可以用pdb命令的方法进行调试。

1. 如何进入调试状态

在终端输入输入python命令时,在后面加上 -m pdb,执行后便进入调试状态。

python -m pdb 脚本名.py

以我的代码为例,执行上面指令后会发现最下面一行以(Pdb)开头,即进入调试状态了。
在这里插入图片描述

2. 调试操作

进入调试状态后,可以输入n一行一行的执行代码,也可以通过break命令设置断点位置,然后输入c直接跳到断点处。
下面演示如何打断点进行调试
在这里插入图片描述

在上图我们可以看到输入c后,->指向config = vars(parase_args())这一行,表示当前代码执行到该行(但改行还未执行),接着我们输入n即可执行该行。
从下图可以看到执行完config = vars(parase_args())这一行,我又输入p config,出现一大堆参数。这里的p指令即打印参数的意思,将config里面的参数显示出来。

在这里插入图片描述

调试期间我们想观察哪一行代码的结果都可以用p指令来显示。

3. 关键指令

上面只是最基础的例子,要想实现更多需求,可以使用其他指令。
关于一些关键的pdb调试指令如下:

命令 缩写 说明
break b 设置断点
continue c 继续执行至下一个断点
next n 执行下一行,如果下一行是子程序,不会进入子程序
step s 执行下一行,如果下一行是子程序,会进入子程序
p - 打印变量或表达式
clear cl 清除所有断点
disable - 禁用启用的断点
enable - 启用禁用的断点
where bt\w 打印堆栈轨迹
list l 根据参数值打印源码
up u 移动到上一堆栈
down d 移动到下一堆栈
restart run 重新开始调试
args a 打印函数参数
return r 执行到当前函数结束
Logo

一站式 AI 云服务平台

更多推荐