Php – manually say on xdebug profiler to start profiling in specific place

PHPprofilingxdebug

I already have enabled xDebug profiling in my XAMPP installation and it works fine.

Now I like to ask if there is a way to say from within my source code when to start profiling with xDebug.

More specific, I'd like to create a WordPress plugin, and I'd like to say, start profiling from the start point of the plugin and stop profiling at the end point of the plugin.

Is that possible?

Note: The above is just an example. It can be a CakePHP plugin or a new PHP Class that I may need to profile

Best Answer

Edit: Per How to Turn On/Off Xdebug Profiling at Runtime? you can't actually enable/disable at runtime (for example per function call).

You can selectively enable profiler per request, which is generally better. To achieve this behaviour set those settings:

For xdebug 3 (Upgrade Guide):

xdebug.mode = profile;
xdebug.start_with_request = trigger;

For xdebug 2:

xdebug.profiler_enable_trigger=1
xdebug.profiler_enable=0

Note that we disable profiler and only enable the trigger. From your browser pass XDEBUG_PROFILE=1

http://example.com/file.php?XDEBUG_PROFILE=1

You may also pass this parameter in POST or COOKIE. For more info check

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