b 函数名、行号:
打断点,b可以查询所有的断点。
c:
运行程序,直到遇到断点。
l:
查看断点周围的代码
a:
查看参数
s, n:
</div>
单步运行,区别s会进入路径中的函数,n不会进入
p:
查看表达式的值
condition:
</div>
条件断点,只有条件为true断点才命中
bt:
</div>
查看调用堆栈
--Return--
> c:\users\plpcc\desktop\pdbtest.py(6)pdb_test()->3 //代码位置、函数返回值->3
-> return arg //代码位置的语句
(Pdb) l
import pdb
def pdb_test(arg):
for i in range(arg):
print(i)
-> return arg
pdb.run("pdb_test(3)")
</div>
通过pdb.set_trace() 在代码中指定位置嵌入一个断点,通常可以通过调试开关来控制
__DEBUG__ = True
def pdb_test(arg):
if True == __DEBUG__:
pdb.set_trace()
for i in range(arg):
print(i)
return arg
pdb_test(3)
</div>
运行后在pdb.set_trace()位置被断住,当__DEBUG__ = False,代码正常运行
通过pdb.pm()进行事后调试,可以跟踪异常程序最后的堆载信息:
if True

