XDebug/Apache/PHP/Eclipse跳过断点


XDebug / Apache / PHP / Eclipse skips breakpoints

我在使用XDebug时遇到问题。

配置如下:

  • Windows 7 64位
  • PHP 5.4.6线程安全32位
  • Apache 2.4线程安全
  • Eclipse PDT 3.0.2

问题是xdebug_break()调用不起作用,通过Eclipse输入的断点也不起作用。我可以看到扩展正在工作,因为它在phpinfo()中显示为一个模块。当我调用一个不可调用的方法时,XDebug会输出相关的错误消息。

我修改了Eclipse的web服务器路径映射,但没有成功。

这是我的php.ini配置:

zend_extension = c:/php/php_xdebug-2.2.1-5.4-vc9.dll
xdebug.remote_enable = 1
xdebug.remote_host = localhost
xdebug.remote_port = 8080
xdebug.remote_mode = req

如有任何帮助,我们将不胜感激。。。

首先检查您在eclipse中使用的PHP版本。。。。查看:窗口->首选项->PHP->PHP解释器

那里的版本应该与PHP版本匹配。。。。。

如果问题没有解决,请回复。。。。

对于那些仍在与这个问题作斗争的人,一些方便的提示。

检查您有Eclipse的哪个版本(包)?事实证明,当您将应用程序调试为Web Application时,Helios包有一些错误,并且不会在断点处停止。只有当您将调试作为PHP Script运行时,调试才能工作。这使得它对调试过程非常无用。

您应该考虑恢复到旧的Galileo Package Eclipse for PHP Developers,或者安装最新的Eclipse Juno(甚至是Eclipse Kepler的最新开发版本),它没有内置PDT支持,但您可以使用Help > Install New Software..(指向http://download.eclipse.org/tools/pdt/updates/release)轻松地将其添加到其中。

据报道,这些版本可以作为Web Application进行调试,并考虑断点。

此外,请记住,Xdebug必须作为Zend Extension运行才能支持断点!换句话说,从php.ini中删除extension=xdebug.so(在Linux上或在Windows上为xdebug.dll)行,并将其替换为zend_extension=/full/path/to/xdebug.so(在Linux或在Windows中为zend_extension=X:'full'path'to'xdebug.dll)。Zend扩展需要完整路径,即使它们作为常规PHP扩展放入/php/ext文件夹中也是如此。你可以在Xdebug常见问题解答中找到更多关于这方面的信息(寻找"Xdebug仅作为PHP扩展加载,而不是作为Zend扩展加载"问题的答案)。