以交互方式观察python调试器pdb中的代码

是否可以在
python调试器pdb中以交互方式逐行查看正在执行的代码?

例如,在gdb中,可以按^ x ^ a并显示代码窗口.

我知道我可以看到使用列表的一些代码但是有一个类似gdb的选项吗?

最佳答案 不是开箱即用,但您可以在主目录的.pdbrc文件中添加pdb.Pdb命令子类的
Cmd.preloop()
Cmd.precmd()挂钩,然后驱动文本编辑器以显示文本.

这是PdbSublimeTextSupportPdbTextMateSupport包使用的方法.

这些包只是从Cmd子类中读取当前位置;例如,self.stack [self.curindex]包含当前帧和行号.

PdbSublimeTextSupport做:

def launch(self):
    frame, lineno = self.stack[self.curindex]
    filename = self.canonic(frame.f_code.co_filename)
    if exists(filename):
        command = 'subl -b "%s:%d"' % (filename, lineno)
        os.system(command)

def preloop(self):
    launch(self)

def precmd(self, line):
    launch(self)
    return line

并且Sublime Text编辑器在line lineno处打开文件名.

您可以参考bdb documentation(构建PDB的基础)以及bdb.pypdb.py源代码,但上面的示例应足以驱动任何显示当前源代码行的方法.

点赞