如果我从菜单中选择‘调试器’,并输入‘pythonPDBmyfile.py’,那么我将使用python.el,在一个拆分框架中,我看到( pdb )提示符,而在另一个框架中,我的python代码在第一行上有一个插入符号,表明它已经准备好了。例如,“n”步骤到下一行,插入符号相应地移动。
如果我输入‘pythonipdbmyfile.py’,则框架分裂,一个拆分标记为gud,但是没有ipdb控制台。换句话说,这种启动ipdb的方式似乎行不通。如果我使用ipdb.set_trace()在python代码中手动插入断点,则Ipdb工作得很好,只是它不使用gud接口。这是有意的吗?这样ipdb的堆栈跟踪就可以很好地工作了吗?
如果是的话,这很好,但是是否有一种方法可以从emacs启动ipdb而无需手动添加set_trace()命令?
发布于 2015-07-05 15:37:40
这里的基本问题是,gud正在寻找一个(Pdb)提示符,而ipdb不是这样提示的。修复这个问题有三种方法: fix提供(Pdb)提示,fix不需要查找(Pdb)或(我最喜欢的)在gud端或ipdb端使用其他东西。
修复gud的问题是,它已经很老了,在我看来,使用全局变量而不是使用列表和反单元格以外的Emacs数据结构有点不稳定。gud的全部重写称为雷格德,目前在MELPA和ELPA中。并且支持ipdb。
最后一种选择是使用其他的东西,所以让我建议已经集成到realgud中的Python透视图调试器 (但不是gud,因为我认为这是一个死胡同)。虽然它给出的回溯不完全像ipdb的,但它确实给它们加上了源代码。
而最新版本的trepan3k回溯甚至会显示,按需,您在行中的位置。所以,如果你说一个函数有两个调用,比如fib(),它会区分哪个调用函数正在进行中。
https://stackoverflow.com/questions/21806204
复制相似问题