[Python] 使用pdb对python程序进行调试

在一开始~当初我还是~使用print调试~
在那之后我用了pycharm,开始用断点调试。再之后用了vs code,在调试用脚本输入超参的代码调试时遇到了问题。
突然有一天,我突然发现,原来我还可以使用pdb调试。

pdb 是 一个python 包,import之后可以实现设置断点、单步调试、进入函数调试、查看当前代码、动态改变变量的值等操作。

如何设置断点

我们仅需要在我们希望程序停下来的地方按照如下设置:

# some code...

import pdb
pdb.set_trace()

# some code...

然后在运行程序的时候就可以在这个地方停住显示

> 你设置的断点的.py文件路径(断点的行号)正在执行的函数名()
-> 接下来马上要执行的代码
(pdb)

然后我们就可以在(pdb)的符号后面输入一些指令或者变量名来进行一些操作。

常用的pdb调试命令

命令效果
break / b用命令设置断点
continue / c继续执行程序到下一个断点
list / l查看当前行的代码段
step / s进入函数
return / r执行代码直到当前函数的返回
exit / q中止并退出断点调试
next / n继续执行下一行
pp打印变量的值
help帮助

输入变量名

可以查看输入的变量的值
假设原始代码test.py里的代码如下

import pdb
pdb.set_trace()

# test case
a = 1
b = 2
c = 3
d = 4

我们运行程序可能见到如下情况:

> test.py(5)<module>()
-> a = 1
(pdb)n
-> b = 2
(pdb)a
1 
(pdb)b
*** NameError: name 'b' is not defined
(pdb)n
-> c = 3
(pdb)b
2

赶快找一段程序自己试试吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值