IntelliJ IDEA 2017.2 Help

Debug

File | Settings | Languages and Frameworks | PHP | Debug for Windows and Linux
IntelliJ IDEA | Preferences | Languages and Frameworks | PHP | Debug for macOS
Ctrl+Alt+S

settings

The page is available only when the PHP plugin is enabled. The plugin is not bundled with IntelliJ IDEA, but it can be installed from the JetBrains plugin repository as described in Installing, Updating and Uninstalling Repository Plugins and Enabling and Disabling Plugins.

Use this page to configure the behaviour of the Xdebug and Zend Debugger.

ItemDescription
Pre-configuration This area shows brief guidelines for installing a debugger, generating bookmarklets through which you will start/stop a debugging session by controlling the debugger cookie, and starting Zero-Configuration Debugging.
External Connections In this area, specify how you want IntelliJ IDEA to treat connections received from hosts and through ports that are not registered as deployment server configurations.
  • Ignore external connections through unregistered server configurations: Select this check box to have IntelliJ IDEA ignore connections received from hosts and through ports that are not registered as deployment server configurations. When this check box is selected, IntelliJ IDEA does not attempt to create a deployment server configuration automatically.
  • Break at first line in PHP scripts: Select this check box to have the debugger stop as soon as connection between it and IntelliJ IDEA is established (instead of running automatically until the first breakpoint is reached). Alternatively turn on the Run | Break at first line in PHP scripts option on the main menu.
  • Max. simultaneous connections: Use this spin box to limit the number of external connections that can be processed simultaneously.
Xdebug Use the controls in this area to configure debugging using the Xdebug tool.
  • Debug port: in this text box, specify the port for IntelliJ IDEA and the Xdebug engine to communicate through. This must be exactly the same port number as specified in the php.ini file:
    xdebug.remote_port = <port_number>
    By default, Xdebug listens on port 9000.
  • Can accept external connections: select this check box to enable IntelliJ IDEA to accept any incoming connections from Xdebug engines through the port specified in the Debug port text box.
  • Force break at the first line when no path mapping is specified: Select this check box to have the debugger stop as soon as it reaches and opens a file that is not mapped to any file in the project on the Servers page. The debugger stops at the first line of this file and Debug Tool Window. Variables shows the following error message: Cannot find a local copy of the file on server <path to the file on the server> and a link Click to set up mappings. Click the link to open the Resolve Path Mappings Problem dialog box and map the problem file to its local copy.

    When this check box cleared, the debugger does not stop upon reaching and opening an unmapped file, the file is just processed, and no error messages are displayed.

  • Force break at the first line when the script is outside the project: Select this check box to have the debugger stop at the first line as soon as it reaches and opens a file outside the current project. With this check box cleared, the debugger continues upon opening a file outside the current project.
Zend DebuggerUse the controls in this area to configure debugging using the Zend Debugger tool.
  • Debug port: In this text box, specify the port for IntelliJ IDEA and the Zend Debugger engine to communicate through. Type the port number within the tunnel specified in the php.ini file through zend_debugger.tunnel_min_port and zend_debugger.tunnel_max_port. For details, see http://files.zend.com/help/previous-version/Zend-Server-4-Community-Edition/zenddebugger.html
  • Can accept external connections: Select this check box to enable IntelliJ IDEA to accept any incoming connections from Zend Debugger engines through the port specified in the Debug port text box.
  • Settings broadcasting port: In this text box, specify the port through which the debugger settings are passed to the debugging toolbar in the browser.
  • Automatically detect IDE IP: when this check box is selected, IntelliJ IDEA detects all the host IP addresses to be sent to Zend Debugger through the debug_host parameter. All the detected IP addresses are listed in the text box to the right. Autodetection of IP address is helpful when you use Vagrant, or VirtualBox, or other virtualization tool.
    Clear the check box to block autodetection of host IP addresses and specify the required ones explicitly in the text box.
  • Ignore Z-Ray system requests: Select this check box to block requests from the Z-Ray system if they annoy you by invoking the IntelliJ IDEA debugger too often.

If starting the Zend Debugger tool fails with the message "Port is busy", specify a port number of your choice higher than 10000.

Evaluation
  • Show array and object children in Debug Console: Select this check box to show the output for arrays and objects in the Console pane, see Debug Tool Window. Console. When the check box is cleared, the output is not displayed.
  • Safe evaluation mode in value hints and Watches Frame:
    • When this check box is selected, IntelliJ IDEA checks that the expression or code fragment to be evaluated does not contain any undefined elements and informs you about any discrepancies detected.
    • If the check box is cleared, an exception appears if IntelliJ IDEA encounters any undefined elements during evaluation.
    See Evaluating Expressions for details.
  • Import namespace and use statements from evaluation context: When this check box is selected, during a debugging session IntelliJ IDEA is aware of the current namespace and of all the imported namespaces at the execution point. This information is used for calculating and showing Watches and Evaluating Expressions to ensure that IntelliJ IDEA debug evaluations are identical with the actual result of the PHP code execution.
    By default, the check box is selected.

    The result of executing the following code is true (or showing 1 in the browser):

    <?php namespace Too\Car; class Car{}; $my_car = new Car(); echo $my_car instanceof Car;
    If the Import namespace and use statements... check box is selected, evaluating the $my_car instanceof Car expression and the $my_car instanceof Car watch will also show this result:
    ps_debug_import_namespace_on.png
    However if you clear the check box, Watches and Evaluate Expression will be executed in the global context. This means that instead of $my_car instanceof Car you will need to use the fully qualified class name $my_car instanceof \Too\Car\Car.

Advanced Settings
  • Detect path mappings from deployment configurations:
    • When this check box is selected, IntelliJ IDEA attempts to retrieve path mappings for debugging in a remote environment from the server access configuration (deployment configuration).
    • When the check box is cleared, you have to specify the path mappings manually.
    See Validating the Configuration of a Debugging Engine, Web Server Debug Validation Dialog, and Configuring Remote PHP Interpreters for details.
  • Notify if debug session was finished without being stopped: Select this check box to have IntelliJ IDEA display a notification when no breakpoints are hit during Zero-Configuration debugging. This may happen if the path mappings are not configured or configured erroneously, or if you have not set any breakpoints. In the latter case, enabling selecting the Break at First Line in PHP Scripts check box in the External Connections area or turning the Run | Break at First Line in PHP Scripts option on the main menu may also help.

    If the check box is cleared, no debugging sessions is established and the PHP script is just executed without being suspended.

  • Pass required configuration options through command line (still need to enable debug extension manually): select this check box to have debugger configuration options passed through a command line.
Last modified: 29 November 2017

See Also