Python使用pdb调试代码的技巧

顾星河
顾星河
发布时间:2026-10-13 | 2人浏览过
原创

本文介绍Python标准库pdb在命令行环境下的调试技巧。通过导入pdb模块并设置断点,开发者可以交互式地查看变量、逐行执行代码、进入子函数或跳过函数。文章演示了n、p、l、s、r、c等常用命令的实际用法,帮助在无IDE环境下高效定位和解决代码错误。

什么是pdb

什么是pdb

pdb调试器简介

在编写Python代码遇到报错时,你是否习惯从错误提示回溯,逐行检查每一行代码?如果没有集成开发环境(IDE)或只能在命令行中编写代码,该如何快速进行调试?此时,利用pdb工具进行调试将变得异常便捷。

Pdb全称为Python debugger,是Python内置的标准调试器。借助pdb,我们可以交互式地查看运行过程中变量的值、设置断点、逐行执行代码以及查看调用栈等信息。特别是在没有图形用户界面(GUI)的环境中,pdb能显著提升调试效率。

示例代码分析

首先,我们准备一段包含错误的代码作为示例。


def test(p):
  p = p + 1
  
  return p

def fastdebug():
  print('start')
  temp = 'ready' 
  print('ok')
  res = test(temp) 
  print('end')
  
fastdebug()

这段代码逻辑简单:执行fastdebug()函数时,会调用另一个函数test()。test()接收一个参数p,计算p+1的值并返回。显然,在高亮显示的代码行中,传入的参数temp是字符串类型(str),因此执行上述代码时必然报错。

现在,假设我们不知道问题出在哪里,使用pdb来调试这段代码。

使用pdb进行调试

使用pdb

由于pdb属于Python标准库,我们可以直接导入并使用。

import pdb

接着,在需要调试的代码段之前设置一个断点。

pdb.set_trace()

将其应用到我们的代码中:

运行代码后,pdb调试器控制台将从放置set_trace()的位置开始等待命令,且箭头标记指向pdb接下来要执行的代码行。下面介绍一些pdb中常用的命令。

常用调试命令详解

使用n来执行下一行

可以看到此时调试器指向:

print('start')

在弹出的文本框中输入n即可执行该行,并且箭头将指向下一行即将执行的代码。

使用ENTER重复上一个命令

现在还没有到报错的位置,我们使用n或者直接回车重复执行上一个命令。

使用p打印变量值

在Pdb中我们可以使用p + 变量名来查看变量值,比如我们查看变量temp的值。

使用l查看上下行代码

在Pdb中我们可以使用l查看当前行上下几行代码。

使用s进入子函数

现在,我们来到出错的这一行,之所以报错就是传进去变量出了问题,因此我们可以在pdb交互行中使用s来进入子函数test()。

使用r执行函数直到结束

在pdb中可以使用r来执行当前运行函数到结束。

使用c停止调试并继续运行

现在我们修改相关代码完成调试,可以使用c命令继续执行命令。

当然也可以输入q直接退出调试界面。

总结与适用场景

以上就是使用Python标准库执行一次debug过程,可以看到pdb在命令行下调试代码是非常出色的,当然在某些情况下pdb将不是最好的选择比如涉及到多线程相关,而在比较大型的项目使用pdb也显得力不从心,因此我们需要灵活选择调试方案,不过至少我们又掌握了一种代码调试工具,不是吗?

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表