将断点保存到文件

时间:2015-03-03 20:44:21

标签: python debugging pdb ipdb

在调试我的Python代码时,我从命令行通过ipdb运行一个脚本,并设置了许多断点。然后我在一个或多个模块中进行一些更改,然后重新运行。但是,如果我只使用运行模块do not get reloaded。为了确保它们能够存在,我可以完全存在并重新启动Python,但是我需要重置所有断点,如果我有很多断点,如果我一遍又一遍地重复,那就很乏味。

有没有办法将断点保存到(i)pdb中的文件中,这样在不改变行号的小改动后,我可以转储断点,重启Python + pdb,然后重新加载断点?相当于Matlabs X = dbstatus,保存/加载X,并设置dbstop(X)

1 个答案:

答案 0 :(得分:4)

您可以将断点保存到工作路径中的.pdbrc文件中,也可以全局保存到您的主目录。文件应该是这样的:

# breakpoint 1
break /path/to/file:lineno

# breakpoint 2
break /path/to/file:lineno

您可以通过各种方式定义断点,就像在交互模式下一样。因此,只有break 4break method也可以使用。

此文件适用于pdb和ipdb,因为稍后将拥有pdb和更多内容。

<强>加成

您可以使用alias更轻松地保存断点。 例如:

# append breakpoint to .pdbrc in current working directory
# usage: bs lineno
alias bs with open(".pdbrc", "a") as pdbrc: pdbrc.write("break " + __file__ + ":%1\n")

将以上内容添加到您的全局.pdbrc并使用它:

> bs 15

这会将断点语句附加到本地.pdbrc文件中,以获取当前文件的第15行。

这不是完美的解决方案,但对我来说足够接近。根据您的需要调整命令。

Read more about aliases here.