如题,php如何打印程序的执行轨迹?
经测试,debug_backtrace()只能应用在函数中,打印出从程序开始一直到当前函数中的执行轨迹。
但是,如果在程序的主文件的结尾处使用debug_backtrace(),无法记录之前调用过并已经执行结束的函数。
主要的需求是要在主文件的结尾打印程序执行过程中调用过的全部函数,请问是否有实现的可能。
ps:除了自己在每个函数都添加日志的方法。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
可以考虑使用 Xdebug 来实现,有几个目录需要注意一下
一、trace_output_dir 函数调用监测信息的输出文件目录
二、profiler_output_dir 效能监测信息的输出文件目录
这个目录下的文件内容并不为人类轻易理解,所以我们还需要一个工具:wincachegrind。
① 下载安装wincachegrind
② 安装运行后,设定你的working folder(php.ini里xdebug.profiler_output_dir的值)
附:下载链接 https://sourceforge.net/proje...
三、输出的目录,文件夹须手动创建
Xhprof - PHP函数级分层性能分析工具
搜索了下,看看这个 https://segmentfault.com/q/10...
xdebug.profiler输出的信息cachegrind.out使用kcachegrind查看也可以看到PHP函数调用关系和耗时.PHP内置的一些魔术常量:
http://php.net/manual/zh/lang...
__DIR__,__FILE__,__LINE__,__FUNCTION__,__CLASS____DIR__是5.3开始加入的,等价于dirname(__FILE__).
查看xdebug扩展包含的函数:
php -r 'print_r(get_extension_funcs("xdebug"));'