6

已经尝试了很长一段时间以使其正常工作,但没有运气。基本上,我有带有 PHP 开发工具 (PDT) 的 Eclipse (3.3),以及 PDT XDebug 插件以及 SimpleTest eclipse 插件。

我想做的是调试 SimpleTest 单元测试调用的代码。SimpleTest 清楚地可以看到 XDebug,因为我可以生成代码覆盖率报告,但它不会在断点处停止。

编辑:应该添加 XDebug 和断点在 Eclipse 中工作正常,而不是在 SimpleTest 调用时

有人设置成功了吗?周围有很多乱七八糟的文档,而有用的信息却很少。

谢谢!

4

2 回答 2

3

确保您的 PHP 版本具有正确的 XDebug 版本,并将其添加到 php.ini 文件的最开头:

[xdebug]
zend_extension=full_path_to_your_xdebug.so 
xdebug.default_enable=On
xdebug.remote_enable=On
xdebug.remote_handler="dbgp"
xdebug.remote_host="localhost"
xdebug.remote_port=9000

然后执行 an apachectl gracefuland aphpinfo并确保 XDebug 存在且处于活动状态。如果是,一切都应该正常。我知道它对我有用。

编辑:我在阅读整个问题之前回答了。

在运行脚本之前,您应该设置环境变量;

export XDEBUG_CONFIG="idekey=session_name"

可能可以从 php 执行此操作,但我无法对此进行测试:

putenv('XDEBUG_CONFIG="idekey=session_name"');

您应该确保您使用的 php 二进制文件已加载 XDebug 扩展,在我的系统上 apache 模块有它,但默认的 CLI 解释器没有,但我故意运行不同的版本。

这里有一些很好的文档

于 2009-05-24T23:12:15.507 回答
1

要进一步了解 Kris 的回答,如果您在同一台服务器上管理生产和开发环境,最好将您的 xdebug 设置降级为 aphp include或那些virtualhosts专用于devortesting环境的设置:

  • 虚拟主机的语法是

    <virtualHost ....>
    
      (...)
    
      # Xdebug ENV
      php_flag xdebug.auto_trace on
      php_flag xdebug.idekey session_name
      php_flag xdebug.profiler_enable_trigger 1
      php_flag xdebug.(...)
    
      (...)
    
于 2012-09-30T11:32:42.637 回答