请教有关PDB调试顺序错乱问题

本文探讨了在Python中使用pdb调试时,A.py调用B.py的Add函数时遇到的问题:PDB在返回后未能正确跳回A.py。作者分析了可能的原因,并提供了排查和修复方法,适合深入理解Python调试过程的开发者。
摘要由CSDN通过智能技术生成

项目场景:

总共有两个py文件,分别是A.py和B.py。在A.py中调用B.py中的Add函数,以打印两个数字相加结果。

  A.py:

import B

def Method1():
    print("This is Method1")
              
def main():

    a=1
    b=1
    c=1
    B.Add(a,b)
    c=1
    

if __name__ == '__main__':
    main()


  B.py


def Add(a,b): 
   result=a+b
   print(result)
   return result

问题描述:

  1. 通过python -m pdb A.py命令进入PDB的调试模型,如下图所示

  2. b B.py:3     (在B.py文件中的第三行打上断点),如下图所示
  3. 执行continue命令,PDB停留在B.py的第三行中,然后一直执行next,直到Add函数的return语句,如下图所示
  4. 再次执行next命令。按照正常顺序,pdb应该跳回A.py中的12行(c=1)。但是PDB跳回到A.py中main函数中,再次执行next便跳回到A.py的第一行(import B)


原因分析:

猜测可能是因为PDB在从B.py跳回去A.py时候,没找到原定位位置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值