是否可以在python调试器pdb
中以交互方式逐行观察代码?
例如,在gdb
中,可以按 ^ x + ^ a ,然后会显示代码窗口。
我知道我可以使用list
查看一些代码但是有gdb
个选项吗?
答案 0 :(得分:2)
不是开箱即用,但您可以在主目录的pdb.Pdb
文件中添加.pdbrc
命令子类的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编辑器在filename
行打开lineno
。
您可以引用bdb
documentation(构建PDB的基础)以及bdb.py
和pdb.py
源代码,但上面的示例应足以驱动任何显示当前源代码行的方法。