Zend Studio 13 Debugging Improvements

Zend Studio 13 includes a new set of very useful enhancements that make configuring and monitoring PHP debugger settings simpler. Most of the new features described in this article were developed to reduce the amount of possible pitfalls that users may encounter while setting up the debugger configuration in IDE.

Smart detection of debugger settings

When creating a new PHP server configuration, Zend Studio will detect and set the type of a debugger that is configured in the server’s PHP stack. It applies to all local types of servers and is also possible for a remote Zend Server after enabling the Web API. What’s more, when creating Zend Debugger connection settings, Zend Studio will automatically set up the list of client IPs that are the “best match” for a particular server location (e.g. if the server is running locally, only the localhost address is set). After providing all of the required settings you can also perform the enhanced connection test that will help you to easily detect and remove the redundant client IP addresses:


Enhanced debugger settings validation

Zend Debugger configuration is now validated using additional checks to warn you when:

  • Client IPs are invalid or inaccessible on your workstation – this information is very useful if some of your workstation IPs have been changed and may no longer be valid to start debug sessions.
  • Client IPs are not in the list of allowed hosts on the server (enabled Web API required) – this is very useful in case you forgot to set up your client IP on the allowed hosts list on the server side debugger configuration.
  • Client IPs are redundant – this is useful to identify the IPs that despite being valid may not be accepted by the debugger engine on the server side (possible side effect is that response time from debugger may be significantly higher as the engine tries to connect with inappropriate client IP). When getting this warning message, you can simply perform the connection test to detect and remove the redundant IPs.

Aforementioned messages are reported as warnings in the”Debugger” tab of PHP server wizard/editor:

2In addition, you will also see the appropriate message dialog every time you try to start a debug session that might be affected with those potential problems:


Smaller goodies that make the difference

Below you can find the description of some smaller but still noteworthy enhancements that can make the difference in the overall debugger experience in Zend Studio.

Zend Debugger tunneling settings in “Debugger” tab

Tunneling settings have been merged and added to PHP server wizard/editor “Debugger” tab to clarify and simplify the usage of tunneling:


Updating client IPs in Zend Debugger general settings

As the automatic list of client IPs for Zend Debugger global settings (Window -> Preferences -> PHP -> Debug -> Debuggers -> Zend Debugger) is created once after Zend Studio starts, an additional “Reload” button has been added to allow you to refresh the list of client IPs. In case the list is manual, you can use the “Configure” button to easily set up your client IPs using the list of detected IPs.


Default support for XDebug remote (JIT) sessions

XDebug support for remote sessions (triggered outside the IDE) is now enabled as a default for localhost requests. In case of other incoming requests, you will be informed about it via appropriate message dialog:


Default support for XDebug multi-sessions

Support for handling multi-session requests is now enabled as a default. With this setting turned on, you can easily handle multiple sessions (e.g. AJAX) in the Debug view:


Indicating process’s debugger type

While debugging PHP apps, the additional label with the debugger type name is shown right after the process name in the Debug view. That helps to quickly identify the debugger that runs underneath the particular PHP Server or Executable:

8Happy PHPing!