pdb调试
- 1 pdb的调用
- 2 pdb设置断点
- 3 一个网上的实例来说明pdb的用法
- 4 pdb中的常用命令
- 4.1 使用`n`来执行下一行
- 4.2 使用`ENTER`重复上一个命令
- 4.3 使用`p`打印变量值
- 4.4 使用`l`查看上下行代码
- 4.5 使用`s`进入子函数
- 4.6 使用`r`执行函数直到结束
- 4.7 使用`c`停止调试并继续运行
- 4.8 输入`q`直接退出调试界面
- 5 写在最后
- 佐佑思维公众号二维码如下:
- 一个小工具,欢迎免费下载
Pdb就是Python debugger ,是python自带的调试器
1 pdb的调用
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
或者直接回车
重复执行上一个命令
4.3 使用p
打印变量值
在Pdb中我们可以使用p 变量名
来查看变量值,比如我们查看变量temp
的值
4.4 使用l
查看上下行代码
在Pdb中我们可以使用 查看当前行上下几行代码
4.5 使用s
进入子函数
现在,我们来到出错的这一行,之所以报错就是传进去变量出了问题,因此我们可以在pdb交互行中使用s
来进入子函数test()
4.6 使用r
执行函数直到结束
在pdb中可以使用r
来执行当前运行函数到结束
4.7 使用c
停止调试并继续运行
可以发现提示了错误信息:TypeError: can only concatenate str (not "int") to str
所以我们进行了调试:将temp = 'ready '
修改为temp =0
可以使用c
命令继续执行命令
4.8 输入q
直接退出调试界面
5 写在最后
- 多线程相关
- 比较大型的项目
上面两种情况下,pdb将不是最好的选择,会显得力不从心,因此我们需要灵活选择调试方案。