前言:
此时我们对“netpdb文件调试”大约比较看重,朋友们都需要了解一些“netpdb文件调试”的相关资讯。那么小编在网摘上汇集了一些关于“netpdb文件调试””的相关文章,希望小伙伴们能喜欢,我们一起来了解一下吧!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列出给定对象的源码
其上全部是我翻译自官方文档,原文在这里:
其实你大可不必死记这些命令,忘记的时候,只要敲入help并回车,就可以看所有的指令了。
4. 开始调试
这里就几个最常用的指定,来演示一遍。
这个调试过程,我加了些注释,你应该能够很轻易地理解这种调试方式。
今天pdb的调试内容大概就是这些,你学会了吗?
看到上面截图的时间了吧?是的,又是一个深夜写的文章。希望对你会有所帮助。
文末福利
本人原创的 《PyCharm 中文指南》一书前段时间一经发布,就火爆了整个 Python 圈,发布仅一天的时间,下载量就突破了 1000 ,并且在当天就在 Github 上就收获了数百的 star,截至目前,下载量已经破万。
这本书一共将近 200 页,内含大量的图解,制作之精良,值得每个 Python 工程师 人手一份。
为方便你下载,我将这本书上传到 百度网盘上了,点赞 + 转发 本篇文章后可自行获取。
链接:密码:mft3
标签: #netpdb文件调试