说到 Python 调试就需要 pdb 这个模块
网上关于这个python的调试介绍也很多很详细,但用的比较多的就那么几个,这里只讲一些最常用的。
# 示例代码
def add(*param):
return sum(num for num in param)
if __name__ == "__main__":
a = 1
b = 2
import pdb; pdb.set_trace()
a += 1
b -= 1
result = add(a, b)
print(result)
[~/webeye/projectb]$ python test-haixiang1.py
> /**/test-haixiang1.py(11)<module>()
-> a += 1
# 执行之后就在就在打断点的地方停止了,输入 l 或者 ll 查看上下文
(Pdb) l
6
7 if __name__ == "__main__":
8 a = 1
9 b = 2
10 import pdb; pdb.set_trace()
11 -> a += 1
12 b -= 1
13 result = add(a, b)
14 print(result)
15
# 指定对象查看对象的值(linux直接指定对象即可)
(Pdb) p a
1
(Pdb) p b
2
# 下一行 nextline
(Pdb) n
> /**/test-haixiang1.py(12)<module>()
-> b -= 1
(Pdb) l
7 if __name__ == "__main__":
8 a = 1
9 b = 2
10 import pdb; pdb.set_trace()
11 a += 1
12 -> b -= 1
13 result = add(a, b)
14 print(result)
15
16
17
# 跳到下一个断点处 continue
(Pdb) c
3
# 由于没有下一个断点,直接输出
常用命令:
import pdb; pdb.set_trace()
c continue
n next line
b 123 在123行新建一个断点
l
ll