PHP更改调试跟踪大小/ Magento跟踪

时间:2012-12-02 18:48:15

标签: debugging magento stack-trace

我经常处理Magento的故障排除,并发现这些跟踪提供了很好的信息,但往往很短。

我不知道Magento内部,但我相信它与PHP debug_backtrace功能有关?

如果是这种情况,我怎样才能更改输出跟踪的大小以查找我能够重现的错误?是否需要更改高级别设置(例如使用ini_set),还是需要编辑核心代码?

2 个答案:

答案 0 :(得分:1)

如果你问第二个论点,那么很遗憾没有简单的方法可以做到这一点。 debug_backtrace函数在app/code/core/Mage/Core/functions.php::mageDebugBacktrace中调用,没有参数。因此,更改它的唯一方法是将完整文件复制到app/code/local/Mage/Core/functions.php并根据需要进行修改。然而,这种做法有一些负面影响,不鼓励使用。

答案 1 :(得分:1)

简短版本:你不能使用像xDebug这样的东西,它会非常慢。

记录的异常不包含代码的完整“跟踪”。开箱即用的PHP不会跟踪这些信息。 debug_backtrace返回的输出为a call stack。调用堆栈返回到达当前深度所需的函数/方法调用。例如

function a(){
    b();
    c();
}

function c()
{
    d();
}

function d()
{
    //DEBUG HERE
}

//start program
a();

如果你在//DEBUG HERE函数上有一个调用堆栈,你就会得到

a();
c();
d();

函数b()不会包含在内,因为它已被调用。 是PHP能够返回的唯一信息。完整的回溯将包含大量的信息,性能将停滞不前。

如果你想要一个完整的功能跟踪,你需要安装像xDebug这样的扩展,并使用它tracing features。但是,这不适合生产商店,只有太多的信息需要跟踪。