ipdb python调试工具

在三维点云中,各种矩阵的运算及输出需要多次调试才能够理解和更改,原来一直使用print大法,这样会导致手忙脚乱,而且很烦。现在有一个ipdb工具可以进行方便的调试,同时也不会显得特别蠢。。。。。

python 提供了一个默认的 debugger:pdb,而 ipdb 则是 pdb 的增强版,提供了补全、语法高亮等功能,类似于 ipython 与 python 默认的交互终端的关系,通过 pip install ipdb 即可安装 ipdb。

github地址 :https://github.com/gotcha/ipdb

pdb的官方网址 https://docs.python.org/3.5/library/pdb.html

参考网址 https://wulc.me/2018/12/21/ipdb%20%E4%BD%BF%E7%94%A8%E5%B0%8F%E8%AE%B0/

使用方式

ipdb 的使用方法一般有两种:集成到源代码或通过命令交互

集成到源代码方式

集成到源代码可以直接在代码指定位置插入断点。

官方实例如下所示:

import ipdb
ipdb.set_trace()
ipdb.set_trace(context=5)  # will show five lines of code# instead of the default three lines# or you can set it via IPDB_CONTEXT_SIZE env variable# or setup.cfg file
ipdb.pm()
ipdb.run('x[0] = 3')
result = ipdb.runcall(function, arg0, arg1, kwarg='foo')
result = ipdb.runeval('f(1,2) - 3')

一个简单的例子如下所示

import ipdb
num=12
ipdb.set_trace()

其中,在执行完num=12 命令后,会暂停进入ipython环境调试

常用命令

  • ENTER(重复上次命令)
  • c(继续)
  • l(查找当前位于哪里)
  • s(进入子程序)
  • r(运行直到子程序结束)
  • !<python 命令>
  • h(帮助)
  • a(rgs) 打印当前函数的参数
  • j(ump) 让程序跳转到指定的行数
  • l(ist) 可以列出当前将要运行的代码块
  • n(ext) 让程序运行下一行,如果当前语句有一个函数调用,用 n 是不会进入被调用的函数体中的
  • p(rint) 最有用的命令之一,打印某个变量
  • q(uit) 退出调试
  • r(eturn) 继续执行,直到函数体返回
  • s(tep) 跟 n 相似,但是如果当前有一个函数调用,那么 s 会进入被调用的函数体中

启动命令式

上面的方式虽然简单,但是存在着两个较为比较明显的问题:

  1. 插入的断点代码会污染原来的代码空间

  2. 每次插入断点都需要修改源码

因此,相比于上面的方式,交互式的命令式调试方法更加方便。启动命令式调试环境的方法也很简单:

python -m ipdb code.py

逐行执行

有两条命令可以进行逐行执行: s(step) 或 n(next), 两个命令的主要区别是:假如当前行调用了某个函数,s 会进入这个函数,n 则不会。因此,如果需要了解函数内部执行的细节,需要 s 命令进入函数内部进行 debug。

进入了函数之后,通过命令 a(argument) 可列出当前的函数的参数,通过 r(return)则可以直接执行至 return 语句。

忽略某段代码

使用 j line_number 可以忽略某段代码,下一步直接从 line_number 开始执行。

查看源码

通过命令 lll 可查看源码, ll 是查看整个源码文件, l 可指定需要查看的行数,默认是当前往后 11 行,也可指定具体的范围,如 l 2,5 是查看第 2-5 行的源码。

重启或退出 debugger

上面已经提到了重启 debugger 可通过 restartrun 命令,需要注意的是,**重启 debugger 后断点、debugger 的设置等是会保留的。**如果要一个全新的 debugger,可通过命令 qquitexit 退出 debugger 后进入。

ipdb python调试工具相关推荐

  1. python调试工具_您需要在2020年了解的所有python调试工具

    python调试工具 Debugging is an inevitable and often painful process when any programmer developing their ...

  2. python调试工具pdb_python脚本pdb调试工具使用

    pdb是linux的的python调试工具,它功能比较齐全,使用起来也很方便, 按一边运维工程师的发展来说,一般最早接触的是shell编程, 所以大多是在shell的基础上开始学习Python的,如果 ...

  3. Python调试工具pdb使用详解

    Python调试工具pdb使用详解 1 前言 2 参考文档 3 pdb简介 4 pdb使用命令行调试 4.1 举例代码 4.2 调试器命令 4.2.1 进入pdb调试模式 4.2.2 帮助指令 4.2 ...

  4. python debug工具_常用的 Python 调试工具,Python开发必读-乾颐堂

    以下是我做调试或分析时用过的工具的一个概览.如果你知道有更好的工具,请在评论中留言,可以不用很完整的介绍. 日志 没错,就是日志.再多强调在你的应用里保留足量的日志的重要性也不为过.你应当对重要的内容 ...

  5. emacs python debug_我常用的 Python 调试工具 - 博客 - 伯乐在线

    以下是我做调试或分析时用过的工具的一个概览.如果你知道有更好的工具,请在评论中留言,可以不用很完整的介绍. 日志 没错,就是日志.再多强调在你的应用里保留足量的日志的重要性也不为过.你应当对重要的内容 ...

  6. python 逐行调试工具_常用的 Python 调试工具,Python开发必读-乾颐堂

    以下是我做调试或分析时用过的工具的一个概览.如果你知道有更好的工具,请在评论中留言,可以不用很完整的介绍. 日志 没错,就是日志.再多强调在你的应用里保留足量的日志的重要性也不为过.你应当对重要的内容 ...

  7. python代码调试工具_我猜你需要这个Python调试工具

    一般情况下,在编写 Python 代码时,如果想弄清楚为什么 Python 代码没有按照预期执行的原因,比如你想知道哪些是正在运行,哪些没有运行,以及局部变量的值是什么...通常我们会使用包含断点和观 ...

  8. python在线运行调试-Python调试工具

    1. 日志 通过日志或者print来打印变量.必要时可以打印locals()和globals() 建议使用logging.debug()来代替print,这样到了正式环境,就可以统一删除这些日志. 2 ...

  9. ipdb python下的debug利器

    ipdb是一个IPython的python下debug神器,支持在代码中添加断点,进行单步调试,支持在调试过程中查看各种变量的值,新增修改断点,或跳过特定断点.以往进行python代码的调试都是通过p ...

最新文章

  1. 关于STM32像EPROM一样可以单字节写内部Flash的理解
  2. JS中[感叹号]function(){}()的理解
  3. [PowerShell]人人都值得学一点PowerShell实现自动化(2)有哪些可用的场景及方式?
  4. 【ECCV2020】接收论文列表part1
  5. android8版本怎么下载,华为安卓8.0系统正式版下载-华为安卓8.0系统体验版安卓版_飞翔下载...
  6. Ubuntu14.04安装mysql
  7. git flow命令
  8. HBase 安装配置及下载地址
  9. eclipse解决中文乱码
  10. Go将中文转换为拼音
  11. Deepin安装应用
  12. 安利几个实用且有趣的Excel实用技巧给你
  13. 基于VTK的PACS系统的开发 心路历程2
  14. Python画图之饼图
  15. 本地消息表(异步确保)
  16. 教你如何用计算机玩游戏,想要在电脑设备上玩手机游戏,教你如何使用tcgames软件进行操作...
  17. Mavicat连接mysql关闭防火墙_连接navicat的一些问题 主要是防火墙
  18. Android开发黑白灰模式和夜间模式设置
  19. FFMPEG SDK 开发介绍 -- Filter 篇
  20. Vue学习笔记(7)

热门文章

  1. CentOS搭建gitolite服务器
  2. electron-vue初始化项目到打包运行
  3. 魅族生活服务多机房方案
  4. excel排名次函数
  5. C#——快速使用Win32API的方法
  6. 马老师力荐:腾讯 SpringBoot 高阶笔记,限时开源
  7. SQLZOO 难题总结
  8. vue 动画 —— 滚动动画
  9. 北航软工-软件案例分析-IT问答平台
  10. SQL Server 2014 官方培训课件