PUDB调试python程序

版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/shuzfan/article/details/78964206

PUDB是全屏的基于控制台的可视化调试器,主页为https://pypi.python.org/pypi/pudb

其特点主要有:
- 源码语法高亮,栈、断点、变量可见并且一直动态更新。变量展示还有很多可以定制化的功能
- 基于键盘,简单高效。支持光标键和Vi快捷键导航,还支持PDB的某些命令
- 支持搜索源代码,可以使用“m”来调用显示加载模块的模块浏览器
- 可以通过定位一行并点击“b”来设置断点,然后在断点窗口中可视地进行编辑。或者点击“t”来运行光标所在行
- 可以通过按下“!”来直接进入python环境
- PuDB很关注异常处理,post-mortem模式将会使得追踪程序崩溃的最后一步更简单
- 集成IPython
- 支持python2.6以及更高版本,包括python3

我使用的是Anaconda,但是通过conda安装pudb时总是出现网络问题,因此采用下面的形式:

sudo apt-get install python-pudb

或者

pip install pudb

首先给出示例代码:

import pudb; pu.db

def sum(n):
    result = 0
    for i in range(n):
        result = result + i
    return result

if __name__ == "__main__":
    y1 = sum(10)
    y2 = sum(100)
    y3 = sum(100)

PUDB的使用很简单,主要分两步:

  • 在代码中插入
import pudb; pu.db
  • 使用pudb命令启动python程序
# 为了演示,这里建立了一个数列求和的python程序:pudbSum.py
pudb pudbSum.py

得到的界面可能如下:

这里写图片描述

如果需要修改配色等属性,可以执行“Ctrl+P”调出设置界面。我的配色风格为“monokai”。

学习PUDB调试的整个过程中,最需要的快捷键就是“?”,用于调出帮助窗口,如下图所示:

这里写图片描述

常用的调试命令如下:

  • Ctrl+p: 打开属性设置
  • n: next,也就是执行一步
  • s: step into,进入函数内部
  • f: finsh current function,结束当前函数?
  • c: continue,继续执行
  • b: break point,在光标所在行添加或消除断点
  • t: to cursor,运行到光标位置
  • !: 打开python命令行
  • ?: 打开帮助窗口
  • o: output screen,打开输出窗口/控制台
  • m: module,打开模块
  • q: quit,退出PUDB
  • /: 搜索
  • ,/. 搜索下一个/上一个

PUDB的界面主要分为:左上角的源码,右上角的变量区,左下角的命令行区,右下角的断点区,以及右边中间的StacK区

下面是我添加了一个断点后,执行“c”命令后的结果。

这里写图片描述

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页