调试我的Python代码时,我从命令行通过ipdb运行脚本,并设置了许多断点。然后,我在一个或多个模块中进行一些更改,然后重新运行。但是,如果我只是使用运行模块,请不要重新加载。 为了确保它们这样做,我可以完全存在并重新启动 Python,但是我需要重置所有断点,如果我有很多断点并且一遍又一遍地完成,这很乏味。
有没有办法将断点保存到 (i(pdb 中的文件中,以便在不更改行号的小更改之后,我可以转储断点、重新启动 Python + pdb 并重新加载断点? 相当于 Matlabs X = dbstatus
、保存/加载X
和设置dbstop(X)
。
您可以将断点保存到工作路径中的.pdbrc
文件,也可以将断点全局保存到主目录。 文件应如下所示:
# breakpoint 1
break /path/to/file:lineno
# breakpoint 2
break /path/to/file:lineno
您可以通过各种方式定义断点,就像在交互模式下一样。因此,只需break 4
或break 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__ + ":%1n")
将上面放到您的全局 .pdbrc 并像这样使用它:
> bs 15
这会将断点语句追加到当前文件第 15 行的本地 .pdbrc 文件中。
这不是完美的解决方案,但对我来说足够接近。根据需要调整命令。
在此处阅读有关别名的更多信息。