使用方式
$ python -m pdb test.py非侵入式方法,不用额外修改源代码,在命令行下直接运行就能调试import pdb;pdb.set_trace()侵入式方法,需要在被调试的代码中添加一行代码然后再正常运行代码当你在命令行看到下面这个提示符时,说明已经正确打开了
pdb1
(Pdb)
常用命令
查看源码
l查看当前位置前后11行源代码(多次会翻页),当前位置在代码中会用-->这个符号标出来ll查看当前函数或框架的所有源代码
添加断点
b查看断点设置b lineno断点添加到哪一行b filename:lineno断点添加到哪个文件的哪一行b functionname在函数执行的第一行设置断点
添加临时断点,执行一次后时自动删除
tbreak查看临时断点tbreak linenotbreak filename:linenotbreak functionname
清除断点
cl清除所有断点cl filename:linenocl bpnumber [bpnumber ...]清除指定序号断点
打印变量
p expression也可以是表达式pp expression打印好看的
逐行调试
s执行下一行可以进入函数体n执行下一行不会进入函数体r执行下一行,如果在函数中,会直接执行到函数返回处
非逐行调试
c持续执行下去,直到遇到一个断点unt lineno持续执行直到运行到指定行(或遇到断点)j lineno直接跳转到指定行(注意,被跳过的代码不执行)
其他
a在函数中时打印函数的参数和参数的值! expression在pdb中执行语句,注意语句中不能出现空格whatis expression打印表达式的类型,常用来打印变量值interact启动交互式解释器q退出pdb