python调试之pdb调试工具

pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括 设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量 的值等。

1. 设置断点的两种方式

1.1 侵入式方法

需要在被调试的代码中添加一行代码,然后再正常运行代码。

import pdb
pdb.set_trace()

1.2 非侵入式方法

不用额外修改源代码,在命令行下直接运行就能调试。使用方式如下:

python3 -m pdb test.py

会自动停在第一行,等待调试。然后可以使用几个关键命令进行调试。

#设置断点的方法
(Pdb)b 10 #断点设置在本py的第10行(Pdb)b test.py:20 #断点设置到 test.py第20行
#删除断点的方法
(Pdb)b #查看断点编号
(Pdb)cl 2 #删除第2个断点

(Pdb)p param #查看当前 变量值
(Pdb)l #查看运行到某处代码
(Pdb)a #查看全部栈内变量

2. 调试命令

(1)pdb命令表格

pdb 提供了一些常用的调试命令,如下表所示。

命令说明
help帮助
break 或 b设置断点
tbreak(temporary break)临时断点,在第一次执行到这个断点之后,就自动删除这个断点,用法和b一样
clear或cl清楚断点
continue 或 c继续执行程序调至下一个断点
list 或 l查看当前行的代码段(前后11行)
ll查看当前函数或框架的所有源代码
next 或 n执行下一行(不会进入函数体)
step 或 s执行下一行(能够进入函数体)
return 或 r执行下一行(在函数中时会直接执行到函数返回处)
exit 或 q中止并退出
a或者args查看全部栈内变量
p打印变量
pp打印变量的值
a查看函数参数,在函数中时打印函数的参数和参数的值
unt或until(unt lineno)持续执行直到运行到指定行(或遇到断点)
j lineno或jump直接跳转到指定行(注意,被跳过的代码不执行)

(2)强制退出

如果q不足以停止循环(也许您的except块行为不正确),则可能需要使用os._exit(),pdb的终端输入下列命令即可。

import os
os._exit(0)

q和sys.exit通过抛出异常来工作-bdb.BdbQuit的q和SystemExit的sys.exit。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非晚非晚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值