pdb.set_trace()
这个方法也是用pdb,但是不需要单步执行,我们只需要 import pdb ,然后,在可能出错的地方放一个 pdb.set_trace() ,就可以设置一个断点:
# err.py
import pdb
s = '0'
n = int(s)
pdb.set_trace() # 运行到这里会自动暂停
print(10 / n)
运行代码,程序会自动在 pdb.set_trace() 暂停并进入pdb调试环境,可以用命令 p 查看变量,或者用命令 c 继续运行:
$ python3 err.py
> Usersmichael/Github/learn-python3/samples/debug/err.py(7)<module>()
-> print(10 / n)
(Pdb) p n
0
(Pdb) c
Traceback (most recent call last):
File "err.py", line 7, in <module>
print(10 / n)
ZeroDivisionError: division by zero
这个方式比直接启动pdb单步调试效率要高很多,但也高不到哪去。