如何在Python PDB中列出当前行?

65 投票
4 回答
23021 浏览
提问于 2025-04-16 12:50

在perl调试器中,如果你反复查看代码的不同部分,离开了当前行,你可以通过输入命令.(点)来返回到当前行。

我在使用python的PDB模块时找不到类似的功能。如果我查看了其他地方的代码,想要再回到当前行,似乎我要么得记住当前执行的行号(这对我来说不太可能),要么得执行一个语句(这通常也不太方便)。

我是不是漏掉了什么?

4 个回答

34

这个问题已经有7年了。

如果有人对这个问题感到好奇,可以直接使用点号。

(pdb) l .

现在这样就可以用了。

48

在Python 3.2及更高版本中,你可以使用list .来重置列表的位置。

来源:Python错误追踪器 #4179

54

虽然有点晚,但希望还是能帮到你。你可以创建一个这样的别名:

alias ll u;;d;;l

这样每当你输入 ll 时,pdb 就会从当前的位置列出信息。它的工作原理是先向上查找调用栈,然后再向下查找,这样就能重置 'l',从当前的位置开始显示。(如果你在调用栈的最顶部,这个方法就不管用了。)

小贴士:永久别名

如果想让这个别名永久生效,可以把这行代码添加到你用户主目录下的 .pdbrc 文件中(路径是 ~/.pdbrc)。这个方法适用于 pdb 和 ipdb。

撰写回答