加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

使用Pdb调试Python方法概括

发布时间:2022-07-02 17:24:14 所属栏目:PHP教程 来源:互联网
导读:用Pdb调试有多种方式 使用 Pdb调试 Python的程序的方式主要是下面的三种!下面逐一介绍 命令行加-m参数 命令行启动目标程序,加上-m参数,这样调用 testPdb.py的话断点就是程序执行的第一行之前 本文接下来重点讲到的实例展示就是使用这种方式进行调试的! p
  用Pdb调试有多种方式
 
  使用 Pdb调试 Python的程序的方式主要是下面的三种!下面逐一介绍
 
  命令行加-m参数
 
  命令行启动目标程序,加上-m参数,这样调用 testPdb.py的话断点就是程序执行的第一行之前
 
  本文接下来重点讲到的实例展示就是使用这种方式进行调试的!
 
   
  >>> pdb.run('testPdb.test()')
 
  代码中插入一段程序
 
  比较常用的,就是在程序中间插入一段程序,相对于在一般 IDE 里面打上断点然后启动 debug,不过这种方式是 hardcode的:
 
  if __name__ == "__main__":
    a = 1
    import pdb
    pdb.set_trace()
    b = 2
    c = a + b
    print(c)
  然后正常运行脚本: python testPdb.py 到了 pdb.set_trace()那里就会定下来,然后就可以看到调试的提示符 (Pdb)了
 
  针对上面的这段小程序的调试情况如下:
 
 
 
  准备测试程序:
 
  接下来使用上面介绍的第一种方式来调试 Python程序,以此来介绍 pdb常用的命令,不过在开始之前先要准备好测试的程序代码:
 
  testFun.py
 
  这是一个会被主模块调用的子模块,用于测试使用 Pdb调试的时候,是不是可以断点从主模块跟踪进入子模块(后续有说明)
 
  #!/usr/bin/python
  # -*- coding: utf-8 -*-
   
  def add(a, b):
      return a + b
  testPdb.py
  这是下面被调试的主模块的代码:
 
    
      for letter in 'Pdb':
          print "当前字母:", letter
      print ""
   
      fruits = ['banana', 'apple', 'mango']
      for fruit in fruits:
          print "当前水果:", fruit
      print ""
   
   
      ret = 0
      for num in range(10, 12):
          ret = sub(ret, num)
      print '循环结果:', ret
      print ""
   
      d = {'abc': 123, 123: "abc"}
      for (k,v) in d.items():
          print "当前键值对:", k, '-', v
      print ""
  总结常用的命令
   
  比如 b 12 就是在当前脚本的第 9行加上断点
 
  比如 b sub 就是在当前脚本的 sub函数定义处加断点
 
  除了可以在当前的脚本中添加断点之外,还可以在当前脚本对其他脚本下断点,以上面用到的代码为例 b testFun.add 就可以实现在 testFun.py脚本中的 add函数处加断点
 
  如果只用 b 就会显示现有的全部断点
 
  condition bpnumber [condition]:设置条件断点,比如 condition 2 a==0 ,就是在第二个断点出加条件 “a==0”

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读