前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python pdb调试

Python pdb调试

作者头像
Steve Wang
发布于 2018-02-05 09:41:37
发布于 2018-02-05 09:41:37
1.1K00
代码可运行
举报
文章被收录于专栏:从流域到海域从流域到海域
运行总次数:0
代码可运行

Python提供了pdb命令来对代码进行调试,下面是pdb的使用方法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#示例脚本:
a = 1
b = 0
print(1/0)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#命令行调试
C:\Users\hongze>python -m pdb test.py   #调用方法
> c:\users\hongze\test.py(1)<module>()
-> a = 1
(Pdb) l                                 #l查看全部代码
  1  -> a = 1
  2     b = 0
  3     print(1/0)
[EOF]
(Pdb) n                                 #n单步执行
> c:\users\hongze\test.py(2)<module>()
-> b = 0
(Pdb) n
> c:\users\hongze\test.py(3)<module>()
-> print(1/0)
(Pdb) p a                               #p + 变量名 查看当前变量值
1
(Pdb) n
ZeroDivisionError: division by zero
> c:\users\hongze\test.py(3)<module>()
-> print(1/0)
(Pdb) n
--Return--
> c:\users\hongze\test.py(3)<module>()->None
-> print(1/0)
(Pdb) q                                 #q退出

你可能会问,如果代码量非常巨大的时候,但不执行得做到猴年马月啊=.=。

import pdb,在需要的地方加上pdb.set_trace(),就相当于设置了一个断点,调试将从断点处执行,上面的命令依然可用,输入c继续执行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pdb

a = 1
b = 0
pdb.set_trace()
print(1/0)


#pdb 断点调试实例
C:\Users\hongze>python test.py
> c:\users\hongze\test.py(6)<module>()
-> print(1/0)
(Pdb) n
ZeroDivisionError: division by zero
> c:\users\hongze\test.py(6)<module>()
-> print(1/0)
(Pdb) c              #输入c继续执行
Traceback (most recent call last):
  File "test.py", line 6, in <module>
    print(1/0)
ZeroDivisionError: division by zero

要想获得最好的调试体验,还是下载个IDE吧,推荐PyCharm,可以鼠标点击添加断点,图形化操作。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年12月25日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档