我可以在 xdebug 探查器上手动说在特定位置开始分析吗?

2022-08-30 12:14:34

我已经在我的 XAMPP 安装中启用了 xDebug 分析,它工作正常。

现在我想问一下,是否有办法从我的源代码中说出何时开始使用xDebug进行分析。

更具体地说,我想创建一个WordPress插件,我想说,从插件的起点开始分析,并在插件的终点停止分析。

这可能吗?

注意:以上只是一个例子。它可以是 CakePHP 插件,也可以是我可能需要分析的新 PHP 类。


答案 1

编辑:根据如何在运行时打开/关闭Xdebug分析?您实际上无法在运行时启用/禁用(例如,每个函数调用)。

您可以有选择地为每个请求启用探查器,这通常更好。要实现此行为,请设置以下设置:

对于 xdebug 3(升级指南):

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 中传递此参数。有关更多信息,请查看

  1. http://xdebug.org/docs/profiler#starting
  2. http://xdebug.org/docs/all_settings#profiler_enable_trigger

答案 2

正如Laith所说,你不能选择什么时候想让xDebug开始分析,什么时候想让他停止。但是,另一个xDebug功能提供了这种灵活性:跟踪。

分析和跟踪并不完全相同,但是,如果您最终到达此处,则跟踪可能适合您的需求。

若要开始跟踪,必须使用以下函数:xdebug_start_trace()

若要停止跟踪,必须使用以下函数:xdebug_stop_trace()

有很多设置可用于更改跟踪的行为:

http://xdebug.org/docs/execution_trace


推荐