【问题标题】:How do I list the current line in python PDB?如何在 python PDB 中列出当前行?
【发布时间】:2011-03-02 15:31:19
【问题描述】:

在 perl 调试器中,如果您重复列出带您离开当前行的代码段,您可以通过输入命令 .(点)返回到当前行。

我无法使用 python PDB 模块找到任何可比的东西。如果我列出自己离开当前行并想再次查看它,似乎我必须记住当前正在执行的行号(对我来说不太可能)或执行语句(通常不受欢迎) .

我错过了什么吗?

【问题讨论】:

    标签: python pdb


    【解决方案1】:

    晚了,但希望仍然有用。制作以下别名:

    alias ll u;;d;;l
    

    然后每当你输入ll,pdb 就会从当前位置开始列出。它通过向上堆栈然后向下堆栈来工作,这会将'l'重置为从当前位置显示。 (如果您位于堆栈跟踪的顶部,这将不起作用。)

    提示:永久别名

    要使别名永久化,请将该行添加到用户主目录 (~/.pdbrc) 中的 .pdbrc 文件中。这适用于 pdb 和 ipdb。

    【讨论】:

    • 简单且为我工作。这应该被标记为答案!
    • 这个命令超级好用。为了节省时间,您可以将其添加到.pdbrc 文件中,这样您就不必每次都输入它(描述为here
    • 我无法执行以下操作来覆盖 alias l => alias l u;;d;;l 进入循环
    【解决方案2】:

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

    Source: Python Bug tracker #4179

    【讨论】:

    • 谢谢,非常有帮助。 +1
    • 或快捷方式:l.
    【解决方案3】:

    这个问题已经 7 岁了..

    如果有人对此问题感到好奇,请使用点

    (pdb) l .

    现在可以了。

    【讨论】:

    • *** Error in argument: '.'
    【解决方案4】:

    好吧,我认为 perl 调试器中没有类似于 . 的命令,但是您始终可以使用 where / w 命令找到当前行。这将向您显示当前(上下文)帧以及最近的帧,我相信这是触发调试器的位置。

    【讨论】:

    • 我没有想过使用“where”来返回。它不太理想,但肯定比没有好。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 2020-03-14
    • 2010-09-18
    • 2011-12-02
    相关资源
    最近更新 更多