近期在项目自动化脚本编写中,经常会在本地pycharm中写好脚本,然后上传到linux中运行。由于局限于网络的一些原因,本地pycharm无法调试这些py文件,只有linux上才有py运行所需要的模块,所以遇到了一个比较头疼的问题,那就是上传到linux的脚本,如何degug,一时间成了一个问题。直到了解了pdb模块,顿时柳暗花明又一村。
pdb是什么?它是如何使用的呢?
pdb是一种linux中调试python脚本的工具,类似于windows下在pycharm中使用debug一样的效果。由于是命令行模式的linux系统,所以调试文件使用pdb就再方便不过了。
pdb有两种模式,第一种是直接在python文件中"import pdb;pdb.set_trace()",直接直接运行python脚本就可以了。另一种是用python -m pdb py文件的方式单步调试。
下面我们首先介绍一下pdb的参数含义。
p:print,打印内容,可以加需要打印的参数,pp是好看一点的打印,需要注意一点打印的变量需要执行之后才可以打印出来,也就是在变量执行的语句下一行才可以使用p
s:step,执行下一条命令,如果是函数则进入函数中,执行函数的第一句
n:next,执行下一条语句,如果当前语句是函数,则执行函数,然后执行当前函数语句的下一条
r:return,退出当前正在执行的函数
c:continue,继续执行语句,直到遇到下一个断点停止
l:list,展示当前正在执行的语句附近的代码
run:重新启动调试
q:quit,退出调试
b:break,指定代码中哪一行添加断点
cl:clear,清楚断点
接着我们用第一种调试方式做个示例。
下面就看到报错的位置了
下面是第二种调试方式
这是演示了以下打印变量的过程
在实际的运用中,如果能大概知道函数出问题的地方的时候,可以在py文件中需要调试位置加上“import pdb;pdb.set_trace()”。如果一时没有头绪,那就可以直接python -m pdb py文件,一步一步分析代码了。