Python 中的 pdb(Python Debugger)用法
pdb 是 Python 内置的调试器,可以帮助开发者在程序运行过程中进行调试。它允许逐行执行代码、查看变量的值、设置断点等操作。
一、启动 pdb
-
在命令行中使用:可以在命令行中直接运行带有
-m pdb
参数的 Python 脚本。例如:python -m pdb my_script.py
。 -
在代码中使用:可以在代码中插入
import pdb; pdb.set_trace()
语句来在特定位置启动调试器。
二、常用命令
(一)查看代码
-
l
(list):显示当前位置周围的代码。
(二)执行代码
-
n
(next):执行下一行代码。 -
s
(step):进入函数内部执行。 -
c
(continue):继续执行程序,直到遇到下一个断点。
(三)查看变量
-
p
(print):打印变量的值。例如:p variable_name
。 -
pp
(pretty-print):以更易读的方式打印变量的值。
(四)设置断点
-
b
(break):设置断点。例如:b line_number
在指定行号设置断点。 -
b function_name
:在函数入口处设置断点。
(五)删除断点
-
cl
(clear):删除断点。例如:cl line_number
删除指定行号的断点。
(六)查看断点信息
-
b
(break):不带参数时,显示所有设置的断点信息。
(七)继续执行直到返回
-
r
(return):继续执行程序,直到当前函数返回。
(八)退出调试器
-
q
(quit):退出调试器。
三、示例
以下是一个简单的 Python 脚本,使用 pdb 进行调试:
import pdb def add_numbers(a, b): result = a + b return result def multiply_numbers(a, b): return a * b def main(): x = 5 y = 3 z = add_numbers(x, y) pdb.set_trace() # 设置调试断点 w = multiply_numbers(z, 2) print(w) if __name__ == '__main__': main()
假设我们想要调试这个脚本,以下是可能的调试过程:
-
在命令行中运行脚本:
python my_script.py
。程序会在pdb.set_trace()
处暂停执行,并进入调试器。 -
查看当前位置周围的代码:输入
l
,可以看到当前位置周围的代码。 -
查看变量的值:输入
p x
可以查看变量x
的值,输入p y
查看变量y
的值。 -
执行下一行代码:输入
n
,执行下一行代码,即调用add_numbers(x, y)
。 -
进入函数内部:如果想要进入
add_numbers
函数内部查看执行情况,可以输入s
。 -
继续执行程序:输入
c
,程序会继续执行,直到遇到下一个断点或者程序结束。
通过使用 pdb,可以在程序运行过程中逐步调试代码,查看变量的值和程序的执行流程,帮助我们找出和修复程序中的错误。