快速命令
- <font color=blue size=4 face="仿宋">1 pdb的调用
- <font color=blue size=4 face="仿宋">2 pdb设置断点
- <font color=blue size=4 face="仿宋">3 一个网上的实例来说明pdb的用法
- <font color=blue size=4 face="仿宋">4 pdb中的常用命令
- <font color=blue size=3 face="仿宋">4.1 使用 `n` 来执行下一行
- <font color=blue size=3 face="仿宋">4.2 使用 `ENTER` 重复上一个命令
- <font color=blue size=3 face="仿宋">4.3 使用 `p` 打印变量值
- <font color=blue size=3 face="仿宋">4.4 使用 `l` 查看上下行代码
- <font color=blue size=3 face="仿宋">4.5 使用 `s` 进入子函数
- <font color=blue size=3 face="仿宋">4.6 使用 `r` 执行函数直到结束
- <font color=blue size=3 face="仿宋">4.7 使用 `c` 停止调试并继续运行
- <font color=blue size=3 face="仿宋">4.8 输入 `q` 直接退出调试界面
- <font color=blue size=4 face="仿宋">5 写在最后
1 pdb的调用
pdb
就是Python debugger
,是python自带的调试器
pdb是python标准库,所以调用很简单
import pdb
2 pdb设置断点
就是在你认为可能出错的地方设置一个断点
pdb.set_trace()
3 一个网上的实例来说明pdb的用法
import pdb
def test (p):
p=p+1
return p
def fastdebug():
pdb.set_trace()
print(' start')
temp = 'ready '
print('ok')
res = test(temp)
print('end')
fastdebug()
test
函数接收一个参数p
并计算p+1
的值传出,这里传入的参数本应该是数值型,但是参数temp是str字符串,所以当我们执行上面一段代码时一定会报错!
可以看到运行代码后,pdb
的调试器控制台将从放置set_trace()
的位置开始等待我们的命令,并且箭头标记指向pdb接下来要运行的行。那么接下来介绍一些pdb中常用命令。
4 pdb中的常用命令
4.1 使用 n
来执行下一行
在弹出的文本框中输入 n
即可执行该行,并且箭头将指向下一行即将执行的代码
4.2 使用 ENTER
重复上一个命令
现在还没有到报错的位置,我们使用 n
或者直接 回车Enter
重复执行上一个命令
4.3 使用 p
打印变量值
在pdb
中我们可以使用 p 变量名
来查看变量值,比如我们查看变量 temp
的值
4.4 使用 l
查看上下行代码
在pdb
中我们可以使用 l
查看当前行上下几行代码
4.5 使用 s
进入子函数
现在,我们来到出错的这一行,之所以报错就是传进去变量出了问题,因此我们可以在pdb交互行中使用 s
来进入 子函数test()
4.6 使用 r
执行函数直到结束
可以使用 r
来执行当前运行函数到结束
4.7 使用 c
停止调试并继续运行
可以发现提示了错误信息:TypeError: can only concatenate str (not "int") to str
所以我们进行了调试:将 temp = 'ready'
修改为 temp =0
可以使用 c
命令继续执行命令
4.8 输入 q
直接退出调试界面
5 写在最后
- 多线程相关
- 比较大型的项目
上面两种情况下,
pdb
将不是最好的选择,会显得力不从心,因此我们需要灵活选择调试方案。