在修补这个问题的答案时,我发现当从其中调用时,debug_backtrace()
它不会超出注册到的函数register_shutdown_function()
。
这在 PHP 文档的评论中提到,说明:register_shutdown_function()
您可能会想到从关闭函数内部调用 debug_backtrace 或 debug_print_backtrace 来跟踪发生致命错误的位置。不幸的是,这些函数在关闭函数中不起作用。
解释得更详细一点,对此答案状态的评论:
不工作。关闭功能在堆栈展开后发生。没有要转储的堆栈信息。
有什么办法可以规避这种情况,强制 PHP 保留堆栈跟踪,直到进程完全终止,还是由于 PHP 内部机制我们应该接受它作为给定的?