Debug with PHP exception breakpoints
With PHP Exception Breakpoints, you can initiate the debugger at the start of the script and break on your own breakpoints or whenever an error or Exception of a given type occurs. PHP Exception breakpoints do not require configuring Xdebug for working in the Just-In-Time mode by setting
xdebug.remote_mode=jit (for Xdebug 2) or
xdebug.start_upon_error=yes (for Xdebug 3) as described in Debug in the Just-In-Time mode.
Install the PHP plugin
This functionality relies on the PHP plugin that should be installed and enabled in your IDE.
The plugin is available only in IntelliJ IDEA Ultimate.
Press Ctrl+Alt+S to open the IDE settings and select.
Switch to the Marketplace tab and use the search field to find the PHP plugin.
Click Install and restart the IDE if prompted.
Configure PHP Exception breakpoints
From the main menu, choose, or press Ctrl+Shift+F8.
In the Breakpoints dialog that opens, click .
From the list, choose PHP Exception Breakpoints.
In the Add Exception Breakpoint dialog that opens, specify the errors or exceptions on which you want the debugger to suspend.
To break on PHP error conditions, choose one of the standard types from the list, the available options are Warning, Notice, or Deprecated.
Alternatively, specify a custom Exception type. Note that E_ERROR, E_PARSE, and E_COMPILE_ERROR are not handled as they halt execution of the PHP engine.
When ready, click OK to returns you to the Breakpoints dialog.
Configure the new exception breakpoint as described in Breakpoints.
Examine the suspended program
When the debugger breaks on an error or an exception, IntelliJ IDEA sets a PHP Exception Breakpoint.
To see the breakpoint type, hover the mouse pointer over the breakpoint. The type is displayed in a popup:
The Variables pane displays a fake
Exceptionvariable which shows the exception message and the exception code:
To get more information on PHP errors, add a watch for the
error_get_last()function, see Watches. Then the details of errors will be displayed in the Watches pane: