php 有没有办法限制xdebug生成的跟踪的深度?

iqjalb3h  于 2023-03-11  发布在  PHP
关注(0)|答案(3)|浏览(172)

这个问题说明了一切,真的。
我试图弄清楚为什么一个php应用程序会出现问题,但是xdebug抛给我的数据量太大,很难理解它的流程。
如果我可以设置跟踪的深度,使得任何超过x层的调用都被跳过,那么就更容易理解发生了什么,有什么想法可以让xdebug做到这一点,或者有没有其他工具可以使用?

nwsw7zdq

nwsw7zdq1#

Xdebug对文件的函数/执行跟踪目前不支持这一点,而且Xdebug的stacktraces也总是显示整个堆栈我刚刚为它添加了一个特性请求到问题跟踪器:http://bugs.xdebug.org/view.php?id=722
德里克

qkf9rpyu

qkf9rpyu2#

您可以通过在代码中调用functionsxdebug_start_trace()xdebug_stop_trace()来告诉Xdebug在何处开始和停止函数跟踪。
使用Xdebug 2.4或更高版本,您还可以通过调用functionxdebug_start_function_monitor( array $list_of_functions_to_monitor )来限制Xdebug仅跟踪某些函数的执行。数组包含您要跟踪的函数列表。

mspsb9vt

mspsb9vt3#

一个小把戏:
给定跟踪文件 file_name,您可以用途:

grep -E '[[:digit:]][[:space:]]{,n}->' file_name
  • n* = 2L + 1,仅显示深度为 L 的函数调用。

比如说

grep -E '[[:digit:]][[:space:]]{,3}->' file_name

会给予你最高级别的电话。

相关问题