断点在带有 XDebug 的 Eclipse 中不起作用


Breakpoints not working in Eclipse with XDebug

在过去的几个小时里,我一直在尝试在Eclipse中使用XDebug设置调试,但没有成功。

我的etc/php5/apache2/php.ini文件中有以下内容

[XDebug]
xdebug.remote_enable=on
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_autostart=off
zend_extension = /usr/lib/php5/20090626+lfs/xdebug.so

zend_extensions =/usr/lib...是由 XDebug 站点上的自定义安装说明提供给我的。我完全按照该页面上的设置说明进行操作 - http://xdebug.org/wizard.php

但是从我读到的内容来看,输入命令php -m应该显示XDebug两次,一次在PHP模块下,一次在Zend模块下。好吧,它出现在我两个都没有。所以似乎XDebug根本没有加载?

有人对如何解决此问题并使 XDebug 工作有任何想法吗?

您已经编辑了/etc/php5/apache2/php.ini适用于 apache 的文件。您需要编辑命令行界面选项的/etc/php5/cli/php.ini

如果你从网站传入phpinfo(),那么这个PHP当然已经通过Apache运行了。然后向导将为您提供 Apache 设置的设置。如果你从命令行传递phpinfo()输出(php -i),它会给你CLI的设置。

类似的事情发生在我身上,我第一次在 Eclipse 中设置 xdebug 时,它工作得很好,但下次我尝试它时,它并没有停止在断点处。经过大量研究,结果发现我运行了 2 个 Eclipse 实例(一个用于 Java,另一个用于 Php),这导致了调试器出现某种问题。

在关闭两个实例并首先使用 php workspace 启动 Eclipse 然后使用 java workspace 启动 Eclipse 后,xdebug 再次运行良好。我唯一的想法是,当我尝试使用它时,调试端口已经被使用了;或类似的东西。

另一个常见的问题是,您使用路由器通过互联网,并且必须在PC上转发XDEBUG PORT(通用9000)才能使XDEBUG与ECLIPSE一起工作。但是您的路由器为您的PC提供了一个动态IP,有一天您的手机在您的PC之前连接到路由器,并获得您在路由器上配置的IP地址IP转发!从路由器获取静态 IP 的解决方案。解释如下: http://webologix.com/fr/blog/xdebug-eclipse-fonctionnement-aleatoire.html