Skip to content

使用 Python 调试器 pdb

Python 的 pdb 模块是一个强大的调试工具,用于调试 Python 程序。它提供了断点设置、单步执行、变量查看等功能,帮助开发者查找和修复代码中的错误。以下是使用 pdb 的一些基本操作示例。

启动 pdb

有几种方法可以启动 pdb 调试器:

1. 从命令行启动

在运行 Python 脚本时,可以通过在命令行中使用 -m pdb 参数启动调试器:

sh
python -m pdb script.py

这样在脚本执行之前就会进入调试模式。

2. 在代码中插入断点

可以在代码中的任意位置插入一个断点,使程序在执行到该位置时暂停并进入调试模式:

python
import pdb; pdb.set_trace()

例如:

python
def add(a, b):
    pdb.set_trace()
    return a + b

print(add(2, 3))

当程序执行到 pdb.set_trace() 处时,会进入调试模式。

常用调试命令

进入调试模式后,可以使用以下命令进行调试:

  • ccontinue:继续执行程序,直到遇到下一个断点或程序结束。
  • nnext:执行下一行代码,不进入函数内部。
  • sstep:单步执行代码,如果当前行是函数调用,则进入函数内部。
  • qquit:退出调试器,终止程序执行。
  • pprint:打印变量的值。例如,p variable_name
  • llist:显示当前代码的上下文。
  • bbreak:设置断点。例如,b 10 在第 10 行设置断点,b func_name 在函数 func_name 处设置断点。

示例

以下是一个简单的示例,展示如何使用 pdb 进行调试:

python
def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n - 1)

import pdb; pdb.set_trace()

result = factorial(5)
print(result)

在上述代码中,程序执行到 pdb.set_trace() 处会暂停并进入调试模式。可以使用调试命令逐步检查 factorial 函数的执行情况。

结束调试

调试完成后,可以使用 continue 命令继续执行程序,或使用 quit 命令退出调试器并终止程序执行。

通过掌握这些基本操作和命令,可以有效地使用 pdb 调试 Python 程序,快速定位和解决问题。