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

标签 python eclipse debugging pydev

我发现在某些情况下,Eclipse python 调试器可能不可靠。例如,当单步执行一个耗费大量内存的 Python 程序时,我发现在某个点之后调试器无法响应。整个进程挂起 100% cpu 负载。

我听过来自开发人员的(未经证实的)报告,当发生这种情况时,它实际上可能不是挂起而是非常慢,例如通常需要一微秒的步骤可能需要五分钟。

我已经用常规的 eclipse 调试器(例如,当你调试 as->python run 时)和 pydev 网络调试器观察到了这一点。事情停止工作的时间点似乎很随意,但可以重现。我正在调试纯数字函数,因此没有明显的套接字或 tcp 事件可能会破坏网络调试器。然而,对于给定的工作站和任务,故障发生的时间点似乎非常一致。

如果我使用 debug as->python run 进行调试,我得到的效果几乎完全相同,如果我使用 pydev 的网络调试器('import pydevd;pydevd.settrace()')可能会出现这种情况 - 其中一个失败,另一个也是可能会失败。

如果我正常运行脚本(没有调试器),它会在没有任何挂起的情况下执行。此外,如果我用 old-skool 内联断点('import pdb;pdb.set_trace()')替换 eclipse 调试器,一切正常。 Pdb 几乎永远不会出错,但有时我根本无法使用它,例如当我调试从 Excel 调用的 python 函数时 - 因为没有控制台存在。

我注意到这种故障似乎从未发生在普通程序中,因此我初步断定故障可能与内存有关。

所以 - 是否有人知道可能导致这种不可靠性的原因。我是否可以对调试器或环境进行任何调整,以使调试器更可靠地工作?

仅供引用,使用最新的 Eclipse 和 Pydev 在 Windows XP 32 位上运行 Python 2.4.4。 Psyco(JIT 编译器)不可用。

最佳答案

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

关于python - 如何使 Eclipse Python 调试器更可靠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3043597/

相关文章:

java - JCE 与项目一起部署,而不是 JDK 更新

database - 如何在 Windows 中使用的 Eclipse 中设置 Prolog Interpreter 路径?

visual-studio - 在 Visual Studio 的调试器中跳出循环

eclipse - 在 Eclipse 中,如何在 Maven 管理的依赖项中搜索类?

visual-studio - VS10 调试器错误 : Test host process exited unexpectedly

c++ - 为什么我得到 "Fatal error LNK1120: 1 unresolved externals"

python - 使用 pygrib 一次访问许多 grib 消息

python - 新的 Google ReCAPTCHA 与 django-recaptcha

python - Numpy 掩码数组 - 指示缺失值

python - 最长的 k 个连续字符串