使用ipdb进行调试。在需要打断点的地方:
import pdb; pdb.set_trace()
运行后在运行至断点处,如图:
常见的ipdb指令:
n(next):执行当前行,并在当前函数内部移动到下一行。如果当前行是一个函数调用,它会直接跳过整个函数调用,而不会进入该函数内部。
c(continue):继续执行代码,直到遇到下一个断点或程序结束。
s(step):步进进入函数调用,如果当前行是一个函数调用,执行进入函数内部,允许逐行执行函数内部的代码。
l(list):显示当前位置附近的代码片段。
p (print):打印变量的值。例如,p x 将会打印变量 x 的值。
q(quit):退出调试器,停止程序执行。
b(break):设置断点。可以使用 b 命令后跟行号,在那一行设置一个断点。例如,b 10 将在第 10 行设置一个断点。
r(return):继续执行代码,直到当前函数返回。