如何在eclipse中使用Xdebug调试magento文件

如何在eclipse中使用Xdebug调试magento文件,magento,magento-1.7,magento-1.5,magento-1.6,Magento,Magento 1.7,Magento 1.5,Magento 1.6,我是xdebug与magento一起使用的新手。当我将断点放在第一行时,它在index.php处中断并继续正常运行。但当我想测试登录功能或菜单导航时,我会将断点放在“class Mage_Page_Block_Html_Topmenu Extendes Mage_Core_Block_Template”上,但它并没有停在这里继续。那么我到底要把断点放在哪里??我需要在.phtml文件中放置点吗?我不知道我该去哪里。因此,任何人都可以帮助我调试magento。如果您只是想使用xdebug,我很抱歉

我是xdebug与magento一起使用的新手。当我将断点放在第一行时,它在index.php处中断并继续正常运行。但当我想测试登录功能或菜单导航时,我会将断点放在“class Mage_Page_Block_Html_Topmenu Extendes Mage_Core_Block_Template”上,但它并没有停在这里继续。那么我到底要把断点放在哪里??我需要在.phtml文件中放置点吗?我不知道我该去哪里。因此,任何人都可以帮助我调试magento。

如果您只是想使用xdebug,我很抱歉回答这个问题

使用xdebug不会有太大的成功,因为在我看来,使用xdebug很慢。我建议使用

Mage::log($var)
Mage::logException($var)

然后做一个

var/log/system.log上的
tail-f
或var/log/exception.log上的
tail-f

Varien\u对象
类中,可以使用类似于
Mage::log($product->debug())
的方法来减少日志输出。正如您可能知道的,在代码中要调试的位置,这可能是最佳实践


请确保您在Magento中启用了调试输出。

那么我们不能用eclipse调试Magento应用程序吗?当然可以。以防万一,Magento异常处理程序会捕获异常。但这没有什么意义,因为您永远不会单步执行框架流,而是在某个类或文件上进行调试。所以Mage::log已经足够了,速度也快得多。是的,xdebug会大大降低应用程序的速度。但它可以配置为仅在需要时使用php.ini中的
xdebug.profiler\u enable\u trigger=1
激活。我没有使用eclipse,所以我不知道它是否可以使用。它应该不会影响您在哪个文件中放置断点。Xdebug可以在执行php代码的每个文件中使用。我认为您的xdebug配置有问题,或者带有断点的代码没有执行。试着在index.php中放一个,看看它是否被触发。@SimonH如果我在index.php中放置断点,代码执行将在该点停止,并在我只按F5按钮时继续。它工作到index.php,并继续工作到mage.php。停止调试后。听起来xdebug设置正确。对于非eclipse用户:F5用于进入。如果没有异常,您应该会看到更多的文件。卸载完成后,您的浏览器会显示什么?如果我在login.phtml中放置断点,在主页加载完成后,如果我单击登录链接,它只会加载登录页面。它没有停在我被放在断点的地方。你确定你的主题正确吗?尝试将一个
die()
语句放在断点所在的位置,以便找到答案。