使用PDB调试Python程序的完整实践

介绍

在开发简单程序的时候,可以通过加入print或是log的方式进行程序的调试,但是对于复杂的程序这种方式往往比较困难,这时就需要引入一种可以进行单步调试以及可以方便查看变量的方法来进行程序问题的排查,Python 的pdb就是用来解决这个问题的。

常用命令

命令用途
break 或 b设置断点
continue 或 c继续执行程序, 或是跳到下个断点
list 或 l查看当前行的代码段
step 或 s进入函数
return 或 r执行代码直到从当前函数返回
exit 或 q中止并退出
next 或 n执行下一行
p 或!打印变量的值,例如p a
help 或 h帮助

实战

在代码中嵌入pdb代码

# utils.py
def add(a,b):
    return a+b

# main.py
import utils

def cal(a,b):
    import pdb;pdb.set_trace()  #引入pdb代码片段,不需要时,可以注掉
    c=utils.add(a,b)
    print c

if __name__=='__main__':
   cal(3,4)

开始调试

root@native-sunaihua-5-25-18:~/pdb_test# python main.py   #开始
> /root/pdb_test/main.py(5)cal()
-> c=conf.add(a,b)
(Pdb) s                                                   #进入调用函数
--Call--
> /root/pdb_test/conf.py(1)add()
-> def add(a,b):
(Pdb) l                                                    #查看代码
  1  -> def add(a,b):
  2         return a+b
[EOF]
(Pdb) b 2                                                  #设置断点
Breakpoint 1 at /root/pdb_test/conf.py:2
(Pdb) c                                                    #继续执行到下一个断点
> /root/pdb_test/conf.py(2)add()
-> return a+b
(Pdb) n                                                    #执行下一行         
--Return--
> /root/pdb_test/conf.py(2)add()->7
-> return a+b
(Pdb) n
> /root/pdb_test/main.py(6)cal()
-> print c
(Pdb) n
7
--Return--
> /root/pdb_test/main.py(6)cal()->None
-> print c
(Pdb) p c                                                   #查看c变量的值      
7
(Pdb) q                                                     #退出
  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值