2010-08-18 85 views
1

我的本地主机(Win XP)上我的开发Web服务器目前是XAMPP 1.7.3XAMPP 1.7.3,Eclipse PDT&XDebug - 在Eclipse中调试PHP网页从不停止在断点

我只是用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 

有谁知道我做错了什么?

在此先感谢!

回答

1

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

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

0

对于所有那些,仍然与这个问题斗争,一些方便的提示。

检查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上为xdebug.dll),并将其替换为zend_extension=/full/path/to/xdebug.so(在Linux上或在Windows上为zend_extension=X:\full\path\to\xdebug.dll)。作为常规的PHP扩展,Zend扩展需要完整路径,即使它们被放入/php/ext文件夹。你可以在Xdebug FAQ找到更多信息(查找“”的答案)Xdebug仅作为PHP扩展载入,不作为Zend扩展“问题)。

1

这种“可能”是帮助一些人谁是eclipse下调试挣扎在PHP

配置: - 虚拟框 的Win7专业版 - Eclipse的红月红月服务版本2(4.4.2)与安装在C PDT插件: - WAMP 2.5(PHP 5.5.12,阿帕奇2.4.9)

在桌面上:

点击窗口状态栏图标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但它如先前

描述在Eclipse仍然工作:

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

  • 可执行路径C:/wamp/bin/php/php5.5.5.12/php 。exe文件(浏览)
  • SAPI:CLI

窗口>首选项> PHP>调试

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

窗口>首选项> PHP>调试>安装的调试器

  • Xdebug的端口9001

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

  • 调试器:Zend的调试器

选择PHP文件,以调试,然后运行>调试>调试配置

  • 给出一个名称ex mydebugconfig
  • 点击(空白页图标)添加Web应用程序
  • 的文件选择路径来调试
  • 选择缩略图服务器,选择默认的PHP Web服务器
  • 点击配置和检查的Zend调试器choosen
  • 选择缩略图调试器和检查服务器调试器Xdebug
  • 单击配置并检查/设置端口为9001 ,最后在同一窗口中调试按钮,它应该工作(至少在我的机器上,一天的环顾一切都不错)

注:也有可能选择左侧日食Explorer框架上的文件>运行>调试>调试配置,创造了以前mydebugconfig)

对于文件c您的信息末尾:/ WAMP/WWW /斌/阿帕奇/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 
相关问题