pdb
是 Python 自带的一个调试工具,可以用来在程序运行时进行调试,查看变量值、执行代码块、跟踪代码执行流程等。
下面是 pdb
的基本使用教程:
- 在代码中添加
import pdb; pdb.set_trace()
来设置断点,当程序运行到这一行时会停下来并进入交互式调试模式。 - 具体来说,在原代码中设置断点,如
pred = model.feature(**inputs)
后加入pdb.set_trace()
。当程序运行到此处是就会进入 pdb 模式。你就可以按照下面的命令来调试了,比如输入p pred
,就是打印这个变量。n
就是继续往下运行一步,等等如下具体解释 - 运行程序,程序执行到断点时会进入
pdb
的交互式调试模式,你可以使用如下命令:n(ext)
:执行下一行代码。s(tep)
:进入函数调用。c(ont(inue))
:继续执行到下一个断点。r(eturn)
:执行代码直到当前函数返回。l(ist)
:显示当前行前后的代码。p(rint)
:打印变量的值。h(elp)
:显示帮助信息。q(uit)
:退出调试模式。
- 使用
pdb
的高级命令:b(reak)
:设置断点,如b(reak) line_number
。cl(ear)
:清除断点,如cl(ear) line_number
。w(here)
:显示当前堆栈帧信息。u(p)
:上移堆栈帧。d(own)
:下移堆栈帧。a(rgs)
:显示当前函数的参数。unt(il)
:执行代码直到指定行。j(ump)
:跳转到指定行。
- 退出调试模式后,程序会继续执行。
需要注意的是,在使用 pdb
调试时,最好将程序中所有的 print
语句都注释掉,避免输出干扰调试信息的输出。另外,pdb
在交互式命令行中,不支持使用向上或向下箭头来快速查看命令历史,只能使用 Ctrl + p
和 Ctrl + n
。
正文完