3分钟学会!python pdb调试利器!最常用pdb命令!
在debug的时候,我们通常会写一个print语句,打印出来这个变量值,或函数的返回值到底是什么,但是这样会很麻烦。因为每次都需要写多个print,运行多次项目。
pdb就很好的解决了这个问题。只需要打个断点,使用pdb的命令执行你想要的,比如执行断点的下一行,打印当前变量等等。
先说下命令:
pdb.set_trace():作用是打断点。在哪儿插入断点,程序就会进入交互模式,暂停程序的执行。断点之前的代码都已经执行到内存中,断点之后的代码被暂停执行。
l: 查看当前程序运行到哪里。
p param:打印变量值,这里的打印是打印pdb.set_trace()前面的值。
p param1,param2: 打印多个变量值,用逗号隔开。
n: 执行下一行代码,打印。
c: 继续执行程序,直到程序走到下一个断点。
w: 显示当前正在执行的代码行的上下文信息。
a: 打印当前函数参数列表
s: 执行当前代码行,并停留在下一个set_trace()地方,可以说是下一个端点的地方。
执行下一条语句,遇到函数进入其内部
cl: 清除断点
b:行数:设置断点
r:执行到当前函数结束
举例说明:
def blog(name):
print('进入blog函数')
name()
print('我的博客是 https://blog.csdn.net/zhh763984017')
if __name__ == '__main__':
print "before main......."
x = 9
pdb.set_trace()
y = 3
# count_time(baiyu)
blog(baiyu)
pdb.set_trace()
z = x + y
print z
启动代码:
程序执行到pdb.set_trace()断点,执行到断点时进入交互式调试模式。此时第54行print,和x=9是已经执行到内存中的。
运行l命令,l命令是看程序执行哪里的上下文。
p 变量名:打印已经执行过的变量值,这里也可以打印多个,p 变量名1,变量名2
w命令,w也是看程序执行到哪里了,只是简单的一行。
n是执行下一行程序,python是顺序执行的。
c:继续执行程序,直到程序走到下一个断点。
下面的是执行到下一个断点。
a:打印当前函数参数列表
s执行下一条语句,遇到函数进入其内部,和n不同是,s是进入了内部。
作者:晓风残月一望关河萧索