我正在寻找一种在PHP中打印调用堆栈的方法.
如果函数刷新IO缓冲区,则为奖励积分.
我现在正在使用它:
error_log(serialize(debug_backtrace()));
Run Code Online (Sandbox Code Playgroud)
但我每次都必须对它进行反序列化.是否有更好的存储回溯的方法?
在修补这个问题的答案的同时,我发现当从内部调用时,debug_backtrace()
不会超出注册的函数register_shutdown_function()
.
这是中提到此评论为register_shutdown_function()
在PHP文档,指出:
您可以从关闭函数内部调用debug_backtrace或debug_print_backtrace,以跟踪致命错误发生的位置.不幸的是,这些功能在关机功能中不起作用.
更详细地解释一下,对这个答案状态的评论:
不行.堆栈取消后会发生关闭功能.没有要转储的堆栈信息.
有没有办法绕过这个,迫使PHP保持堆栈跟踪直到进程完全终止,或者我们应该接受它作为给定由于PHP内部?
我试着给我发电子邮件,debug_backtrace()
但它只打印出阵列.我需要将它分配给一个变量,以便var_export可以使用它.我怎样才能做到这一点?