Xdebug崩溃导致Apache崩溃

3
我的 Xdebug 在使用 Eclipse 内置浏览器时运行良好,但在使用外部浏览器时会导致 Apache 崩溃。
我使用的是 XAMPP,在 Windows 7 64 位系统上。如果需要更多信息,请告诉我。
由于某种原因,如果我在 Eclipse 中的 PHP 调试器中打开变量标签,则会导致 Apache 崩溃。所以为了避免这个问题,我在调试时不能打开变量标签。虽然这样可以避免问题,但并没有解决它。我希望能够打开这个标签页。有什么建议吗?

3
Apache 很少会在没有错误日志的情况下崩溃,所以请查看那里并查找您可以找到的内容。另外要注意:很可能存在版本不匹配问题,您可能需要重新安装其中一个三个组件,所以获取最新的所有内容也不是一个坏步骤。 - Wrikken
有时候在使用XDebug和Eclipse时,我会导致Apache崩溃(segfault),但只有在设置并启用某些监视器时才会出现这种情况。尝试禁用所有监视器,看看问题是否仍然存在。 - Darien
错误日志只有几个通知,没有错误。那么观察点是什么?它们会在php.ini或其他地方吗? - Kevin Moore
1
“Watches”是Eclipse IDE中的一种变量/表达式,它们在调试时被“监视”。 - cEz
4个回答

1

可能出现XDebug版本与您的Apache和PHP版本不匹配的情况...

如果您使用的是编译于VS.NET 2008(VC9)32位系统的Apache,并且将PHP作为模块使用,则需要使用以下版本的XDebug:32位、VC9、线程安全。

http://xdebug.org/download.php

此外,您可以尝试另一个带有XDebug的WAMP软件包(例如WampDeveloper),如果它对您也不起作用,那么很可能不是构建不匹配的问题。

我使用了这个页面http://www.xdebug.org/find-binary.php来确定要下载哪个xdebug版本,然后它就在eclipse中开始工作了。所以我相当有信心我已经下载了正确的版本。为什么它在eclipse中可以工作但在外部浏览器中却不能? - Kevin Moore

1

我可以确认t0meck所说的大部分内容。除了我已经升级到xampp-win32-1.7.7-VC9,其中包含PHP 5.38。将phpinfo()结果从那里传递到Xdebug的{{link1:custom installation analyzer}},它指定了php_xdebug-2.1.2-5.3-vc9.dll,但问题并没有完全消除。正如我在“自我笔记”页面中记录的那样,以下内容对我有效。

按照上述步骤进行后,“以...方式运行” 应该可以在第一次尝试时正常工作,但是“以...方式调试”可能会在每次尝试时导致 Apache 崩溃。这是一个让很多人严重分心的问题。使用调试视图时会暴露出一个明显的错误。视图的中央顶部有一个窗口,其中包含两个选项卡:变量视图和断点视图。通常情况下,只有当高亮显示变量视图时 Apache 才会崩溃,所以请改为高亮显示断点视图。然后,在项目上设置断点。现在,如果你是幸运儿之一,你将能够使用调试器逐步执行脚本,但是当你切换到变量视图时,它仍然可能会导致 Apache 崩溃。真是让人头疼。重复此过程,下一次您应该实际上能够看到变量,并且问题将神奇地消失,直到重新启动项目。只需重复此过程,满足成为幸运儿的荣誉吧。

1

嘿,我搞定了

Eclipse 3.6.1(因为在后续版本中,用于放置行注释的快捷键不起作用) Xampp 1.7.4 Xdebug 2.1.2

诀窍是将php从VC6更改为VC9,然后它就可以正常工作了。 顺便说一句。变量面板会导致xdebug在php VC6上崩溃。

记得获取新php的VC9版本,并且如果您将新php放在除\xampp\php之外的目录中,则在phpinfo();上,您将看到没有加载php.ini,因此只需重命名旧php(因此您可以随时从一个切换到另一个),并将新php放在与原始php相同的目录中“\xampp\php”,并复制您的php.ini(因为路径不会更改)。还要记得获取任何您一直在VC9版本中使用的其他php扩展程序,以供新php使用,并将它们放在“\xampp\php\ext”中


0
不知道这是否有帮助,我遇到了同样的问题,但它与数组深度xdebug在变量视图中的处理有关。您可以更改它。Widnow > 首选项 > PHP > 调试 > 安装的调试程序 > Xdebug > 配置,将“最大数组深度”扩大解决了我的问题。

http://bugs.xdebug.org/view.php?id=658#c1767

只需将其设置为10或更大,它就应该可以工作了


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接