python调试模块ipdb
创始人
2024-06-01 15:20:40
0

1. 调试python

ipdb是用来python中用以交互式debug的模块,可以直接利用pip安装;

其功能类似于pycharm中 python控制台,
而使用ipdb 的优点,便是直接在代码中调试,
避免了在python控制台,或者重新设置一些简单变量。
在这里插入图片描述

pip install ipdb

1.1 使用ipdb

当程序运行到ipdb.set_trace()的地方会自动进入debug模式。

for i in range(5):print(i)ipdb.set_trace()

1.2 常用命令


n→ \to→next
ENTER→ \to→重复上次命令
q→ \to→退出
p<变量>→ \to→打印变量
c→ \to→继续
l→ \to→查找当前位于哪里
s→ \to→进入子程序
r→ \to→运行直到子程序结束
————————————————

命令式
上面的方法很方便,但是也有不灵活的缺点。对于一段比较棘手的代码,我们可能需要按步执行,边运行边跟踪代码流并进行调试,这时候使用交互式的命令式调试方法更加有效。启动IPDB调试环境的方法也很简单:python -m ipdb your_code.py
常用命令
IPDB调试环境提供的常见命令有:帮助
使用h即可调出IPDB的帮助。可以使用help command的方法查询特定命令的具体用法。下一条语句
使用n(next)执行下一条语句。注意一个函数调用也是一个语句。如何能够实现类似“进入函数内部”的功能呢?进入函数内部
使用s(step into)进入函数调用的内部。打断点
使用b line_number(break)的方式给指定的行号位置加上断点。使用b file_name:line_number的方法给指定的文件(还没执行到的代码可能在外部文件中)中指定行号位置打上断点。另外,打断点还支持指定条件下进入,可以查询帮助文档。一直执行直到遇到下一个断点
使用c(continue)执行代码直到遇到某个断点或程序执行完毕。一直执行直到返回
使用r(return)执行代码直到当前所在的这个函数返回。跳过某段代码
使用j line_number(jump)可以跳过某段代码,直接执行指定行号所在的代码。更多上下文
在IPDB调试环境中,默认只显示当前执行的代码行,以及其上下各一行的代码。如果想要看到更多的上下文代码,可以使用l first[, second](list)命令。其中first指示向上最多显示的行号,second指示向下最多显示的行号(可以省略)。当second小于first时,second指的是从first开始的向下的行数(相对值vs绝对值)。根据SO上的这个问题,你还可以修改IPDB的源码,一劳永逸地改变上下文的行数。我在哪里
调试兴起,可能你会忘了自己目前所在的行号。例如在打印了若干变量值后,屏幕完全被这些值占据。使用w或者where可以打印出目前所在的行号位置以及上下文信息。这是啥
我们可以使用whatis variable_name的方法,查看变量的类别(感觉有点鸡肋,用type也可以办到)。列出当前函数的全部参数
当你身处一个函数内部的时候,可以使用a(argument)打印出传入函数的所有参数的值。打印
使用p(print)和pp(pretty print)可以打印表达式的值。清除断点
使用cl或者clear file:line_number清除断点。如果没有参数,则清除所有断点。再来一次
使用restart重新启动调试器,断点等信息都会保留。restart实际是run的别名,使用run args的方式传入参数。退出
使用q退出调试,并清除所有信息。当然,这并不是IPDB的全部。其他的命令还请参照帮助文档。文档在手,天下我有!

相关内容

热门资讯

安卓系统审核需要多久,约需5分... 你有没有想过,当你辛辛苦苦把一款安卓应用提交到应用商店时,心里是不是也在默默祈祷:希望它审核得快一点...
安装安卓电脑系统,安装与使用指... 你有没有想过,把安卓系统装在你的电脑上,是不是就像给电脑穿上了时尚的潮流外套呢?想象你那台老电脑瞬间...
ios系统比安卓好用,引领卓越... 你有没有发现,身边的朋友都在用苹果手机?没错,就是那个标志性的苹果logo,那个让无数人为之疯狂的i...
农田模拟系统下载安卓版,农业科... 你有没有想过,在手机上也能体验一把当农场主的乐趣?没错,就是那种种地、收割、养殖的快感!今天,就让我...
苹果安卓系统怎么删除,苹果与安... 手机里的应用越来越多,是不是感觉内存不够用了?别急,今天就来教你怎么轻松删除苹果和安卓系统上的应用,...
安卓手机新系统桌面,桌面功能革... 你有没有发现,最近你的安卓手机好像换了个新面貌?没错,就是那个神秘的安卓新系统桌面!今天,就让我带你...
安卓手机哪里弄定位系统,从源头... 你有没有想过,你的安卓手机是怎么知道你在哪儿的呢?是不是觉得这个定位系统很神奇,想知道它是怎么运作的...
如何看安卓系统分区,安卓系统分... 亲爱的读者,你是否曾好奇过安卓系统的分区究竟是个啥?别急,今天我就带你一探究竟,揭开安卓系统分区的神...
智能报警系统安卓版,一键触达 你知道吗?现在科技的发展真是让人惊叹不已!今天,我要给你介绍一个超级实用的智能报警系统安卓版,它可是...
安卓最新系统推荐 你有没有发现,手机更新换代的速度简直就像坐上了火箭呢?这不,安卓的最新系统又来啦!今天,就让我带你一...
安卓最炫酷系统,颠覆视觉体验的... 亲爱的手机控们,你是否厌倦了千篇一律的安卓系统界面?想要给你的手机换换口味,让它焕发出不一样的光彩?...
车载导航安卓系统8.1,智能出... 你有没有发现,现在的车载导航系统越来越智能了?尤其是那些搭载了安卓系统8.1的车载导航,简直就像是个...
安卓系统怎么删除目录 手机里的安卓系统里,有时候目录多了,看着乱糟糟的,是不是也想清理一下呢?别急,今天就来教你怎么轻松删...
安卓上安装电脑系统,探索安装电... 你是不是也和我一样,对安卓手机上的电脑系统充满了好奇?想象在小小的手机屏幕上,竟然能运行起Windo...
安卓开发获取系统时间,实现个性... 你有没有想过,你的安卓手机里那些看似普通的功能,其实背后有着复杂的科技支撑呢?比如,你有没有好奇过,...
安卓怎么登录王者ios系统,安... 亲爱的手机控们,你是否曾在某个午后,看着安卓手机上的王者峡谷,心生向往,想要在iOS系统上大展身手?...
联想yoga平板安卓系统恢复,... 你有没有遇到过这种情况:联想Yoga平板的安卓系统突然不按套路出牌,各种卡顿、死机,让你抓狂不已?别...
安卓开发版系统官网,功能更新与... 你有没有想过,你的安卓手机里那些神奇的软件和功能,其实都是基于一个强大的系统——安卓开发版系统呢?今...
诺基亚安卓原生系统刷机,重拾纯... 你有没有想过,你的诺基亚手机其实可以焕发第二春呢?没错,就是那个曾经风靡一时的诺基亚,现在也能玩转安...
n3450运行安卓系统,基于n... 你有没有想过,一台普通的电脑,竟然能运行安卓系统?没错,就是那个我们手机上常用的操作系统。今天,就让...