python程序debug以及调式工具ipdb

       对于python程序的debug,python安装的时候一般有自带的pdb工具,pdb是专门用来调试python程序的工具,可以通过在命令行直接调用,方式为:python -m pdb script.py,其中script.py为要调试的脚本名称,运行命令后,便会进入pdb调试环境,然后用相应的pdb命令进行调试即可。或者也可以导入标准库pdb,在需要设置断点的地方写上pdb.set_trace()即可。

       python还有一个IPython下的调式工具ipdb,可以认为其是pdb的一个加强版,功能更完善,体验更佳,具有和pdb几乎一样的命令和接口;其也是很多python IDE内置的标准的python调试工具,比如anaconda自带的IDE。本文将简单介绍一下ipdb的用法和常用命令。

一、ipdb的用法

       对于有图形用户界面的IDE,如果其默认的debug工具就是ipdb,那么直接进行相应的debug操作就行,当然,不同的IDE进入debug的过程可能略有区别,读者自行查询一下即可;有时候,我们是直接在非图形用户界面下进行debug,比如在linux环境下,我们想直接利用ipdb进行debug的话,可以通过ipdb这个包来让程序进入ipdb环境。当然由于其不是标准库中的包,需要先进行安装,然后再程序中只需要导入这个包,并通过ipdb.set_trace()语句放在代码需要的地方,然后程序运行到这里就会自动进入ipdb环境,相当于设置了断点,在运行到断点的时候,程序会自动的进入ipdb环境,然后再利用相应的ipdb命令进行debug即可。

二、ipdb常用命令介绍

       进入ipdb环境后,可以通过help命令显示所有的ipdb命令。

对于每个命令,可以通过help comd的方式来查看命令comd的具体含义。下面对一些常用的命令做一些介绍:

b(reak): 设置断点,可以通过break linenum的方式在第linenum行设置一个断点,直接输入b回车会显示所有断点;

c(ontinue): 继续执行到下一个断点,如果没有断点,执行到程序结束;

cl(ear): 清除断点,通过cl linenum的方式清除指定行的断点,没有参数则清除所有断点;

j(ump): 通过j linenum命令,表示跳过中间的语句直接执行第linenum行;

l(l): 查看当前的代码;

longlist: 查看当前更多的代码块;

n(ext): 运行程序下一行(不会进入函数,和s(tep)做区分);

p(p): 通过p expression的方式打印显示某个表达式的结果;

q(uit): 退出ipdb环境;

s(tep): 和n类似,区别在于,s当运行到某一个函数的时候,其会进入这个函数中;

当进入这个函数,还有如下命令:

a(rgs): 显示函数的参数列表;

r(eturn): 执行直到函数返回为止。

最后还可以按回车表示重复上一次的ipdb命令。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值