Debugging in the Just-In-Time Mode
PhpStorm supports the use of Xdebug in the Just-In-Time (JIT) mode so it is not attached to your code all the time
but connects to PhpStorm only when an error occurs or an exception is thrown. The Xdebug operation mode is toggled
through the xdebug.remote_mode setting, which is by default set to req
.
The mode is available both for debugging command-line scripts and for web server debugging.
In this section:
Configuring Xdebug for using in the Just-In-Time mode
Depending on whether you are going to debug command-line scripts or use a Web server, use one of the scenarios below.
Command-line scripts
For debugging command-line scripts, specify the custom-dxdebug.remote_mode=jit
directive as an additional configuration option:
- Open the Settings / Preferences Dialog by pressing Ctrl+Alt+S or by choosing for Windows and Linux or for OS X, and click PHP under Languages&Frameworks.
-
From the PHP executable drop-down list, choose the relevant PHP interpreter and click
next to it.
-
In the CLI Interpreters dialog box that opens, click
next to the Configuration options text box in the Additional area.
-
In the Configuration options dialog that opens, click
to add a new entry, then type
-dxdebug.remote_mode
in the Configuration directive field andjit
in the Value field.When you click OK, you return to the CLI Interpreters dialog box where the Configuration options text box shows
-dxdebug.remote_mode=jit
.
Web server debugging
- On the main menu, choose .
-
In the Web Server Debug Validation Dialog that opens, choose the Web server to validate the debugger on.
-
Choose Local Web Server or Shared Folder
to check a debugger associated with a local Web server.
- Path to Create Validation Script: In this field, specify the absolute path to the folder under the server document root where the validation script will be created. For Web servers of the type Inplace, the folder is under the project root.
-
URL to Validation Script:
In this text box, type the URL address of the folder where the validation script will be created.
If the project root is mapped to a folder accessible through
http
, you can specify the project root or any other folder under it.
-
Choose Remote Web Server
to check a debugger associated with a remote server.
- Path to Create Validation Script: In this field, specify the absolute path to the folder under the server document root where the validation script will be created. The folder must be accessible through http.
-
Deployment Server:
In this field, specify the server access configuration of the type Local Server
or Remote Server to access the target environment.
For details see Configuring Synchronization with a Web Server.
Choose a configuration from the drop-down list or click the Browse button
in the Deployment dialog.
-
Choose Local Web Server or Shared Folder
to check a debugger associated with a local Web server.
- Click Validate to have PhpStorm create a validation script, deploy it to the target remote environment, and run it there.
-
Open the
php.ini
file which is reported as loaded and associated with Xdebug. -
In the
php.ini
file, find the[XDebug]
section and change the value of thexdebug.remote_mode
from the defaultreq
tojit
.
Debugging session
Set the breakpoints and launch a debugging session, as described in Initiating a Debugging Session or Debugging with a PHP Web Application Debug Configuration.
Xdebug connects to PhpStorm in the following two cases:
- When an error occurs. In this case, Xdebug stops on the line right after the error condition. The reason for that is that PhpStorm first has to run the erroneous code before it knows something is wrong.
-
When an exception is thrown. If the exception is handled, Xdebug breaks at the first line of the
catch
block if there is one, or at thefinally
block.