【发布时间】:2011-09-06 09:03:42
【问题描述】:
我发现在某些情况下 Eclipse python 调试器可能不可靠。例如,当单步执行一个需要大量内存的 Python 程序时,我发现调试器在某个时间点后无法响应。整个过程以 100% 的 cpu 负载挂起。
我从开发人员那里听到(未经证实的)报告,当这种情况发生时,它实际上可能不是挂起而是非常缓慢,例如,通常需要一微秒的步骤可能需要五分钟。
我在常规的 Eclipse 调试器(例如,当您调试 as->python 运行时)和 pydev 网络调试器都观察到了这一点。事情停止工作的点似乎很随意,但可以重现。我正在调试纯数字函数,因此没有明显的套接字或 tcp 活动可能会破坏网络调试器。然而,对于给定的工作站和任务,发生故障的点似乎是相当一致的。
无论我使用 debug as->python run 进行调试,我得到的效果几乎完全相同可能会失败。
如果我要正常运行脚本(没有调试器),它会在没有任何挂起的情况下执行。此外,如果我用 old-skool 内联断点 ('import pdb;pdb.set_trace()') 替换 eclipse 调试器,一切正常。 Pdb 几乎永远不会出错,但有时我根本无法使用它,例如当我调试从 Excel 调用的 python 函数时 - 因为没有控制台。
我注意到这种故障似乎从来不会发生在琐碎的程序中,因此我初步断定故障可能与内存有关。
所以 - 是否有人知道可能导致这种不可靠性的原因。我可以对调试器或环境进行任何调整以使调试器更可靠地工作吗?
仅供参考,使用最新的 Eclipse 和 Pydev 在 Windows XP 32 位上运行 Python 2.4.4。 Psyco(JIT 编译器)不可用。
【问题讨论】:
-
如果 Eclipse 不能工作,为什么还要麻烦呢?我不明白这个问题。为什么不切换到 NetBeans 或 Komodo?
-
Eclipse Pydev 是免费的,除了在上述情况下也可以工作。我们有一个由 20 名混合能力开发人员组成的团队,他们都知道如何使用 Eclipse / PyDev。这是在一个非常大的组织中,桌面不一定由其用户控制。得到一些其他的包,弄清楚如何做所有事情,记录,再培训......所有这些任务都分散了我们的注意力,让我们从有报酬的工作中分心。如果我们能解决这个问题就更好了!
-
使用最新的 pydev 还会发生这种情况吗?如果是这样,您能否发布一小段触发问题的示例代码?
-
@S.Lott Komodo 在我的经验中也很糟糕。我使用 Python 调试器的最佳体验是 Visual Studio 调试器。
标签: python eclipse debugging pydev