Python 用于.pdbrc文件中断点的命令

Python 用于.pdbrc文件中断点的命令,python,debugging,Python,Debugging,我想将断点的命令保存在.pdbrc中,类似于: b 81 commands 1 pp foo.attr1 pp foo.attr2 end b 108 commands 2 pp bar.attr1 pp bar.attr2 end 这将自动设置调试会话的环境。但是,这不适用于python-m pdb script.py,因为在commands 1行,pdb提示符启动并要求我输入第一个断点的命令,忽略我在.pdbrc中编写的内容;此外,由于foo.attr1、foo.att

我想将断点的命令保存在
.pdbrc
中,类似于:

b 81 
commands 1 
pp foo.attr1 
pp foo.attr2 
end 
b 108 
commands 2 
pp bar.attr1 
pp bar.attr2 
end 
这将自动设置调试会话的环境。但是,这不适用于
python-m pdb script.py
,因为在
commands 1
行,pdb提示符启动并要求我输入第一个断点的命令,忽略我在
.pdbrc
中编写的内容;此外,由于
foo.attr1
foo.attr2
甚至
end
,在pdb提示符下键入
end
后,它会引发
NameError
。对于其余的断点也会发生同样的情况,因此我最终设置了它们,但没有使用它们的命令


正确的方法是什么?甚至可能吗?

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

commands 1;; pp foo.attr1;; pp foo.attr2;; end;;
但是,这似乎只在提示下起作用,您将错误地得到:

Usage : commands [bnum]
        ...
        end
如果将该行放在.pdbrc中


查看pdb.py,作者似乎没有正确处理pdbrc中的定义命令。我个人只是暂时将打印行放在我正在调试的代码中,同时使用pdbrc保存感兴趣的断点以绕过此问题。

您可能不希望每次在任何地方使用pdb时都使用此设置。我的建议是设置别名,例如:

alias setup_myproj b 81;; commands 1;; pp foo.attr1;; pp foo.attr2;; end

然后您可以在适当的时候运行
setup\u myproj

我正在努力解决这个问题……您能做到吗?