玩转Python调试器

如果你还只会使用print来定位python程序问题,那这篇文章就是为你写的,这篇文章将带你入门python调试器。python标准库提供了一个叫pdb的调试器,它提供了调试所需的绝大多数常用功能,比如断点、单行步进、堆栈帧数据的检查等。了解一些python pdb的基本用法和知识,将极大的提高我们的开发技能和效率,节省排查bug的时间。

现在我们使用pdb对下面这个简单的python程序进行调试,以演示pdb的基本用法。

玩转Python调试器

运行pdb调试器

在python解释器的命令行参数中添加“-m pdb”就可以启动pdb调试器对应用程序进行调试,如下:

玩转Python调试器

除此之外,还可以通过在程序中设置断点的方式启动调试器。首先导入pdb模块并在需要暂停处调用set_trace函数设置断点。

玩转Python调试器

直接执行加入了断点的程序,程序会自动暂停在设置了断点处。

玩转Python调试器

查看程序执行栈

python调试器启动后,可以通过下面这些命令当前栈的信息。

w(here):显示当前执行的行以及执行栈的位置。

玩转Python调试器

l(ist):显示当前位置的代码。

玩转Python调试器

u(p)/d(own):往上或往下切换调用栈。

玩转Python调试器

单步调试

n(ext):执行当前函数下一行代码。

s(tep):执行下一行代码,如果调用函数就会进入被调用的函数。

c(ontinue):继续执行直到遇到下一个断点。

玩转Python调试器

检查变量内容

在调试器中,可以使用args命令打印当前函数的变量,如下所示:

玩转Python调试器

使用命令是 p(rint)可以打印单个变量的内容,还可以对表达式求值。

玩转Python调试器

最后

介绍了pdb的基本用法,python 文档包含每个 pdb 命令的参考和示例,具体需要时请查阅。

相关推荐