【问题标题】:Using XDebug in UEStudio for PHP debugging在 UEStudio 中使用 XDebug 进行 PHP 调试
【发布时间】:2009-04-07 12:37:29
【问题描述】:

我刚刚下载了最新版本的 UEStudio 09,正在试用集成的 XDebug 功能。

我已经安装了 xdebug,并通过我的 php_info() 验证了这一点。我编写了一个非常基本的脚本来测试它:

1:  <?php
2:  $x = 5;
3:  $y = $x + 1;
4:  $z = 10;
5:  while ($z--) {
6:      echo $x, $y, "<br />\n";
7:  }

然后我开始调试会话并在我的输出窗口中收到此消息:

Client: Listening for connection...

我在第 4 行添加了一个断点,只是为了测试它。然后我在浏览器中使用特殊的 url 参数打开文件:

http://localhost/uetest/index.php?XDEBUG_SESSION_START=test

脚本运行正常,不会因为调试或任何事情而停止。输出是这样的:

客户:正在监听连接... 客户端:已接受连接 客户端:初始化会话 =============================== 调试引擎名称:Xdebug 调试引擎版本:2.0.3 协议版本:1.0 =============================== 客户端:会话处于活动状态 客户端命令:步入 客户端:退出调试会话 脚本完成没有错误

如果我访问http://localhost:9000/uetest/index.php,则 UEStudio 会说“已接受连接”,但从那里没有任何反应!该脚本永远不会在浏览器中完成,然后最终 UEStudio 崩溃。

有什么想法吗?

【问题讨论】:

    标签: php debugging xdebug


    【解决方案1】:

    上周我评估了 UEStudio 作为 Zend Studio 5.5 的替代品。我如下设置我的 XDebug 配置并让它工作:

    [XDebug]
    zend_extension_ts=./ext/php_xdebug.dll
    xdebug.profiler_enable=0
    xdebug.profiler_enable_trigger=1
    xdebug.profiler_output_dir=d:/
    xdebug.profiler_output_name=timestamp
    xdebug.remote_enable=1
    xdebug.remote_mode=req
    xdebug.remote_autostart=0
    xdebug.remote_port=9000
    xdebug.remote_host=localhost 
    xdebug.idekey=debug
    

    我必须在我的 php.ini 中添加几个设置才能使其正常工作。以上是生成的配置。此外,我安装了 XDebug Helper Firefox 插件以直接从 Firefox 开始调试。很方便。

    【讨论】:

      【解决方案2】:

      很多年前我使用过 xdebug,但最近我一直在使用 Zend 调试器,所以我不记得我做了什么来让 xdebug.dll 工作。但是,我确实记得,我确实需要在 php.ini 中添加一些条目。 Zend 调试器的条目是:

      对于 Linux:

      [Zend]
      zend_extension=/usr/lib/php5/20060613+lfs/ZendDebugger.so
      zend_debugger.allow_hosts=127.0.0.1
      zend_debugger.expose_remotely=always
      

      对于 Windows:

      [Zend]
      zend_extension_ts="c:/php/ext/ZendDebugger.dll"
      zend_debugger.allow_hosts=127.0.0.1
      zend_debugger.expose_remotely=always
      

      谷歌搜索“php xdebug php.ini”把我带到了这里:

      http://devzone.zend.com/article/2930-Debugging-PHP-applications-with-xdebug

      这表明:

      xdebug.remote_enable=On
      xdebug.remote_host="localhost"
      xdebug.remote_port=9000
      xdebug.remote_handler="dbgp"
      

      用于 xdebug。

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2011-06-19
        • 2012-11-18
        • 2012-04-06
        • 1970-01-01
        • 2014-05-21
        • 2010-09-12
        • 1970-01-01
        • 2020-03-23
        • 2015-07-04
        相关资源
        最近更新 更多