时间:2021-07-01 10:21:17 帮助过:15人阅读
回车 重复执行上一行
其中p 这个命令很关键,可以查看参数的值,很好!
测试代码如下sum.py:
#/usr/bin/python
def add_t( ):
i=1
sum=0
for i in range(1,5):
sum=sum+i
print sum
if __name__ == ‘__main__‘:
add_t()
调试过程如下:python -m pdb sum.py
n调试
1 > /opt/sum.py(3)<module>()
2 -> def add_t( ):
3 (Pdb) n
4 > /opt/sum.py(9)<module>()
5 -> if __name__ == ‘__main__‘:
6 (Pdb) n
7 > /opt/sum.py(10)<module>()
8 -> add_t()
9 (Pdb) n
10 1
11 3
12 6
13 10
14 --Return--
15 > /opt/sum.py(10)<module>()->None
16 -> add_t()
17 (Pdb) q
n表示执行下一行代码,但是不陷入函数内部,可以看第3、6、9行,在执行add_t函数时并未陷入函数内部。
s调试
1 > /opt/sum.py(3)<module>()
2 -> def add_t( ):
3 (Pdb) s
4 > /opt/sum.py(9)<module>()
5 -> if __name__ == ‘__main__‘:
6 (Pdb) s
7 > /opt/sum.py(10)<module>()
8 -> add_t()
9 (Pdb) s
10 --Call--
11 > /opt/sum.py(3)add_t()
12 -> def add_t( ):
13 (Pdb) s
14 > /opt/sum.py(4)add_t()
15 -> i=1
16 (Pdb) s
17 > /opt/sum.py(5)add_t()
18 -> sum=0
19 (Pdb) s
20 > /opt/sum.py(6)add_t()
21 -> for i in range(1,5):
22 (Pdb) s
23 > /opt/sum.py(7)add_t()
24 -> sum=sum+i
25 (Pdb) s
26 > /opt/sum.py(8)add_t()
27 -> print sum
28 (Pdb) p i
29 1
30 (Pdb) p sum
31 1
32 (Pdb) s
33 1
34 > /opt/sum.py(6)add_t()
35 -> for i in range(1,5):
36 (Pdb) s
37 > /opt/sum.py(7)add_t()
38 -> sum=sum+i
39 (Pdb) s
40 > /opt/sum.py(8)add_t()
41 -> print sum
42 (Pdb) p i
43 2
44 (Pdb) p sum
45 3
46 (Pdb)
s调试和n调试一样,只不过s在遇到函数时会进入函数进行调试,9、12、13表示进入add_t函数内部进行调试,后面使用p命令打印相关函数内参数的值,后面输入r即可退出函数内部的调试。
也可以在py文件里加pdb.set_trace()
例如:
import pdb
def make_bread():
pdb.set_trace()
return "I don‘t have time"
print(make_bread())
pdb-不需要IDE也能调试
标签:添加 disable 含义 bsp == 重复 ide return 通过