参考文档:https://www.jianshu.com/p/8e5fb5fe0931
调用pdb调试功能:Python -m pdb filename
1.断点 ( b,tbreak, cl , disable,enable,ignore bpnumber,condition bpnumber)
b设置断点
b num: 给第num行打断点
b function_name:当前文件函数名为 function_name 的函数打断点
b test1.A.add:在 import test1 文件的 A 类的 add 方法打断点
b A.add:在 A 类的 add 方法打断点
tbreak:设置临时断点
tbreak: 设置临时断点,运行完自动删除,和以上设置方式一致)
cl:清除断点
cl:清除所有断点
cl 3:清除断点列表中第3个断点
cl test.py:18:清除 test.py 文件的第18行的断点
cl test1:18:清除 import test1 文件的第18行断点
disable,enable:停用启用断点
和以上cl的用法一致
ignore bpnumber:忽略断点几次
ignore 1 3:忽略断点列表中第1个断点3次,一般循环中用
condition bpnumber:断点条件
condition 5 i==0:当断点列表中第5个断点中变量 i 等于 0 的时候执行断点
2.显示代码( l , w )
l: 查看当前位置的代码
l 5, 20: 列出5到20行代码
w :显示当前的执行位置
3. 执行(s, n, unt, r , c, run)
s:执行下一条命令,如果本句是函数调用,则 s 会执行到函数的第一句
n:执行下一条语句,如果本句是函数调用,则执行函数,接着执行当前执行语句的下一条。
unt:执行到下一行
r:执行当前运行函数到结束
c:继续执行,直到遇到下一条断点
run:重新执行
4.调试工具(p, pp, a)
p params:打印 params 参数
pp expression:格式化打印出来的结果
a: 显示当前所有变量
commands num:给断点num写测试脚本以end结束脚本
5.其他
j:跳转至指定程序行(如果是前行,则忽略中间行代码。如果是后退,状态重设为回退行状态)
alias :自定义一个函数,参数可由%1,%2来表示,类似 Python 的 lambda
unalias name删除函数