debug_backtrace()对于生产环境中的严重使用是否安全?

use*_*729 3 php debug-backtrace

它的功能非常强大,我担心它的稳定性和性能.

你怎么看?

UPDATE

我正在做的是这样的:

    $old_dir = getcwd();
    chdir( dirname($included_file) );
    include ( $included_file );
    chdir( $old_dir );
Run Code Online (Sandbox Code Playgroud)

基本上它只是这样include ( $included_file );,但在内部$included_file它找不到3.php与它本身位于同一目录中,所以我手动设置cwd并且它工作.但是如果我找到它无法找到的原因会很好至于为什么debug_backtrace需要,因为3.php它被另一个包含func,因为相对路径不起作用,它必须debug_backtrace用来获取包含文件路径,最后使用如下所述的绝对路径.

重现并不容易,因为上面的代码是在一个方法的上下文中,而且还有更多......如果没有其他人遇到过这种问题我想停在这里,无论如何,成本只是额外的3线,没什么大不了的.

Pek*_*ica 5

debug_backtrace 在我的经验中相对昂贵,所以你应该小心它不会在循环中使用(例如,在捕获警告或通知并每次执行回溯的自定义错误处理程序中).

对于任何类型的错误记录,我认为它非常宝贵,因为它只会被调用一次,绝对不是性能问题.在错误报告中包含回溯肯定总是好的.

我不明白为什么这个函数的稳定性会有任何特定问题(即调用它导致另一次崩溃),我从来没有听说过任何问题.当我使用对象作为没有定义方法的函数参数时,我可以看到的唯一"问题"是用户贡献注释中的这个注释_toString.

当然,你永远不应该向最终用户输出回溯的结果 - 这是不言而喻的.