Xdebug is a debugging and productivity extension for PHP

Xdebug and provides a range of features to improve the PHP development

Step Debugging
A way to step through your code in your IDE or editor while the script is

Improvements to PHP's error reporting
An improved var_dump() function, stack traces for Notices, Warnings, Errors
and Exceptions to highlight the code path to the error

Writes every function call, with arguments and invocation location to disk.
Optionally also includes every variable assignment and return value for
each function.

Allows you, with the help of visualisation tools, to analyse the
performance of your PHP application and find bottlenecks.

Code Coverage Analysis
To show which parts of your code base are executed when running unit tests
with PHP Unit.

License: BSD style

Latest releases

Version Release Download
3.1.0beta2 2021-09-07 xdebug-3.1.0beta2.tgz
3.1.0beta1 2021-09-06 xdebug-3.1.0beta1.tgz
3.0.4 2021-04-08 xdebug-3.0.4.tgz
3.0.3 2021-02-22 xdebug-3.0.3.tgz
3.0.2 2021-01-04 xdebug-3.0.2.tgz
Show all releases


Version Message
3.1.0beta2 Tue, Sep 07, 2021 - Xdebug 3.1.0beta2

= Fixed bugs:
- This is a packaging fix only release. The package missed a file that were needed
for building on PHP 7.2 and 8.1.
3.1.0beta1 Sun, Sep 05, 2021 - Xdebug 3.1.0beta1

+ New features:

- Fixed issue #1738: Add xdebug_notify() function to send data through DBGp to a debugging client
- Fixed issue #1853: Enable profile compression for cachegrind files
- Fixed issue #1898: API for querying the currently active mode(s)
- Fixed issue #1972: Add support for PHP 8.1 Fibers
- Fixed issue #1974: Add gzip support to trace files
- Fixed issue #1997: Added xdebug_connect_to_client() to attempt a debugging connect while running code
- Fixed issue #2001: Add 'xdebug.use_compression' setting to turn on/off compression for profiling files
- Fixed issue #2013: Support PHP 8.1

+ Improvements:

- Fixed issue #1472: Add assignments to computer readable trace format
- Fixed issue #1890: Add connected client and protocol features to diagnostic page
- Fixed issue #1933: Allow for cloud ID to be set through the trigger
- Fixed issue #1969: Provide breakpoint ID / info in DBGp run command responses
- Fixed issue #1976: Switch debug session cookie to Lax, and remove expiry time
- Fixed issue #1980: PHP 8.1: Mark enum classes as "enum"
- Fixed issue #1986: Add support for multiple trigger values
- Fixed issue #1996: Add support for Closure visualisation in traces, debugging, and Xdebug's var_dump
- Fixed issue #1999: Add "readonly" facet to PHP 8.1 readonly properties

= Fixed bugs:

- Fixed issue #1938: Branches in traits aren’t marked as executed
- Fixed issue #1948: Do not redirect warning and error messages to PHP's error log if an Xdebug log is active
- Fixed issue #1949: private properties for internal classes can't be fetched for debugging
- Fixed issue #1963: php exit code = -1073741819 when xdebug.mode = off (Windows Thread Safe Only)
- Fixed issue #1970: xdebug_get_function_stack with unnamed (internal) parameters have wrong index
- Fixed issue #1978: Xdebug's log messages are cut off at 512 bytes
- Fixed issue #1989: Profiling does not output correct class when parent keyword is used
- Fixed issue #1992: Code Coverage with filter produces Segmentation fault on xdebug_stop_code_coverage()
- Fixed issue #1993: eval-ing broken code causes stepping to break
- Fixed issue #1998: Double facet attribute generated for enums that are stored in properties
- Fixed issue #2004: Figure out what "XDEBUG_SHOW_FNAME_TODO" define is for
- Fixed issue #2008: Using the XDEBUG_SESSION cookie could bypass shared-secret checks
- Fixed issue #2009: xdebug_stop_code_coverage's argument has type mismatch
- Fixed issue #2011: Closures as protected properties have double facet XML attribute

+ Documentation

- Fixed issue #1537: Add links to documentation to various different "features" after wizard has run
3.0.4 Thu, Apr 08, 2021 - Xdebug 3.0.4

= Fixed bugs:

- Fixed issue #1802: Improve xdebug.org home page
- Fixed issue #1944: tracing is started without trigger, when profiler is also enabled
- Fixed issue #1947: xdebug_info() settings section does not show the modes that are overridden by XDEBUG_MODE
- Fixed issue #1950: Assignment trace with ASSIGN_OBJ_REF crashes
- Fixed issue #1954: Calling xdebug_start_trace without mode including tracing results in a fatal error
3.0.3 Mon, Feb 22, 2021 - Xdebug 3.0.3

= Fixed bugs:

- Fixed issue #1930: No local variables with trigger and xdebug_break()
- Fixed issue #1931: xdebug_info() output misses configuration settings if phpinfo() has been called
- Fixed issue #1932: One line in multi-line string concatenation is not covered
- Fixed issue #1940: Wrong type used for showing GC Stats reports
3.0.2 Mon, Jan 04, 2021 - Xdebug 3.0.2

= Fixed bugs:

- Fixed issue #1907: Empty exception message when setting the $message property to a stringable object
- Fixed issue #1910: Code coverage misses constructor property promotion code
- Fixed issue #1914: Compillation failure on OpenBSD
- Fixed issue #1915: Debugger should only start with XDEBUG_SESSION and not XDEBUG_PROFILE
- Fixed issue #1918: Warn if PHP's Garbage Collection is disabled in gc_stats mode
- Fixed issue #1919: Crash when enabling filter without the right mode active
- Fixed issue #1921: Xdebug does not start step debugging if start_with_request=trigger
- Fixed issue #1922: Code coverage misses array assignment lines
- Fixed issue #1924: Deprecated INI settings displayed in phpinfo()
- Fixed issue #1925: xdebug.start_with_request and start_upon_error display inconsistent values
- Fixed issue #1926: Add Xdebug mode's source to xdebug_info() output
- Fixed issue #1927: Crash when calling xdebug_stop_trace without a trace in progress
- Fixed issue #1928: xdebug_stop_gcstats() can also return false
Show complete changelog