Python调试器-Pdb的简介及调试命令

Pdb是Python的交互式源代码调试器,提供断点、单步执行等功能。在版本3.3中,增加了tab补全支持。Pdb可通过pdb.set_trace()插入到代码中,或作为脚本调用来进行事后调试。它还支持命令别名、运行时环境的扩展和跳过某些模块的调试。在3.7版中,Pdb增强了对命令行选项的支持。调试器命令包括设置断点、查看堆栈、执行代码等,帮助开发者高效地定位和解决问题。
摘要由CSDN通过智能技术生成

Pdb简介

pdb为Python程序定义了一个交互式源代码调试器。它支持在源代码行级别设置(条件)断点和单步执行,检查堆栈框架,源代码列表以及在任何堆栈框架的上下文中评估任意Python代码。它还支持事后调试,可以在程序控制下调用。

调试器是可扩展的–实际上定义为class Pdb。目前尚无记录,但通过阅读源代码很容易理解。扩展接口使用模块bdbcmd

调试器的提示是(Pdb)。在调试器的控制下运行程序的典型用法是:

>>>
>>> import pdb
>>> import mymodule
>>> pdb.run('mymodule.test()')
> <string>(0)?()
(Pdb) continue
> <string>(1)?()
(Pdb) continue
NameError: 'spam'
> <string>(1)?()
(Pdb)

在版本3.3中进行了更改:通过readline模块的制表符补全可用于命令和命令自变量,例如,将当前的全局名和本地名作为p命令的自变量提供。

pdb.py 也可以作为脚本调用以调试其他脚本。例如:

python3 -m pdb myscript.py

当作为脚本调用时,如果要调试的程序异常退出,pdb将自动进入事后调试。在事后调试之后(或在程序正常退出之后),pdb将重新启动程序。自动重启会保留pdb的状态(例如断点),并且在大多数情况下比在程序退出时退出调试器更为有用。

3.2版中的新功能:pdb.py现在接受一个-c选项,该选项可以像在.pdbrc文件中给出的那样执行命令,请参阅下文调试器命令。

版本3.7中的新增功能:pdb.py现在接受与-m模块执行方式类似的选项 。与脚本一样,调试器将在模块第一行之前暂停执行。python3 -m

从正在运行的程序进入调试器的典型用法是插入

import pdb; pdb.set_trace()

在您想进入调试器的位置。然后,您可以单步执行此语句之后的代码,并使用该continue命令在没有调试器的情况下继续运行。

3.7版的新功能:breakpoint()当使用默认值调用内置函数时,它可以代替。import pdb; pdb.set_trace()

检查崩溃程序的典型用法是:

>>>
>>> import pdb
>>> import mymodule
>>> mymodule.test()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "./mymodule.py", line 4, in test
    test2()
  File 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值