时间:2021-07-01 10:21:17 帮助过:3人阅读
2. pdb
a) 命令行 python -m pdb xxx.py(按顺序 one by one执行)
b) python xxx.py (在代码中设置 pdb.set_trace(), 会直接执行到set_trace处)
import pdb
a=1
b=2
c=3
pdb.set_trace()
d=a+b+c
print d
一些命令
E:\Telsa\com>C:\Python27\python.exe -m pdb err.py > e:\telsa\com\err.py(1)<module>() -> import pdb #该执行import pdb (Pdb) n #执行下一步 import pdb > e:\telsa\com\err.py(2)<module>() -> a=1 (Pdb) n #a=1执行完毕 > e:\telsa\com\err.py(3)<module>() -> b=2 (Pdb) p a #查看a的值 1 (Pdb) p b #b=2没有执行,所以NameError *** NameError: NameError("name ‘b‘ is not (Pdb) c # c 表示一路向下执行,直到set_trace > e:\telsa\com\err.py(6)<module>() -> d=a+b+c (Pdb) n #遇到 d=a+b+c 前面的set_trace,停下了,按n 或c继续执行 > e:\telsa\com\err.py(7)<module>() -> print d (Pdb) c 6 The program finished and will be restarted > e:\telsa\com\err.py(1)<module>() -> import pdb (Pdb)
> e:\telsa\com\err.py(1)<module>() -> import pdb (Pdb) list #查看执行代码,->表示该执行此句(还未执行) 1 -> import pdb 2 a=1 3 b=2 4 c=3 5 pdb.set_trace() 6 d=a+b+c 7 print d [EOF] (Pdb)
q退出pdb
s 进入函数
ex:被调试对象
def run(s): s+=‘‘ return s s=‘S‘ print run(s)
logging 和pdb
标签: