Python PDB 调试
PDB
- python内置的调试工具,Python Debugger
- 支持断点、单步调试、支持流程控制、支持堆栈检查。
- 支持源码嵌入,也可以事后进行调试。
源码嵌入调试
就是在源代码中嵌入pdb语法,进行打断点。这种
import pdb
def add(a,b):
c = a + b
pdb.set_trace()
return c
print(add(3,4))
事后进行调试
# a.py
def add(a,b):
c = a + b
return c
print(add(3,4))
# 事后执行a.py 进行调试
python -m pdb a.py
PDB 基本指令
l
列出源码b
break设置断点,如b 9
, 就是设置第九行为断点;如b add
将add函数设置为断点c
执行到下一个断点cl
清除断点,cl 1
删除第一个断点;cl 9
删除第九行的断点;tbreak
设置临时断点,如tbreak 3
设置第三行为临时断点,程序执行到断点处停下来 且会删除断点。
细节操作
n
next 执行下一条命令。s
step 执行下一条命令,与n
的区别是,s
会进入到函数的内部r
return 执行到当前函数结束c
继续执行,知道遇到下一个断点j
jump 设置下行执行的代码,j 13
执行执行到13行的位置unt
until 执行到下一行(跳出循环),或者是当前堆栈结束
堆栈操作
w
(where) 打印当前执行堆栈bt
打印当前执行堆栈d
down 执行跳转到当前堆栈的深一层u
up 执行跳转到当前堆栈的上一层
查看变量
args
查看所有变量p
如p name
查看变量name
参考:https://mp.weixin.qq.com/s?src=11×tamp=1600180311&ver=2586&signature=MUZJNcRSANmCItypYtUztnT7dp6r4nRm-H1EB-GYT3jLoVb62yYNGlMGbSzDXFN3cwrRnd5Qqh3lcJv5rSU4jN4iCzDGeXLvo0AEdBbibV7qEzeEmyGfiIc9ea27-hsX&new=1
还没有评论,来说两句吧...