如何使Eclipse Python调试器更可靠?

时间:2010-06-15 08:27:08

标签: python eclipse debugging pydev

我发现在某些情况下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编译器)不可用。

3 个答案:

答案 0 :(得分:2)

Python 2.4存在已知问题(因此,如果可能,请获取更新版本),如果您无法获得更新版本,至少使用threadframe扩展(http://pypi.python.org) /的PyPI / threadframe)。如果没有这些可能,那么实际上预期调试器不能正常工作(因为调试器需要该版本中不可用的功能)。

答案 1 :(得分:0)

不确定它是否相关,但我有一个场景,太多的调试信息会导致我的PC变得非常慢。您可以尝试转到Window - >偏好 - >运行/调试 - >控制台...勾选限制控制台输出,并减少控制台缓冲区大小(我的设置为40000)。

答案 2 :(得分:0)

当我有大字典时,我遇到了同样的问题。尝试关闭Eclipse中的“变量”窗口。这给我带来了巨大的变化。

见这里:Why is debugging in eclipse/pydev so slow for my python program?