跨ipdb会话的历史记录

时间:2014-11-07 22:09:54

标签: python ipython ipdb

这个问题以前是asked,但我找不到一个好的答案。所以,我想再问一次。

我希望我的ipdb能够记住跨会话的命令。现在,它可以提取在Ipython会话中执行的命令,但不能从旧的ipdb会话中提取。如果我可以拥有此功能,那将节省大量时间。

有没有人能解决这个问题?

3 个答案:

答案 0 :(得分:4)

我遇到了同样的问题,所以我forked项目并为持续历史添加补丁。您可以使用pip:

安装分叉版本的ipdb
pip install git+https://github.com/michelesr/ipdb.git

确保您的IPython版本为5.0或更高版本。可在此article中找到实施信息。

答案 1 :(得分:1)

如果您希望使用其他调试器,trepan确实会在会话中保存历史记录。

答案 2 :(得分:0)

  • 创建具有以下内容的文件
  • 在您的execfile(...)文件中将~/.pdbrc导入该文件
def use_file_history():
    import os
    from IPython.terminal.debugger import TerminalPdb
    from prompt_toolkit.history import FileHistory
    cmdloop = TerminalPdb.cmdloop
    def cmdloop_prime(self, intro=None):
        fname = os.path.join(os.path.expanduser('~'), '.ipdb_history')
        self._pt_app.buffer.history = FileHistory(fname)
        self._pt_app.buffer.reset()
        cmdloop(self, intro)
    TerminalPdb.cmdloop = cmdloop_prime

use_file_history()
del use_file_history

PS-您可以在this gist with ipdb patches

中找到此代码以及更多补丁