📜  如何在 python pdb 中设置断点 - Python (1)

📅  最后修改于: 2023-12-03 15:08:45.111000             🧑  作者: Mango

如何在 Python pdb 中设置断点

Python 的 pdb 模块可以帮助程序员在调试时定位错误。在 pdb 中设置断点能够帮助我们更快速地找到程序出错的位置。本文将介绍如何在 Python pdb 中设置断点。

在代码中设置断点

我们可以在代码中使用 pdb.set_trace() 来设置断点。当程序执行到该代码行时,程序会自动停在该位置并进入 pdb 调试环境。

import pdb

def test():
    a = 1
    pdb.set_trace()
    b = 2
    c = a + b
    print(c)

test()

执行该代码,程序会在 pdb.set_trace() 处停下,等待我们输入调试命令。

> <ipython-input-1-5419c6aa0ae5>(5)test()
-> b = 2
(Pdb)
使用命令行参数设置断点

我们也可以在命令行参数中指定断点位置,这样程序会在执行到指定的代码行时停止。例如,我们可以在执行代码时加上 -m pdb,并在代码文件名后面加上行号来设置断点。

python -m pdb mycode.py:10

这个命令会在 mycode.py 的第 10 行位置停止程序执行。这种方式适用于我们已知代码中存在某个不正常的位置,可以直接指定断点调试。

指定条件和命令

我们有时可能需要在满足某个条件时才进行调试,或者需要执行一些特定的命令。在 pdb 中,我们可以使用 break 命令来设置断点并指定条件和命令。

# 在 mycode.py 文件的第 10 行设置断点,并在 a==3 时停止执行,并执行 print(a)
(Pdb) break mycode.py:10, a==3
(Pdb) commands
commands:
    1: print(a)
    2: continue
(Pdb) condition 1 True

以上代码会在程序执行到 mycode.py 的第 10 行位置,并且变量 a 的值为 3 时停止执行,并执行预先设置的命令 print(a),然后继续执行。

总结

在 Python 中使用 pdb 调试,可以帮助我们更快地定位代码中的错误。在 pdb 中设置断点可以帮助我们更快速地找到程序出错的位置,同时还可以指定条件和命令来进行更加精细的调试。