我正在尝试从原始 pdb 程序调试我的 python,而不是通过 emacs 运行 pdb(它在代码的文本显示中使用标记跟踪当前行)。 pdb 中的列表命令 l 只显示几行代码,这有点烦人,我宁愿让它用当前函数的所有代码填充我的终端,直到当前行。
我知道我可以手动执行此操作,方法是查看行号并键入 l 50,100(其中 100 是当前行),但这很耗时,我想将其设置为自动运行。
我想知道是否有办法定义一个 pdb 命令来执行此操作?我猜它需要 (1) 访问当前行的编号 N;然后(2)执行“l N-50,N”。我搜索了很多但找不到以前做过这个的人。也许有一种方法可以访问 pdb 模块自己的内部结构来获取行号?
(或者一种迂回的方式是编写调用一次列表的东西,解析输出以提取当前行,然后执行一个新的列表命令,我想知道是否有人已经这样做了?这就是 IDE 设法获得的方式我想知道来自 pdb 的当前行信息还是他们正在使用它的内部信息?)
最佳答案
您可能可以扩展 PDB 类,但扩展接口(interface)没有很好的文档记录。
我建议使用 pdb++及其 sticky 功能,如果我正确理解您的用例,它几乎可以满足您的需求。
关于Python pdb——如何更改 "l"命令列出的默认行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12087398/