Php 如何从致命错误中获取调用堆栈?

Php 如何从致命错误中获取调用堆栈?,php,Php,我在PHP脚本中遇到了一个致命的“调用非对象上的成员函数”错误,但我无法准确地跟踪发生这种情况的位置,或者原因。错误消息几乎毫无用处,因为它所描述的行在99.9%的时间内有效 有什么方法可以获取当前调用堆栈、跟踪此致命错误之前正在进行的调用,或者执行任何其他操作来帮助跟踪此错误吗?在前一行错误中使用此方法: var_dump(debug_trace); 我建议您在开发服务器上安装。在这种情况下,它是一个非常有价值的工具。使用调试打印回溯()-请查看我的答案以及其他各种可能性 显然,这在某种意

我在PHP脚本中遇到了一个致命的
“调用非对象上的成员函数”
错误,但我无法准确地跟踪发生这种情况的位置,或者原因。错误消息几乎毫无用处,因为它所描述的行在99.9%的时间内有效


有什么方法可以获取当前调用堆栈、跟踪此致命错误之前正在进行的调用,或者执行任何其他操作来帮助跟踪此错误吗?

在前一行错误中使用此方法:

var_dump(debug_trace);

我建议您在开发服务器上安装。在这种情况下,它是一个非常有价值的工具。

使用
调试打印回溯()
-

请查看我的答案以及其他各种可能性

显然,这在某种意义上是部分相关的,它只捕获致命错误。您可以修改该函数以捕获其他类型的错误。这方面的出发点是:

if($error['type'] == 1){
如果安装程序已经存在,此方法将覆盖Xdebug输出

问候
sakhunzai

您可以使用标记来改进输出。这似乎不适用于致命错误。您可以注册一个关闭函数,该函数在出现致命错误时运行,但此时调用堆栈已被清除,您将在调用堆栈中使用的唯一内容是您自己的关闭处理程序。