我正在使用 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,名称) ...
干杯,
法比奥
