Skip to main content
 首页 » 编程设计

python之pydev调试器不工作

2025年05月04日12jyk

我正在使用 pydev(最新版本)并且调试器不再工作(特别是断点不起作用)。我收到一个奇怪的错误:

pydev 调试器:开始 追溯(最近一次通话最后一次):

没有进一步的文字。 ...

我正在使用 stackless python 2.7 和 pyside(几乎是最新版本)。不起作用的断点不在无堆栈微线程中。

有人知道原因或解决方法吗?

好的,(有点尴尬)我过去也遇到过类似的问题,在这里发帖并获得了广泛的帮助 here

我用那个帖子查明了这个方法的问题:

def __getattr__(self, name): 
    if name in self._code_: 
        func = self.getfunction(name) 
        setattr(self, name, func) 
        return func  
    else: 
        return super(AtomicProcess, self).__getattr__(name) 

我想使用这个或类似的方法在最晚的可能时间(当它被调用时)设置属性。我添加了 super 调用以可能解决问题,但没有骰子。

  • 有谁知道导致此方法出现问题的原因吗?
  • 有没有人有实现延迟初始化但避免 pydev 问题的修复程序?

我还应该提到,我的代码运行没有问题,但调试器似乎在上面的方法中进入某种无限递归,恢复并忽略此方法后的断点。

干杯,拉斯

PS:有人吗? pydev 开发人员是否关注 stackoverflow 或是否有其他我可以尝试的地方?

请您参考如下方法:

虽然我不确定是什么,但它似乎和上一期一样(如果你能把代码传给我我可以看一下,但如果没有它,我唯一能做的就是指向最后一个线程我们有)。

请记住,如果您遇到递归异常,这会破坏 Python 调试功能...同时,作为解决方法,您可以使用远程调试器来改进它。

我有一个预感: 我的猜测是您访问了“self”中的某些内容,它再次调用了 __getattr__...(这会生成递归并破坏调试器)。

另一个可能的事情:不是在 super(AtomicProcess, self).__getattr__(name) 中使用“super”习惯用法,而是直接使用父类(super class):Superclass.__getattr__(self,名称) ...

干杯,

法比奥