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
。我正在努力解决这个问题……您能做到吗?