我发现在某些情况下
Eclipse python调试器可能不可靠.例如,当通过一个需要内存的
Python程序时,我发现在某一点之后调试器无法响应.整个过程挂起100%的CPU负载.
我听说过(未经证实的)开发人员的报告,当发生这种情况时,它实际上可能不是一个挂起但很慢,例如通常需要一秒钟的步骤可能需要五分钟.
我用普通的eclipse调试器(例如当你调试as-> python run)和pydev网络调试器时都观察到了这一点.事情停止工作的时刻似乎很随意,但可以重新制作.我正在调试纯数字函数,因此没有明显的socket或tcp活动可能会破坏网络调试器.然而,对于给定的工作站而言,发生故障的点似乎是非常一致的.任务.
我是否使用调试as-> python运行得到几乎完全相同的效果,因为我可能使用pydev的网络调试器(‘import pydevd; pydevd.settrace()’) – 其中一个失败另一个也可能失败.
如果我要正常运行脚本(没有调试器),它将执行而不会挂起.此外,如果我用旧的skool内联断点(‘import pdb; pdb.set_trace()’)替换eclipse调试器,一切正常. Pdb几乎永远不会出错,但有时我根本无法使用它,例如当我调试从Excel调用的python函数时 – 因为没有控制台存在.
我注意到这个失败似乎永远不会出现在琐碎的程序中,因此我暂时得出结论,错误可能与内存有关.
所以 – 是否有人知道可能导致这种不可靠性的原因.我可以对调试器或环境进行任何调整,以使调试器更可靠地工作吗?
仅供参考,在Windows XP 32bit上运行Python 2.4.4以及最新的Eclipse& Pydev的. Psyco(JIT编译器)不可用.
最佳答案 Python 2.4存在已知问题(因此,如果可能,请获取更新的版本),如果您无法获得更新版本,至少使用threadframe扩展(http://pypi.python.org/pypi/) threadframe).如果没有这些可能,那么实际上预期调试器不能正常工作(因为调试器需要该版本中不可用的功能).