ipdb python调试工具
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 会进入被调用的函数体中
启动命令式
上面的方式虽然简单,但是存在着两个较为比较明显的问题:
插入的断点代码会污染原来的代码空间
每次插入断点都需要修改源码
因此,相比于上面的方式,交互式的命令式调试方法更加方便。启动命令式调试环境的方法也很简单:
python -m ipdb code.py
逐行执行
有两条命令可以进行逐行执行: s
(step) 或 n
(next), 两个命令的主要区别是:假如当前行调用了某个函数,s
会进入这个函数,n
则不会。因此,如果需要了解函数内部执行的细节,需要 s
命令进入函数内部进行 debug。
进入了函数之后,通过命令 a
(argument) 可列出当前的函数的参数,通过 r
(return)则可以直接执行至 return 语句。
忽略某段代码
使用 j line_number
可以忽略某段代码,下一步直接从 line_number 开始执行。
查看源码
通过命令 l
或 ll
可查看源码, ll
是查看整个源码文件, l
可指定需要查看的行数,默认是当前往后 11 行,也可指定具体的范围,如 l 2,5
是查看第 2-5 行的源码。
重启或退出 debugger
上面已经提到了重启 debugger 可通过 restart
或 run
命令,需要注意的是,**重启 debugger 后断点、debugger 的设置等是会保留的。**如果要一个全新的 debugger,可通过命令 q
、quit
或 exit
退出 debugger 后进入。
ipdb python调试工具相关推荐
- python调试工具_您需要在2020年了解的所有python调试工具
python调试工具 Debugging is an inevitable and often painful process when any programmer developing their ...
- python调试工具pdb_python脚本pdb调试工具使用
pdb是linux的的python调试工具,它功能比较齐全,使用起来也很方便, 按一边运维工程师的发展来说,一般最早接触的是shell编程, 所以大多是在shell的基础上开始学习Python的,如果 ...
- Python调试工具pdb使用详解
Python调试工具pdb使用详解 1 前言 2 参考文档 3 pdb简介 4 pdb使用命令行调试 4.1 举例代码 4.2 调试器命令 4.2.1 进入pdb调试模式 4.2.2 帮助指令 4.2 ...
- python debug工具_常用的 Python 调试工具,Python开发必读-乾颐堂
以下是我做调试或分析时用过的工具的一个概览.如果你知道有更好的工具,请在评论中留言,可以不用很完整的介绍. 日志 没错,就是日志.再多强调在你的应用里保留足量的日志的重要性也不为过.你应当对重要的内容 ...
- emacs python debug_我常用的 Python 调试工具 - 博客 - 伯乐在线
以下是我做调试或分析时用过的工具的一个概览.如果你知道有更好的工具,请在评论中留言,可以不用很完整的介绍. 日志 没错,就是日志.再多强调在你的应用里保留足量的日志的重要性也不为过.你应当对重要的内容 ...
- python 逐行调试工具_常用的 Python 调试工具,Python开发必读-乾颐堂
以下是我做调试或分析时用过的工具的一个概览.如果你知道有更好的工具,请在评论中留言,可以不用很完整的介绍. 日志 没错,就是日志.再多强调在你的应用里保留足量的日志的重要性也不为过.你应当对重要的内容 ...
- python代码调试工具_我猜你需要这个Python调试工具
一般情况下,在编写 Python 代码时,如果想弄清楚为什么 Python 代码没有按照预期执行的原因,比如你想知道哪些是正在运行,哪些没有运行,以及局部变量的值是什么...通常我们会使用包含断点和观 ...
- python在线运行调试-Python调试工具
1. 日志 通过日志或者print来打印变量.必要时可以打印locals()和globals() 建议使用logging.debug()来代替print,这样到了正式环境,就可以统一删除这些日志. 2 ...
- ipdb python下的debug利器
ipdb是一个IPython的python下debug神器,支持在代码中添加断点,进行单步调试,支持在调试过程中查看各种变量的值,新增修改断点,或跳过特定断点.以往进行python代码的调试都是通过p ...
最新文章
- 关于STM32像EPROM一样可以单字节写内部Flash的理解
- JS中[感叹号]function(){}()的理解
- [PowerShell]人人都值得学一点PowerShell实现自动化(2)有哪些可用的场景及方式?
- 【ECCV2020】接收论文列表part1
- android8版本怎么下载,华为安卓8.0系统正式版下载-华为安卓8.0系统体验版安卓版_飞翔下载...
- Ubuntu14.04安装mysql
- git flow命令
- HBase 安装配置及下载地址
- eclipse解决中文乱码
- Go将中文转换为拼音
- Deepin安装应用
- 安利几个实用且有趣的Excel实用技巧给你
- 基于VTK的PACS系统的开发 心路历程2
- Python画图之饼图
- 本地消息表(异步确保)
- 教你如何用计算机玩游戏,想要在电脑设备上玩手机游戏,教你如何使用tcgames软件进行操作...
- Mavicat连接mysql关闭防火墙_连接navicat的一些问题 主要是防火墙
- Android开发黑白灰模式和夜间模式设置
- FFMPEG SDK 开发介绍 -- Filter 篇
- Vue学习笔记(7)