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

时间:2017-12-20 16:55:17

标签: python-2.7 debugging command-line pdb

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

2 个答案:

答案 0 :(得分:1)

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

if DEBUG_MODE:
    pdb.set_trace()

答案 1 :(得分:0)

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

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

示例:

禁用断点:

export PYTHONBREAKPOINT=0

启用断点:

export PYTHONBREAKPOINT=