是否可以忽略硬编码的 pdb 断点?

Is it possible to ignore a hardcoded pdb breakpoint?

我使用 pdb 调试 Python 2.7 脚本,该脚本包含使用 pdb.set_trace() 函数的硬编码断点。当我想 运行 脚本而不在断点处停止时,我必须注释掉所有 pdg.set_trace() 行,然后当我想在断点处停止时,我必须删除非常低效的注释.有没有一种方法(例如命令行标志)可以执行忽略所有硬编码断点的 python 脚本。例如,许多像 PyCharm 这样的 IDE 具有忽略断点的 运行 模式和在断点处停止的调试模式。我可以从命令行执行类似的操作吗?

不,这不是 pdb 中的功能。但是,您可以将命令行选项处理写入您的程序并设置一个全局变量,例如 DEBUG_MODE = True 然后您只需将所有 pdb.set_trace() 调用修改为:

if DEBUG_MODE:
    pdb.set_trace()

您可以设置 PYTHONBREAKPOINT 全局环境变量来打开或关闭 pdb。

将其设置为 0 将禁用 pdb,将其值设置为空值将重新打开它。

示例:

禁用断点:

export PYTHONBREAKPOINT=0

启用断点:

export PYTHONBREAKPOINT=

如果您不想退出当前会话,可以在代码中完成。

import os
os.environ["PYTHONBREAKPOINT"] = "0"

然后当您继续时,您的硬编码断点将被忽略。