PDB使用

调试Python程序的小工具

首先众所周知调试C程序的高效率工具–GDB有了Python版本:pdb

安装

pip install pdb

调试程序样例:

# test.py
import signal
import time
def get(d):
    print(d)
    print(d+1)
    time.sleep(60)
    return None
get(1)

使用技巧

进入pdb调试环境;

python3 -m pdb test.py

在这里插入图片描述

输入"ll"(L)显示源码(箭头表示当前运行位置):

(Pdb) ll
 1  ->	import signal
  2
  3  	import time
  ...
 12  	def get(d):
 13  	    print(d)
 14  	    print(d+1)
 15  	    time.sleep(60)
 16  	    return None
 17  	get(1)
 18  	exit()

输入n运行下一行(import time);
接下来给15行打个断点:

(Pdb) tbreak 15
Breakpoint 1 at test.py:15

但是发现15行并没有问题,清除15行的断点。并给16行添加断点

(Pdb)  cl 15
*** Breakpoint number 15 out of range
(Pdb) b 16
Breakpoint 2 at  test.py:16

看下调用函数的内部使用s ,查看函数的参数使用a;

(Pdb)  s
>(144)__init__()
(Pdb)  a


但是逐行的看太慢了,执行到20行停下来:

(Pdb) unt 20

还是太慢了,跳转到22行吧(注意跳过的代码不执行):

(Pdb)  22

打印堆栈信息使用w,打印使用p ,查看变量类型使用whatis。
调试过程经常会需要写测试代码(ctrl D退出到pdb):

(Pdb)  interact
>>> 

退出pdb使用q。

你可能感兴趣的:(总结,后端开发,python)