参考书目:《intermediate Python》原书地址
前言
本篇主要讲述利用pdb库进行Python调试的方法。
一、从命令行运行调试
$ python -m pdb my_script.py
这会触发debugger在脚本第一行指令处停止执行。
二、从脚本运行调试
1.使用pdb.set_trace()方法来实现。
代码如下:
import pdb
def Test_Code():
pdb.set_trace()
return "This is a debugger."
print(Test_Code())
保存上⾯的脚本后运行,在运行时马上进⼊debugger模式。
2.debugger模式下的一些命令
- c: 继续执行
- w: 显示当前正在执行的代码行的上下文信息
- a: 打印当前函数的参数列表
- s: 执行当前代码行,并停在第⼀个能停的地方(相当于单步进入)
- n: 继续执行到当前函数的下⼀行,或者当前行直接返回(单步跳过)
比如,在上述程序对话框中,输入c,会显示:
ipdb> c
This is a debugger.
输入w,会显示:
ipdb> w
[... skipping 21 hidden frame(s)]
c:\users\admini~1\appdata\local\temp\ipykernel_5800\3019181222.py(9)<module>()
单步跳过(next)和单步进入(step)的区别:
- 单步进入:进入当前行调用的函数内部,并停在里面
- 单步跳过:(几乎)全速执行完当前行调用的函数,并停在当前函数的下一行。