返回顶部
首页 > 资讯 > 后端开发 > Python >总结用Pdb库调试Python的方式及常用的命令
  • 361
分享到

总结用Pdb库调试Python的方式及常用的命令

命令常用方式 2022-06-04 18:06:47 361人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

用Pdb调试有多种方式 使用 Pdb调试 python的程序的方式主要是下面的三种!下面逐一介绍 命令行加-m参数 命令行启动目标程序,加上-m参数,这样调用 testPdb.py的话断点就是程序执行的

用Pdb调试有多种方式

使用 Pdb调试 python的程序的方式主要是下面的三种!下面逐一介绍

命令行加-m参数

命令行启动目标程序,加上-m参数,这样调用 testPdb.py的话断点就是程序执行的第一行之前

本文接下来重点讲到的实例展示就是使用这种方式进行调试的!


Python -m pdb testPdb.py

在python交互环境调试


>>> import pdb
>>> import testPdb
>>> 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

这是下面被调试的主模块的代码


#!/usr/bin/python
# -*- coding: utf-8 -*-

def sub(a, b):
 return a - b

if __name__ == "__main__":

 print ''
 import testFun
 i = 0
 a = 1
 while(i < 100):
  a = testFun.add(a, 1)
  i = i + 1
 print "累加结果:", a
 print ""

 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 ""

总结常用的命令

基础命令

h(elp)命令:会打印当前版本 Pdb可用的命令,如果要查询某个命令,可输入 h [command] ,例如 h l 查看 list命令

l(ist)命令:可以列出当前将要运行的代码块

断点管理

b(reak):设置断点

比如 b 12 就是在当前脚本的第 9行加上断点

比如 b sub 就是在当前脚本的 sub函数定义处加断点

除了可以在当前的脚本中添加断点之外,还可以在当前脚本对其他脚本下断点,以上面用到的代码为例 b testFun.add 就可以实现在 testFun.py脚本中的 add函数处加断点

如果只用 b 就会显示现有的全部断点

condition bpnumber [condition]:设置条件断点,比如 condition 2 a==0 ,就是在第二个断点出加条件 “a==0”

cl(ear):删除断点,如果后面带有参数,就是清楚指定的断点;如果不带参数就是清除所有的断点

disable/enable:禁用/激活断点

程序逻辑控制

下面展示的几个命令,需要知道对应的脚本的代码和行号,所以这里先截图展示下面测试需要用到的前几行代码

c(ont(inue)),让程序正常运行,直到遇到下一个断点

n(ext),让程序运行下一行,如果当前语句有一个函数调用,用n是不会进入被调用的函数体中的

下图中展示的,当对脚本断点调试到 testFun.add(a, 1)时,继续执行n,并不会进入 testFun.add(a, 1)的函数内部

s(tep),跟n相似,但如果当前有一个函数调用,那么 s会进入被调用的函数体中

下图中展示的,当对脚本断点调试到 testFun.add(a, 1)时,继续执行s,会进入 testFun.add(a, 1)对应的函数定义内部,虽然 testFun.add不是本脚本中定义的函数

j(ump),让程序跳转到指定的行数

假如当前所在行是 10,注意:假如执行了 j 20 之后,那么相当于程序直接跳到 20行,中间的 11~19行其实就直接跳过去根本没有被执行到,所以如果这段代码中有变量的声明或对象的初始化需要在 20行及之后被用到,那么等到用到的时候就可能导致报错!

打印重要信息

a(rgs),打印当前函数的参数。比如下图就是展示断点进入到 testFun.add内部之后,打印 testFun.add的参数

p,打印某个变量

退出调试

q,直接退出调试;或者使用 Ctrl+D的方式退出

总结

上面展示的使用 Pdb调试的过程其实是很简单的,文章中主要通过截图展示运行的效果。如果单纯的看一遍文章,不出意外,会很没有头绪,甚至感觉截图中的命令、输出乱七八糟,但是如果亲自动手跟着走一遍流程,花不了一小时,但是效果绝对极佳!多说一句,Python的调试器是 Pdb,可以对应学习 linux下 C的调试器 gdb,以上就是本文全部内容,希望对大家学习与工作能有所帮助。

本文参考的相关文章如下:

《指针和字符串和字符串常量、用gdb来获取非法内存中的内容》

《Linux gdb调试器用法全面解析》

《用PDB库调试Python程序》

--结束END--

本文标题: 总结用Pdb库调试Python的方式及常用的命令

本文链接: https://lsjlt.com/news/14351.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 总结用Pdb库调试Python的方式及常用的命令
    用Pdb调试有多种方式 使用 Pdb调试 Python的程序的方式主要是下面的三种!下面逐一介绍 命令行加-m参数 命令行启动目标程序,加上-m参数,这样调用 testPdb.py的话断点就是程序执行的...
    99+
    2022-06-04
    命令 常用 方式
  • python pdb调试器及使用方法
    目录pdb 使用方法1. 常用命令a. 断点设置b. 运行c. 查看d. 其他2. 使用方法一3. 使用方法二pdb 使用方法 1. 常用命令 a. 断点设置 b(reak) [([...
    99+
    2024-04-02
  • 常用的MySQL命令总结
    本篇内容主要讲解“常用的MySQL命令总结”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“常用的MySQL命令总结”吧!启动:net start mySql;  ...
    99+
    2024-04-02
  • goldengate的常用命令总结
    这篇文章主要介绍“goldengate的常用命令总结”,在日常操作中,相信很多人在goldengate的常用命令总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”golden...
    99+
    2024-04-02
  • MYSQL的常用命令总结
    本篇内容主要讲解“MYSQL的常用命令总结”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MYSQL的常用命令总结”吧! MYSQL常用命令 1.导出整个数据...
    99+
    2024-04-02
  • solr常用的命令总结
    这篇文章主要介绍“solr常用的命令总结”,在日常操作中,相信很多人在solr常用的命令总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”solr常用的命令总结”的疑惑有所帮...
    99+
    2024-04-02
  • Linux的常用命令总结
    这篇文章主要讲解了“Linux的常用命令总结”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux的常用命令总结”吧!ls [选项] [目录名 | 列出相关目录下的所有目录和文件-a&nb...
    99+
    2023-06-05
  • 总结inux常用的命令
    这篇文章主要讲解了“inux常用命令总结”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“inux常用命令总结”吧!linux文件中存在^M 使用shell命令tr可以实现去除,具体命令如下:代...
    99+
    2023-06-09
  • 常用的Python代码调试工具总结
    前言 我自己常用的简单Python代码调试工具是IDLE和Sublime3,IDLE很少使用了,基本上用Sublime3稍微多一些,Sublime3因为简单方便更直观。(VSCode...
    99+
    2024-04-02
  • Mysql常用基准测试命令总结
    mysqlslap 常用参数说明 –auto-generate-sql 由系统自动生成sql脚本进行测试 –auto-generate-sql-add-autoincrement 在生成的表中增...
    99+
    2024-04-02
  • Mysql数据库常用命令总结
    本篇内容介绍了“Mysql数据库常用命令总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  启动Mysq...
    99+
    2024-04-02
  • CentOS下常用的命令总结
    本篇内容介绍了“CentOS下常用的命令总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.与输入输出相关的命令  1)回显命令...
    99+
    2023-06-10
  • linux中的常用命令总结
    本篇内容主要讲解“linux中的常用命令总结”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux中的常用命令总结”吧!man 察看命令详解,只要觉得哪个命令不清楚,man它就可以了.&nbs...
    99+
    2023-06-13
  • 十个Python中常用的pip命令总结
    目录安装如何使用升级安装某个版本的包卸载或者是更新包查看某个包的信息查看需要被升级的包查看兼容问题指定国内源来安装下载包但是不安装批量安装软件包小编相信对于大多数熟悉Python的人...
    99+
    2024-04-02
  • Linux下常用的shell命令总结
    这篇文章主要介绍“Linux下常用的shell命令总结”,在日常操作中,相信很多人在Linux下常用的shell命令总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux下常用的shell命令总结”的疑...
    99+
    2023-06-16
  • 【总结】一些常用的Git命令
    Git是一个非常流行的版本控制系统,它的使用在软件开发中已经成为行业标准,笔者在这里将会为大家介绍一些常用的Git命令。一、创建一个新的仓库使用以下命令可以创建一个新的Git仓库:git init这个命令会在当前目录下创建一个新的.git目...
    99+
    2023-10-22
  • Redis | Redis常用命令及示例总结(API)
    目录前言1. Key(键)1.1 键的基本操作功能del move sort rename renamenx migrate1.2 键的获取功能type exists randomkey keys1.3 生存时间的功能expire pex...
    99+
    2018-03-01
    Redis | Redis常用命令及示例总结(API)
  • MySQL数据库管理常用命令总结
    这篇文章主要讲解了“MySQL数据库管理常用命令总结”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL数据库管理常用命令总结”吧!安装利用RPM包安装...
    99+
    2024-04-02
  • db2数据库常用操作命令总结
    本篇内容介绍了“db2数据库常用操作命令总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!本文详细汇总了D...
    99+
    2024-04-02
  • Linux shell常用的73条命令总结
    前言 使用Linux shell是一些程序员每天的基本工作,但我们经常会忘记一些有用的shell命令和技巧。当然,命令我能记住,但我不敢说能记得如何用它执行某个特定任务。需要注意一点的是,有些用法需要在你的...
    99+
    2022-06-04
    命令 常用 Linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作