Debugging
A subprocess can be entered in the course of debugging.This section describes the procedures that are common for various types of applications and PHP frameworks.
PhpStorm provides a full range of facilities for debugging your source code:
Breakpoints in PHP .
Breakpoints in HTML and JavaScript.
Multiple simultaneous debugging sessions.
Customizable breakpoint properties: conditions, pass count, etc.
Runtime evaluation of expressions.
Support for Xdebug and Zend Debugger.
Start a debugging session
Decide which debugging engine you would like to use: Xdebug or Zend Debugger. On choosing the engine, install and configure it as described in Configuring the debugger engine.
To debug CoffeeScript, TypeScript, and Dart code, you need to generate a source map for it. This will set the correspondence between lines in your original code and in the generated JavaScript code. If no source map is generated, your breakpoints will not be recognized and processed correctly.
Depending on your debugging mode, define a run/debug configuration.
Create a breakpoint .
Launch a debugging session as described in PHP Debugging Session. Alternatively, press Shift+F9.
After you've started a debug session, the icon that marks the Debug tool window toggles to to indicate that the debug process is active.
If you want to see the list of all currently debugging applications, select Viewing Running Processes section for details.
from the main menu. Refer to theDebug
After you have configured a run configuration for your project, you can launch it in debug mode by pressing Shift+F9.
In the Debug tool window you can see the list of frames and threads with their states, variables and watches. When you select a frame, you see the variables corresponding to the selected frame.
Breakpoints
Customize breakpoint settings
To customize breakpoint settings, press Ctrl+Shift+F8. To see all breakpoints in the project (with additional settings), click More or press the same shortcut Ctrl+Shift+F8 again.
If you have any instance marked with a label, you can use it in the condition expression as well:
Do not suspend code execution
Use action breakpoints to evaluate a variable at a particular line of code without suspending code execution. To create an action breakpoint, click the gutter while pressing Shift.
Create a temporary breakpoint
To create a breakpoint that stops only once, click the left gutter while holding Shift+Alt. For more information, refer to the section Breakpoints.
Disable breakpoints
To disable a breakpoint, click the breakpoint while pressing Alt. Refer to the section Breakpoints for details.
Debugger session
Drop frame
In case you want to “go back in time” while debugging you can do it via Drop Frame action. This is a great help if you mistakenly stepped too far. This will not revert the global state of your application but at least will get you back by stack of frames.
The icon is described in the Debug tool window reference.
Run to cursor
To stop code execution at the cursor position without adding another breakpoint, click the Run to cursor icon() or press Alt+F9.
The icon is described in the toolbar reference of the Debug tool window.
Mark object
To add a colored label to an instance, press F11 or the context menu in the Variables and Watches tabs.
The next time this instance appears in Watches, Variables or Evaluate expression, you will see the label:
Evaluate expression
While in debug mode, you can evaluate any expression by pressing Alt+F8.
This tool provides code completion just as in the editor so it’s very easy to enter any expression:
If you have any instances marked with labels, code completion will offer you its names so you can evaluate them:
Refer to the section Evaluating Expressions for details.
Settings
Configuring debugger settings
To change debugger settings, click Settings menu, click .
. In theUseful debugger shortcuts
Action | Hotkey |
---|---|
Toggle breakpoint | Ctrl+F8 |
Resume program | F9 |
Step over | F8 |
Step into | F7 |
Stop | Ctrl+F2 |
View breakpoint details/all breakpoints | Ctrl+Shift+F8 |
Debug code at caret | Shift+F9 (within the main method), or Shift+Alt+F9 |