代码部署到了服务器,不借助IDE很难调试,出现问题时,手动调试一个个变量print太麻烦,还需要频繁的改代码,效率低下,使用python PDB可以在命令行调试代码,非常强大
PDB是python debugger的简称,python默认已经自带pdb了,无需另外安装,以下是两种方式的PDB使用方式
单步执行模式
使用python3 -m pdb test.py
启动脚本并进入单步执行模式,效果如下:
输入h
可以看到pdb的帮助,也可以输入help xxx显示某个指令的帮助信息
以下是常用的命令介绍
命令 | 简写 | 作用 |
---|---|---|
args | a | 查看当前函数参数 |
break | b | 不加数字查看断点,加数字表示在某一行打断点 |
clear | cl | 清除所有断点,加数字表示清除第几个断点 |
continue | c | 运行程序直至遇到下一个断点 |
disable | 无 | 将指定的断点失效 |
display | 无 | 一直显示变量的值 |
enable | a | 将指定的断点生效 |
help | h | 查看帮助 |
ignore | 无 | 跳过断点n次 |
interact | 无 | 进入包含当前环境变量的python解析器 |
jump | j | 跳转到程序指定行 |
list | l | 列出周围11行代码,list 1,6查看1到6行的代码 |
longlist | ll | 查看全部代码 |
next | n | 执行下一条语句(不进入函数) |
p | 无 | 输入表达式 |
pp | 无 | 格式化输出表达式 |
quit | q | 退出调试 |
restart | run | 重新启动debug |
return | r | 执行当前运行函数到结束 |
step | s | 执行下一条步(进入函数) |
source | 无 | 获取对象(方法、类等)的源码 |
undisplay | 无 | 取消一直显示变量的值 |
until | unt | 执行直到某一行 |
whatis | 无 | 输出变量类型 |
where | w | 打印当前执行堆栈 |
注意
1、直接输入Enter,会重复执行上一条命令
2、输入PDB不认识的命令,PDB会把他当做Python语句在当前环境下执行
3、当前代码执行完后会从头开始重新执行debug
代码中嵌套set_trace()设置断点
直接在代码内需要加断点的行前面加入import pdb; pdb.set_trace()
,正常运行代码,执行到该行就会进PDB命令行模式,调试方式与单步执行模式类似,但是这种方式运行到代码结束不会重新开始debug。
# test.py
import pdb
def t1(n):
print(n)
a = 123
t1(a)
import pdb; pdb.set_trace()
print('done!')
参考资料
https://www.jb51.net/article/165206.htm
https://www.cnblogs.com/xiaohai2003ly/p/8529472.html
赏
使用支付宝打赏
使用微信打赏
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏