有趣生活

当前位置:首页>科技>如何用pdb数据库超详细讲解如何使用

如何用pdb数据库超详细讲解如何使用

发布时间:2026-07-25阅读(0)

导读PyCharm的图形化界面虽然好用,但是在某些场景中,是无法使用的。而python本身已经给我们提供了一个调试神器--pdb,可能你还不知道它,为了讲解这个....

PyCharm 的图形化界面虽然好用,但是在某些场景中,是无法使用的。而 python 本身已经给我们提供了一个调试神器 -- pdb,可能你还不知道它,为了讲解这个神器,我写了这篇文章来帮助你轻松的理解它。

1. 准备文件

在调试之前先将这两个文件准备好(做为演示用),并放在同级目录中。

utils.py

def sum(mylist): result = 0 for item in mylist: result = item return result

pdb_demo.py

import utilsdef myfunc(mylist): result = utils.sum(mylist) print(result)if __name__ == __main__: print("----start----") myfunc([1,2,3,4]) print("----end-----")

2. 进入调试模式

主要有两种方法

做为脚本调用,方法很简单,就像正常执行python脚本一样,只是多加了-m pdb

ptyhon -m pdb pdb_demo.py

使用这个方式进入调试模式,会在脚本的第一行开始单步调试。

对于单文件的脚本并没有什么问题,如果是一个大型的项目,项目里有很多的文件,使用这种方式只能大大降低我们的效率。

一般情况下,都会直接在你需要的地方打一个断点,那如何打呢?

只需在你想要打断点的地方加上这两行。

import pdbpdb.set_trace()

然后执行时,也不需要再指定-m pdb了,直接python pdb_demo.py ,就会直接在这个地方暂停。

3. 调试指令

熟悉 Pycharm 的人都知道,我们执行下一步,执行到下一个断点是

同样的,pdb 也需要你更多记这样的命令。

当你看到pdb模式的标识符 (Pdb)时,就可以输入这样的命令。

我在这里将这些指令按使用频度分为三个等级。

最常用

指令英文解释
nNext下一步
llist列出当前断点处源码
pprint打印变量
sstep into执行当前行,可以进入函数
rreturn运行完当前函数,返回结果
ccontinue执行到下一断点或者结束
bbreak设置断点
qquit退出程序

有时使用

指令英文解释
aargs列出当前函数的参数
pppprint一种可视化更好的打印
jjump跳到指定行
clclear清除断点
wwhere打印当前堆栈
uup执行跳转到当前堆栈的上一层
untuntil行数递增执行(忽略循环和函数)
lllonglist列出更多的源码
run/restartrun重新启动 debug(-m pdb)

几乎不用

指令英文解释
tbreaktemporary break临时断点
disable停用断点
enable启用断点
alias设置别名
unalias删除别名
whatis打印对象类型
ignore设置忽略的断点
source列出给定对象的源码

其上全部是我翻译自官方文档,原文在这里:https://docs.python.org/3/library/pdb.html

其实你大可不必死记这些命令,忘记的时候,只要敲入help并回车,就可以看所有的指令了。

4. 开始调试

这里就几个最常用的指定,来演示一遍。

这个调试过程,我加了些注释,你应该能够很轻易地理解这种调试方式。

今天pdb的调试内容大概就是这些,你学会了吗?

看到上面截图的时间了吧?是的,又是一个深夜写的文章。希望对你会有所帮助。

文末福利

本人原创的 《PyCharm 中文指南》一书前段时间一经发布,就火爆了整个 Python 圈,发布仅一天的时间,下载量就突破了 1000 ,并且在当天就在 Github 上就收获了数百的 star,截至目前,下载量已经破万。

这本书一共将近 200 页内含大量的图解制作之精良,值得每个 Python 工程师 人手一份。

为方便你下载,我将这本书上传到 百度网盘上了,点赞转发 本篇文章后可自行获取。

链接:https:///s/1-NzATHFtaTV1MQzek70iUQ密码:mft3

Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图