iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python调试模块ipdb详解
  • 287
分享到

python调试模块ipdb详解

python调试ipdbpython调试模块ipdb 2023-03-19 17:03:36 287人浏览 八月长安

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

摘要

目录1. 调试python1.1 使用ipdb1.2 常用命令1. 调试Python ipdb是用来python中用以交互式debug的模块,可以直接利用pip安装; 其功能类似于P

1. 调试Python

ipdb是用来python中用以交互式debug的模块,可以直接利用pip安装;

其功能类似于PyCharm中 python控制台,
而使用ipdb 的优点,便是直接在代码中调试,
避免了在python控制台,或者重新设置一些简单变量。

在这里插入图片描述

pip install ipdb

1.1 使用ipdb

当程序运行到ipdb.set_trace()的地方会自动进入debug模式。

for i in range(5):
    print(i)
    ipdb.set_trace()

1.2 常用命令

n→ \to→next
ENTER→ \to→重复上次命令
q→ \to→退出
p<变量>→ \to→打印变量
c→ \to→继续
l→ \to→查找当前位于哪里
s→ \to→进入子程序
r→ \to→运行直到子程序结束
————————————————

命令式
上面的方法很方便,但是也有不灵活的缺点。对于一段比较棘手的代码,我们可能需要按步执行,边运行边跟踪代码流并进行调试,这时候使用交互式的命令式调试方法更加有效。启动IPDB调试环境的方法也很简单:

python -m ipdb your_code.py
常用命令
IPDB调试环境提供的常见命令有:

帮助
使用h即可调出IPDB的帮助。可以使用help command的方法查询特定命令的具体用法。

下一条语句
使用n(next)执行下一条语句。注意一个函数调用也是一个语句。如何能够实现类似“进入函数内部”的功能呢?

进入函数内部
使用s(step into)进入函数调用的内部。

打断点
使用b line_number(break)的方式给指定的行号位置加上断点。使用b file_name:line_number的方法给指定的文件(还没执行到的代码可能在外部文件中)中指定行号位置打上断点。

另外,打断点还支持指定条件下进入,可以查询帮助文档。

一直执行直到遇到下一个断点
使用c(continue)执行代码直到遇到某个断点或程序执行完毕。

一直执行直到返回
使用r(return)执行代码直到当前所在的这个函数返回。

跳过某段代码
使用j line_number(jump)可以跳过某段代码,直接执行指定行号所在的代码。

更多上下文
在IPDB调试环境中,默认只显示当前执行的代码行,以及其上下各一行的代码。如果想要看到更多的上下文代码,可以使用l first[, second](list)命令。

其中first指示向上最多显示的行号,second指示向下最多显示的行号(可以省略)。当second小于first时,second指的是从first开始的向下的行数(相对值vs绝对值)。

根据SO上的这个问题,你还可以修改IPDB的源码,一劳永逸地改变上下文的行数。

我在哪里
调试兴起,可能你会忘了自己目前所在的行号。例如在打印了若干变量值后,屏幕完全被这些值占据。使用w或者where可以打印出目前所在的行号位置以及上下文信息。

这是啥
我们可以使用whatis variable_name的方法,查看变量的类别(感觉有点鸡肋,用type也可以办到)。

列出当前函数的全部参数
当你身处一个函数内部的时候,可以使用a(argument)打印出传入函数的所有参数的值。

打印
使用p(print)和pp(pretty print)可以打印表达式的值。

清除断点
使用cl或者clear file:line_number清除断点。如果没有参数,则清除所有断点。

再来一次
使用restart重新启动调试器,断点等信息都会保留。restart实际是run的别名,使用run args的方式传入参数。

退出
使用q退出调试,并清除所有信息。

当然,这并不是IPDB的全部。其他的命令还请参照帮助文档。文档在手,天下我有!

到此这篇关于python调试模块ipdb详解的文章就介绍到这了,更多相关python调试ipdb内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python调试模块ipdb详解

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python调试模块ipdb详解
    目录1. 调试python1.1 使用ipdb1.2 常用命令1. 调试python ipdb是用来python中用以交互式debug的模块,可以直接利用pip安装; 其功能类似于p...
    99+
    2023-03-19
    python调试ipdb python调试模块ipdb
  • python调试模块ipdb怎么使用
    1. 调试pythonipdb是用来python中用以交互式debug的模块,可以直接利用pip安装;其功能类似于pycharm中 python控制台,而使用ipdb 的优点,便是直接在代码中调试,避免了在python控制台,或者重新设置一...
    99+
    2023-05-14
    Python
  • 用 ipdb 调试 Python 程序
    ==> 安装  pip install ipdb==> 使用    ---> python -m ipdb xxx.py  程序内部: from ipdb import set_trace set_trace()==>...
    99+
    2023-01-31
    程序 ipdb Python
  • #6 ipdb模块源代码解读
    前言 好久不见,大家最近可好。通过前几节的学习,相信你已经掌握了面向对象的大量知识,但是光知道是不够的,需要自己多写、多看,学一门语言无非不过这两种秘诀嘛。因此本篇博文带着大家剖析一次源代码,剖析对象为代码调试模块:ipdb。为什么选择这...
    99+
    2023-01-30
    源代码 模块 ipdb
  • Python中logging日志模块代码调试过程详解
    目录一、日志层级二、创建模块三、使用日志的优点大家好,为了进行调试和错误跟踪,人们在整个代码库中广泛使用日志,今天来看看如何在代码中定义日志,并探讨日志的权限。 一、日志层级 在开始...
    99+
    2023-05-18
    Python logging日志模块 Python 日志模块代码调试
  • 如何模块调试golang
    Golang是一种强类型语言,它是一种编译执行语言,这意味着用户需要编译代码才能执行它。在编写高质量的软件时,调试代码非常重要。当代码中的bug被发现时,它可以导致程序失败或产生意外结果。本文将介绍如何在Golang中进行模块调试。使用GD...
    99+
    2023-05-15
  • python datetime模块详解
    目录1. 获取当前时间2. 时间间隔 timedelta3. datetime 转 字符串 strftime()4. 字符串 转 datetime对象 datetime.strpti...
    99+
    2024-04-02
  • python sys模块详解
      sys.argv           命令行参数List,第一个元素是程序本身路径 sys.modules.keys() 返回所有已经导入的模块列表 sys.exc_info()     获取当前正在处理的异...
    99+
    2023-01-31
    详解 模块 python
  • Python re模块详解
    今天学习测试了一下Python中的正则表达式的模块用法。初学 Python ,对 Python 的文字处理能力有很深的印象,除了 str 对象自带的一些方法外,就是正则表达式这个强大的模块了。但是对于初学者来说,要用好这个功能还是有点难度,...
    99+
    2023-01-31
    详解 模块 Python
  • python requests模块详解
    requests是python的一个HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests而不用urllib2呢?官方文档中是这样说明的: python的标准库urllib2提供了大部分需要的HTTP功能,但是A...
    99+
    2023-01-31
    详解 模块 python
  • python—requests模块详解
    一、前言 1、requests简介 requests是一个很实用的Python HTTP客户端库,爬虫和测试服务器响应数据时经常会用到,它是python语言的第三方的库,专门用于发送HTTP请求,使用...
    99+
    2023-09-04
    python 开发语言 requests 网络爬虫
  • python—xlwt模块详解
    一、前言 xlwt模块是python中专门用于写入Excel的拓展模块,可以实现创建表单、写入指定单元格、指定单元格样式等人工实现的功能,一句话就是人使用excel实现的功能,这个扩展包都可以实现。 ...
    99+
    2023-09-04
    python excel 自动化办公 xlwt
  • Python详解之调试:pdb
    如果使用过微软技术的朋友应该体会过微软的Visual Studio系列IDE给debug程序带来的方便,换了个工作就没有Visual Studio了,对于我这种从未在非GUI环境下调试过程序的人来说实在有点不爽,今天花了点时间看了一下Py...
    99+
    2023-01-31
    详解 Python pdb
  • python的os模块详解
            本章介绍python自带模块os,os为操作系统 operating system 的简写,意为python与电脑的交互。主要学习的函数有 os.getcwd()、os.chdir()、os.path.basename()...
    99+
    2023-10-24
    python
  • Python之re模块详解
    目录Python——re模块 简介预定义字符特殊字符反斜杠问题匹配方法总结Python——re模块  简介 定义:re模块称为正则表达式; 作用:创建一个"规则表...
    99+
    2024-04-02
  • python常用模块详解
    目录一、模块概述二、模块内容三、模块导入的原理四、模块导入的方法五、random模块 六、time模块(1)python表示时间的三种格式(2)常用方法:(3)时间元组、时...
    99+
    2024-04-02
  • Python的psutil模块详解
    目录一、psutil模块:1.psutil介绍2.安装psutil模块: 二、.获取系统基本信息的使用:1.CPU信息2.内存信息 3.磁盘信息5.其他系统信息:...
    99+
    2023-05-18
    Python 模块 Python psutil模块
  • Python中BeautifulSoup模块详解
    目录前言安装库导入库解析文档示例提取数据示例CSS选择器实例小项目总结前言     BeautifulSoup是主要以解析web网页的Python模块,...
    99+
    2024-04-02
  • Python flask-script 模块详解
    目录1 作用2 安装3 所有要运行的命令都放在 manager.py 中4 三种方式 创建命令4.1 方式一 创建 Command子类4.2 方式二 使用装饰器 @manager.c...
    99+
    2024-04-02
  • Python的io模块详解
    Python的io模块提供了多个流式处理接口,具体的处理函数实现位于_pyio.py模块中。 在_io.py模块中,提供了唯一的模块方法open(name, mode=None, buffering=None),但是没有read()方法。...
    99+
    2023-01-31
    详解 模块 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作