【发布时间】:2011-12-26 01:16:12
【问题描述】:
我已经在我的 XAMPP 安装中启用了 xDebug 分析,它工作正常。
现在我想问一下,是否有办法从我的源代码中说明何时开始使用 xDebug 进行分析。
更具体地说,我想创建一个WordPress插件,我想说,从插件的起点开始分析,在插件的终点停止分析。
这可能吗?
注意:以上只是一个例子。它可以是我可能需要配置的 CakePHP 插件或新的 PHP 类
【问题讨论】:
我已经在我的 XAMPP 安装中启用了 xDebug 分析,它工作正常。
现在我想问一下,是否有办法从我的源代码中说明何时开始使用 xDebug 进行分析。
更具体地说,我想创建一个WordPress插件,我想说,从插件的起点开始分析,在插件的终点停止分析。
这可能吗?
注意:以上只是一个例子。它可以是我可能需要配置的 CakePHP 插件或新的 PHP 类
【问题讨论】:
编辑:根据How to Turn On/Off Xdebug Profiling at Runtime?,您实际上无法在运行时启用/禁用(例如每个函数调用)。
您可以根据请求选择性地启用分析器,这通常会更好。 要实现此行为,请设置以下设置:
对于 xdebug 3 (Upgrade Guide):
xdebug.mode = profile;
xdebug.start_with_request = trigger;
对于 xdebug 2:
xdebug.profiler_enable_trigger=1
xdebug.profiler_enable=0
请注意,我们禁用分析器并仅启用触发器。 从您的浏览器传递 XDEBUG_PROFILE=1
http://example.com/file.php?XDEBUG_PROFILE=1
您也可以在 POST 或 COOKIE 中传递此参数。欲了解更多信息检查
【讨论】:
正如 Laith 所说,您无法选择希望 xDebug 何时开始分析以及何时停止。但是,另一个 xDebug 功能提供了这种灵活性:跟踪。
分析和跟踪并不完全相同,但是,如果您最终来到这里,那么跟踪可能会适合您的需要。
要开始追踪,你必须使用这个函数:
xdebug_start_trace()
要停止追踪,你必须使用这个函数:
xdebug_stop_trace()
您可以使用很多设置来更改跟踪的行为:
【讨论】: