ger*_*rit 6 python debugging pdb ipdb
在调试我的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
Run Code Online (Sandbox Code Playgroud)
您可以采用各种方式定义断点,就像在交互模式下一样。因此,公正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__ + ":%1\n")
Run Code Online (Sandbox Code Playgroud)
将上述内容放在您的全局.pdbrc中,并按以下方式使用它:
> bs 15
Run Code Online (Sandbox Code Playgroud)
这会将断点语句附加到当前文件第15行的本地.pdbrc文件中。
这不是完美的解决方案,但对我来说足够接近。根据需要调整命令。
| 归档时间: |
|
| 查看次数: |
848 次 |
| 最近记录: |