Eclipse PDT调试设置(XDebug/Zend)

3
我一直在努力让Eclipse调试我的CakePHP应用程序,但是遇到了很多问题。我尝试阅读了几篇教程(其中没有一篇很好)。我尝试使用Zend和XDebug。
我甚至不确定我应该如何在正确设置后使用它。
我尝试在我的PHP代码中设置断点,在文本编辑器中右键单击PHP文件,然后选择“debug php web application”,但它从未触发断点。它在Eclipse中打开了一个带有一些GET参数附加到我的常规URL的浏览器:

?debug_host=192.168.1.2%2C127.0.0.1&start_debug=1&debug_port=10000&original_url=http%3A%2F%2Flocalhost%2Fparticipants&send_sess_end=1&debug_stop=1&debug_start_session=1&debug_no_cache=1331422177353&debug_session_id=1000

在我的项目php调试属性中,有一件事我不确定的是PHP可执行文件字段。它自动设置为“none”,所以我不得不创建一个指向“/usr/bin/php”的条目。也许这不正确?

我甚至创建了一个简单的应用程序,其中只有一个php文件,里面只有几个echo语句。我也无法使调试器命中断点。

这是我的phpinfo(): https://sites.google.com/site/kylephpinfo/phpinfo.html?attredirects=0&d=1

我从来没有在生活中遇到过这么多麻烦的调试器..


你的服务器上安装并配置了调试器吗? - Phil
2个回答

6
根据您的php.ini文件,调试器扩展未加载。通常会在第一个框下方显示,类似于 with Xdebug v2.1.0, Copyright (c) 2002-2008, by Derick Rethans...
因此,您需要确保服务器的PHP ini已正确设置。找到httpd.conf所指向的php.ini文件,并编辑它以包含以下内容:
zend_extension_ts=C:\php\ext\php_xdebug-2.1.0-5.3.0.dll
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"

注意事项:

  • ts 表示线程安全,请确保你下载的调试器包也是 ts 版本。
  • 在 Linux/Mac 上,使用 .so 调试器扩展也非常相似。
  • 最简单的方法可能是设置一个像 XAMPP 这样提供兼容调试器扩展的服务器。

一旦你成功运行,并且 php.info 显示 xdebug (或 Zend Debugger) 已加载,你就准备好了。

如果你的服务器在本地机器上,最简单的方法是在 htdocs 中创建项目。这将避免调试器尝试解析断点时出现源代码查找问题,以及 PDT 尝试解析要打开的正确文件时出现问题。 (虽然有一些可以操作的路径映射设置,但这将为你省去麻烦)。

不要被 PHP 可执行文件调试(PHP Script debugger)所困惑。你需要运行远程调试(即使是在同一台机器上)。PHP Script 仅适用于简单的 PHP 脚本,直接运行(不在服务器上,类似于 CLI)。

希望这能帮助你入门! :)

更新:在 Php 5.3 之后,无需使用 zend_extension_ts,而是只需使用 zend_extension,如 Php.net 所述 http://php.net/manual/en/ini.core.php#ini.zend-extension


0
当你进行调试时,是否会打开文件的第二个副本?如果是这样,它会拉下远程版本以进行调试,您需要在那个文件中设置断点。

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