python调试debug—pdb(ipdb)

      ipdb 之于 pdb,就像 ipython 之于 python,实现的功能相同,但 ipdb 具有语法高亮、 tab 补全、更友好的堆栈信息等优势。

      pdb 是 Python 的标准库,无需安装直接使用,ipdb 为第三方库,需要使用 pip 安装后使用。

----------------------------------------------------------

pdb调试是需要在源程序里添加一句

    pdb.set_trace()

就相当于是在这个位置打一个断点

import pdb
a = "a string"
b= "b string"
pdb.set_trace()
print("next step")

运行之后

之后就有点像gdb的操作了

-> 指的是下一行要执行的语句

也可以

python -m ipdb filename.py

pdb常用命令

  • q  退出
  • enter 重复上一个命令
  • 设置断点 b后面跟行号

            b后什么都不跟是显示现有的断点

  • 取消断点    clear 断点标号

          注意不是断点行号,是标号,断点标号可以用b命令查看

  • j  跳转到指定行      
       j 10 #运行到地10行,jump的首字母
  • 只用 b 后面不跟行号就是列出当前所有断点,及其状态

l显示代码

当用l显示了附近代码之后,再用l的话,就会显示下面一段的代码了,而我们当前附近的代码就看不到了,怎么办呢

就可以指定行号显示

l 10,20

显示10-20行的代码

返回上层堆栈的操作

w:(where)打印当前执行堆栈
d:(down)执行跳转到在当前堆栈的深一层(个人没觉得有什么用处)
u:(up)执行跳转到当前堆栈的上一层

up和down只能够查看堆栈的上下层信息,但是并不会改变程序执行的位置,程序执行到哪里了并不会改变, 再执行next的时候仍然会在原来那个位置往下执行

执行w是会这样,当前在那个堆栈会有箭头指向

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值