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单步调试效率要高很多,但也高不到哪去。