代码之家  ›  专栏  ›  技术社区  ›  j.jerrod.taylor

使用eclipse和xdebug进行调试不会超过第一行

  •  2
  • j.jerrod.taylor  · 技术社区  · 11 年前

    是的,我试过在StackOverflow和谷歌上搜索我的问题。如果你阅读整个问题,你会发现我包含了很多链接,链接到我使用这两种方法找到的以前的答案。

    在过去的一个半小时里,我一直在尝试让XDebug使用Eclipse的版本:Juno Service Release 2,但我遇到了一系列问题。我已经通过使用堆栈溢出和谷歌解决了大部分问题。

    我跟着台阶走 here 首先安装调试器。

    我确保添加了调试器作为zend_extension,如中所述 this 邮递

    以下是我的php.ini文件中的相关行

    zend_extension="/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"
    xdebug.collect_params=4
    xdebug.var_display_max_depth=999
    xdebug.dump.POST=*
    xdebug.dump.GET=*
    xdebug.show_local_vars=1
    

    我确保为MAMP附带的5.3版本的php编辑了php.ini文件。此时,调试器将启动,即使XDebug在我运行php-v时确实出现了。

    由于我仍然有问题,我像别人一样检查了日志 here 。我在日志中注意到这个错误:

    PHP Fatal error:  Class 'Model' not found in ...
    

    检查后 documentation 对于CodeIgniter的最新版本,我注意到所有模型都必须扩展CI_Model,而不是Model。

    我解决了这个问题,错误不再打印到日志中,但现在一切都不起作用了。当我尝试调试文件时,调试器不会超过第一行。

    我正在尝试将我的php应用程序作为一个php CLI应用程序进行调试。当我尝试将应用程序调试为PHP Web应用程序时,我会收到一条错误消息,上面写着:

    No tab group defined for launch configuration type org.eclipse.php.debug.core.launching.webPageLaunch
    

    之后 Googling 我遇到了问题 this 帖子表明 you might not be able to do 自从2009年第一次提出这个问题以来,我决定尝试第二个建议,并查看是否有任何更新。

    在更新了我所有的Eclipse插件之后,我仍然遇到了同样的问题。在搜索了这么多之后,我看到了 this 这家伙放弃了,尝试了NetBeans,一切都正常了。

    我是否应该将过去的1.5-2小时视为沉没成本,然后转到另一个IDE?

    3 回复  |  直到 7 年前
        1
  •  1
  •   Lucas    11 年前

    我在让XDebug与Eclipse和XAMPP一起工作时也遇到了问题。最后,我决定使用Netbeans,它的设置要顺利得多。到目前为止,我仍然在使用Netbeans进行所有的PHP开发。

        2
  •  0
  •   sakhunzai    11 年前

    您的Php CLI可能选择了错误的Php.ini文件?

    请转到终端并检查哪个ini文件是通过以下方式加载的:

    php --ini
    

    并确保其符合要求。

        3
  •  0
  •   Jose Areas    11 年前

    杰罗德·泰勒,

    在开始使用PHP、Xdebug和Eclipse时,我遇到了很多问题。我自己也考虑过更改IDE,但我喜欢这个挑战,并在网上找到了很多帮助。我会尽力为你提供一些对你有帮助的技巧。

    首先,这是我在php.ini中的参数:

    zend_extension="/usr/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"
    xdebug.remote_enable=On
    xdebug.remote_host=127.0.0.1
    xdebug.remote_port=9060
    xdebug.remote_handler="dbgp"
    xdebug.remote_autostart=On
    

    我正在使用本地机器作为远程主机。适应你的世界。此配置适用于CLI和Web调试。我真的不确定其中一些是否专门用于不同类型的调试。所以,让我们从所有这些开始。

    现在,请确保已支持xdebug。运行以下命令,看看是否存在不好的地方。

    php -i|grep xdebug
    

    不,我们去Eclipse吧。在Eclipse首选项中添加相应的PHP可执行文件,并确保调试器类型为Xdebug。此步骤可以在“首选项”中进行导航->PHP->PHP可执行文件。如果您添加了一个项目,那么您要求您提供以下信息的表单:

    Name : Choose one
    Executable Path : the_path_to_php_exe
    PHP Ini file : you can leave it blank
    SAPI type : CLI
    PHP debugger : Xdebug
    

    这一步很重要。这就是我们将如何告诉eclipse要使用的可执行文件。

    现在,让我们添加一个调试配置。我的工作区中有一个名为upload的项目,该项目上有一个index.php文件。要创建调试配置,请在选择“PHP CLI应用程序”时单击新建。它将为您添加一个新的配置表单。对于我的调试配置,我有以下信息:

    Tab PHP Script
    
    
    Run Time PHP
       Alternat PHP: (Select the PHP executable you have created above)
    PHP File : /upload/index.php
    Break Point : Break at first line is selected
    

    这些步骤应该足以解决您的问题。让我们知道情况如何。