是否可以在
python调试器pdb中以交互方式逐行查看正在执行的代码?
例如,在gdb中,可以按^ x ^ a并显示代码窗口.
我知道我可以看到使用列表的一些代码但是有一个类似gdb的选项吗?
最佳答案 不是开箱即用,但您可以在主目录的.pdbrc文件中添加pdb.Pdb命令子类的
Cmd.preloop()
和
Cmd.precmd()
挂钩,然后驱动文本编辑器以显示文本.
这是PdbSublimeTextSupport和PdbTextMateSupport包使用的方法.
这些包只是从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.py
和pdb.py
源代码,但上面的示例应足以驱动任何显示当前源代码行的方法.