3

我正在尝试从原始 pdb 程序调试我的 python,而不是通过 emacs 运行 pdb(它在代码的文本显示中使用标记跟踪当前行)。pdb 中的 list 命令 l 只显示几行代码,这有点烦人,我宁愿让它在我的终端中填充当前函数的所有代码,直到当前行。

我知道我可以通过查看输入 l 50,100 (其中 100 是当前行)的行号来手动执行此操作,但这很耗时,我想将其设置为自动工作。

我想知道是否有办法定义一个 pdb 命令来做到这一点?我猜它需要(1)访问当前行的编号N;然后 (2) 执行“l N-50, N”。我已经搜索了很多,但找不到以前这样做过的人。也许有一种方法可以访问 pdb 模块自己的内部来获取行号?

(或者一种迂回的方法是编写一次调用 list 的东西,解析输出以提取当前行,然后执行一个新的 list 命令,我想知道是否有人已经这样做了?这是 IDE 设法获取当前行的方式来自 pdb 的信息还是我想知道他们是否在使用它的内部?)

4

1 回答 1

1

您可能可以扩展 PDB 类,但扩展接口的文档记录不是很好。

如果我正确理解您的用例,我会建议使用pdb++及其粘性功能,它几乎可以满足您的需求。

于 2012-08-23T10:20:37.687 回答