【问题标题】:How can I make the Eclipse Python debugger more reliable?如何使 Eclipse Python 调试器更可靠?
【发布时间】: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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    不确定它是否相关,但我遇到过调试消息过多会导致我的电脑变得非常慢的情况。您可以尝试转到 Window -> Preferences -> Run/Debug -> Console...勾选限制控制台输出,并减少控制台缓冲区大小(我的设置为 40000)。

    【讨论】:

      猜你喜欢
      • 2016-02-21
      • 1970-01-01
      • 2015-01-12
      • 2011-04-16
      • 2011-05-18
      • 2011-10-07
      • 2010-09-24
      • 1970-01-01
      • 2013-04-01
      相关资源
      最近更新 更多