【问题标题】:XAMPP 1.7.3, Eclipse PDT & XDebug - Debugging a PHP web page in Eclipse never stops at breakpointsXAMPP 1.7.3, Eclipse PDT & XDebug - 在 Eclipse 中调试 PHP 网页永远不会在断点处停止
【发布时间】:2011-03-31 13:12:54
【问题描述】:

我的开发 Web 服务器目前是我的本地主机 (Win XP) 上的 XAMPP 1.7.3

我刚刚使用 XDebug 设置了我的 Eclipse 3.6 PDT。 如果我将文件作为“PHP 脚本”进行调试,它可以正常工作,但在将其作为“PHP 网页”进行调试时,XDebug 会完全忽略断点。

只有在代码中手动插入 xdebug_break() 才能停止调试器。如果您想对 Eclipse 的断点使用条件,这不是很有用。

这是我的配置:

php.ini:

zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_idekey="ECLIPSE_DBGP"

phpinfo()

Zend Engine v2.3.0, Copyright (c)
1998-2009 Zend Technologies
    with Xdebug v2.0.6-dev, Copyright (c) 2002-2009, by Derick Rethans

...

xdebug xdebug support   enabled Version
2.0.6-dev

Supported protocols Revision DBGp -
Common DeBuGger Protocol    $Revision:
1.125.2.7 $ GDB - GNU Debugger protocol     $Revision: 1.87.2.1 $ PHP3 -
PHP 3 Debugger protocol     $Revision:
1.22 $

Directive   Local Value Master Value
xdebug.auto_trace   Off Off
xdebug.collect_includes On  On
xdebug.collect_params   0   0
xdebug.collect_return   Off Off
xdebug.collect_vars Off Off
xdebug.default_enable   On  On
xdebug.dump.COOKIE  no value    no value
xdebug.dump.ENV no value    no value
xdebug.dump.FILES   no value    no value
xdebug.dump.GET no value    no value
xdebug.dump.POST    no value    no value
xdebug.dump.REQUEST no value    no value
xdebug.dump.SERVER  no value    no value
xdebug.dump.SESSION no value    no value
xdebug.dump_globals On  On
xdebug.dump_once    On  On
xdebug.dump_undefined   Off Off
xdebug.extended_info    On  On
xdebug.idekey   no value    no value
xdebug.max_nesting_level    100 100
xdebug.profiler_aggregate   Off Off
xdebug.profiler_append  Off Off
xdebug.profiler_enable  Off Off
xdebug.profiler_enable_trigger  Off Off
xdebug.profiler_output_dir  C:\xampp\tmp    C:\xampp\tmp
xdebug.profiler_output_name xdebug_profile.%p   xdebug_profile.%p
xdebug.remote_autostart On  On
xdebug.remote_enable    On  On
xdebug.remote_handler   dbgp    dbgp
xdebug.remote_host  localhost   localhost
xdebug.remote_log   no value    no value
xdebug.remote_mode  req req
xdebug.remote_port  9000    9000
xdebug.show_exception_trace Off Off
xdebug.show_local_vars  Off Off
xdebug.show_mem_delta   Off Off
xdebug.trace_format 0   0
xdebug.trace_options    0   0
xdebug.trace_output_dir C:\xampp\tmp    C:\xampp\tmp
xdebug.trace_output_name    trace.%c    trace.%c
xdebug.var_display_max_children 128 128
xdebug.var_display_max_data 512 512
xdebug.var_display_max_depth    3   3

有谁知道我做错了什么?

提前致谢!

【问题讨论】:

    标签: php eclipse xampp xdebug remote-debugging


    【解决方案1】:

    Eclipse 中错误的设置路径映射是问题所在。

    附加信息: 始终使用来自 www.xdebug.org 的最新版本的 XDebug,XAMPP (2.0.6) 中的版本存在一些错误,其中变量为 <Uninitialized>。这在当前的 2.1.0 版本中得到了解决。

    【讨论】:

      【解决方案2】:

      这“可能”对一些在eclipse下在php中调试困难的人有所帮助

      配置: - 虚拟机上的 Win7 pro - Eclipse Luna luna 服务版本 2 (4.4.2),在 c 上安装了 PDT 插件: - wamp 2.5 (php 5.5.12, apache 2.4.9)

      在桌面上:

      单击 Windows 状态栏 wamp 图标(在 Eclipse 之外,位于桌面右侧)

      • 点击 PHP> PHP 设置

        勾选Xdebug远程调试/探查器/探查器启用触发器直到它出现勾选(需要尝试几次才能工作并且可能出现错误但忽略它们)

      • 点击 PHP> PHP.ini

        • 在末尾添加 xdebug.remote_port=9001
        • 保存并重新启动所有 wamp 服务

      !!!!警告!!!! 这最后一步实际上正在改变 c:/wamp/www/bin/apache/apache2.4.9/bin/php.ini 而不是 c:/wamp/www/bin/php/php5.5.12/php.ini 而是它仍然像前面描述的那样工作

      在日食中:

      窗口>首选项>PHP>PHP 可执行文件

      • 可执行路径c:/wamp/bin/php/php5.5.5.12/php.exe(已浏览)
      • SAPI:CLI

      窗口>首选项>PHP>调试

      • 检查/设置服务器设置 Zend 调试器
      • 检查/设置 CLI 设置 Xdebug

      Window>Preferences>PHP>Debug>已安装的调试器

      • Xdebug 端口 9001

      窗口>首选项>PHP>服务器

      • 调试器:Zend 调试器

      选择要调试的php文件然后运行>调试>调试配置

      • 在 mydebugconfig 前命名
      • 单击(空白页图标)添加 Web 应用程序
      • 选择要调试的文件路径
      • 选择缩略图服务器并选择默认 PHP Web 服务器
      • 单击配置并检查是否选择了 Zend Debugger
      • 选择缩略图调试器并检查服务器调试器 Xdebug
      • 单击配置并检查/设置端口为 9001 最后是同一个窗口中的调试按钮,它应该可以工作(至少在我的机器上,经过一天的环顾后还不错)

      注意:也可以在左侧 eclipse 资源管理器框架中选择文件 > 运行 > 调试 > 调试配置和之前创建的 mydebugconfig)

      供您参考文件 c:/wamp/www/bin/apache/apache2.4.9/bin/php.ini 的结尾

      ; XDEBUG Extension
      
      zend_extension = "c:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11.dll"
      ;
      [xdebug]
      xdebug.remote_enable = off
      xdebug.profiler_enable = off
      xdebug.profiler_enable_trigger = off
      xdebug.profiler_output_name = cachegrind.out.%t.%p
      xdebug.profiler_output_dir = "c:/wamp/tmp"
      xdebug.show_local_vars=0
      

      和文件c的结尾:/wamp/www/bin/apache/apache2.4.9/bin/php.ini

      ; XDEBUG Extension
      
      zend_extension = "c:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11.dll"
      ;
      [xdebug]
      xdebug.remote_enable = On
      xdebug.profiler_enable = On
      xdebug.profiler_enable_trigger = On
      xdebug.profiler_output_name = cachegrind.out.%t.%p
      xdebug.profiler_output_dir = "c:/wamp/tmp"
      xdebug.show_local_vars=0
      xdebug.remote_port=9001
      

      【讨论】:

        【解决方案3】:

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

        检查您拥有的 Eclipse 版本(包)? turns out,当您将应用程序调试为 Web Application 时,Helios 包有一些错误并且不会在断点处停止。仅当您以 PHP Script 运行时,调试才有效。这使得它对调试过程毫无用处。

        您应该考虑恢复到较旧的Galileo Package Eclipse for PHP Developers 或安装最新的Eclipse Juno(甚至是newest developer version of 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/ext 文件夹,作为常规 PHP 扩展。您可以在 Xdebug FAQ 中找到更多相关信息(寻找“Xdebug 仅作为 PHP 扩展而不是作为 Zend 扩展加载”问题的答案)。

        【讨论】:

          猜你喜欢
          • 2018-07-23
          • 1970-01-01
          • 1970-01-01
          • 2013-04-17
          • 2014-11-22
          • 2014-06-19
          • 2012-01-23
          • 2012-12-15
          • 2010-11-25
          相关资源
          最近更新 更多