.pdbrc 文件中的断点命令

Pab*_* N. 5 python debugging

我想在 a 中保存断点的命令.pdbrc,例如:

b 81 
commands 1 
pp foo.attr1 
pp foo.attr2 
end 
b 108 
commands 2 
pp bar.attr1 
pp bar.attr2 
end 
Run Code Online (Sandbox Code Playgroud)

这将自动设置调试会话的环境。但是,这不适用于python -m pdb script.py,因为在该行中commands 1,pdb 提示符开始并询问我第一个断点的命令,而忽略我在 中写的内容.pdbrc;此外,它NameError在我end在 pdb 提示符下键入后引发 a ,因为foo.attr1foo.attr2甚至end。其余的断点也会发生同样的情况,所以我最终设置了它们,但没有设置它们的命令。

这样做的正确方法是什么?甚至有可能吗?

man*_*est 2

我的第一个想法是该命令必须定义在一行上:

commands 1;; pp foo.attr1;; pp foo.attr2;; end;;
Run Code Online (Sandbox Code Playgroud)

但是,这似乎只能在提示符下起作用,并且您将错误地得到:

Usage : commands [bnum]
        ...
        end
Run Code Online (Sandbox Code Playgroud)

如果将上面的行放在 .pdbrc 中

查看pdb.py,作者似乎没有正确处理 pdbrc 中的定义命令。

我个人会暂时将打印行放在我正在调试的代码中,同时使用 pdbrc 保存感兴趣的断点来解决这个问题。