使用pdb调试python程序

python就像shell一样简单,因为它是解释型语言,同时它也很强大,想OO语言,但是它的调试debug功能却不能像shell那样土,echo或者-x,那么拿出python的调试利器pdb,名字就像gdb一样cool用起来也是一样cool。如果想调试一段python代码有下面两种方法可以用:
 
方法1:修改源代码
_DEBUG=True
if _DEBUG == True:
import pdb
pdb.set_trace()
 
方法2:用-m参数
python -m pdb myscript.py
 
进入debug模式后,就可以用下面的指令调试了:
>帮助信息
 
>断点设置  
b  10     #断点设置在本py的第10行 或(Pdb)b  ots.py:20 #断点设置到 ots.py第20行
b         #查看所有断点
cl 2 #删除第2个断点
disable #取消所有中断点的功能,但是保留中断点
enable #恢复断点
     
>运行
n #单步运行
s #跳入方法运行
c #跳到下个断点
r #执行到该方法结束
w(here) #列出目前 call stack 中的所在层。
d(own) #在 call stack 中往下移一层。
u(p) #在 call stack 中往上移一层。如果在上移一层之後按下 n ,则会在上移之后的一层,再去执行下一层。
j(ump) 5 #跳到第5行执行,从跳入点到第5行之间的代码不执行。只有在 call stack 的最底部才能作用。
q(uit) #退出调试模式。
 
>查看
p param #查看当前 变量值
l #查看运行到某处代码
a #查看全部栈内变量

Leave a Comment.