Python pdb——如何更改 "l"命令列出的默认行?

标签 python list line default pdb

我正在尝试从原始 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/

相关文章:

python - 如何从文件中提取特定的行和列并将其保存在另一个文件中

python - 获取对应的类到predict_proba(GridSearchCV sklearn)

Python - 迭代并提取字典类型列表的元素

python - 我应该将 len(list) 存储在某个地方吗?

list - Kotlin - 基于对象属性对 MutableList 进行排序

python - 如何在cython中切片列表

java - 从Java中的大文本文件中删除行

javascript - 在 JavaScript Canvas 中沿直线移动一个点

python - 通过 AWS lambda 在 EC2 实例上执行 python 脚本

python - 如何使 Selenium RC 不移动浏览器窗口?