我通常处理 Magento 故障排除并发现跟踪提供了很好的信息,但往往很短。
我不知道 Magento 的内部结构,但我相信它与 PHPdebug_backtrace
功能有关?
如果是这种情况,我该如何更改输出跟踪的大小,以解决我能够重现的错误?是否有要更改的高级设置(例如使用ini_set
)或者这是否需要编辑核心代码?
我通常处理 Magento 故障排除并发现跟踪提供了很好的信息,但往往很短。
我不知道 Magento 的内部结构,但我相信它与 PHPdebug_backtrace
功能有关?
如果是这种情况,我该如何更改输出跟踪的大小,以解决我能够重现的错误?是否有要更改的高级设置(例如使用ini_set
)或者这是否需要编辑核心代码?
如果您要询问第二个论点,那么不幸的是,没有简单的方法可以做到这一点。debug_backtrace
函数在app/code/core/Mage/Core/functions.php::mageDebugBacktrace
没有参数的情况下被调用。因此,更改它的唯一方法是将完整文件复制到app/code/local/Mage/Core/functions.php
并根据需要进行修改。然而,这种做法有一些负面影响,不鼓励使用。
简短版:您不能使用 xDebug 之类的东西,它会非常慢。
记录的异常不包含代码的完整“跟踪”。开箱即用的 PHP 不会跟踪此信息。debug_backtrace
返回的输出是调用堆栈。调用堆栈返回达到当前深度所需的函数/方法调用。例如
function a(){
b();
c();
}
function c()
{
d();
}
function d()
{
//DEBUG HERE
}
//start program
a();
如果你在//DEBUG HERE
函数上有一个调用堆栈,你会得到
a();
c();
d();
该函数b()
不会被包含在内,因为它已经被调用过。 这是 PHP 能够返回的唯一信息。完整的回溯将包含大量信息,并且性能将停止。
如果你想要一个完整的功能跟踪,你需要安装一个像 xDebug 这样的扩展,并使用它的跟踪功能。但是,这不适合生产商店,要跟踪的信息太多。