Xdebug Update: October 2021
In this monthly update I explain what happened with Xdebug development in this past month. These will be published on the first Tuesday after the 5th of each month.
Patreon and GitHub supporters will get it earlier, around the first of each month.
You can become a patron or support me through GitHub Sponsors. I am currently 58% towards my $2,000 per month goal. If you are leading a team or company, then it is also possible to support Xdebug through a subscription.
In October, I worked on Xdebug for about 30 hours, with funding being around 25 hours. Please become a supporter of Xdebug through Patreon or GitHub.
Xdebug 3.1
Xdebug 3.1.0 and 3.1.1 have now been released!
Xdebug 3.1 adds support for PHP 8.1, as well as a set of new features. These new features include: file compression for trace and profiling files, the new xdebug_notify() and xdebug_connect_to_client() functions, an API through xdebug_info() to request which modes are enabled, and the possibility to set the Xdebug Cloud ID through Xdebug's triggers, including browser extensions.
The full list of changes can be found on the updates page on the Xdebug website.
Unfortunately Xdebug 3.1.0 introduced some bugs in the thread-safe version, which is most notably used on Windows. After some back and forth with Christoph Becker, the PHP on Windows maintainer, we managed to track down the problem and fix it. This resulted with some other fixes in the Xdebug 3.1.1 release.
Since then, users found a few more minor issues which will result in 3.1.2, to be released early in November.
Xdebug Cloud
To help with funding my work on Xdebug, I have a paid-for-service, called Xdebug Cloud.
Xdebug Cloud is the Proxy As A Service platform to allow for debugging in more scenarios, where it is hard, or impossible, to have Xdebug make a connection to the IDE. It is continuing to operate as Beta release.
One of the new features in Xdebug 3.1 makes it possible to allow for each team member in a team that uses a (remote) shared development server to have their own debugging session between the development server and their own IDE, without interfering with other developers.
Packages start at £49/month, and revenue will be used to further the development of Xdebug.
If you want to be kept up to date with Xdebug Cloud, please sign up to the mailinglist, which I will use to send out an update not more than once a month.
Xdebug Videos
I have published one new video on how to use Xdebug on my YouTube channel.
This video is of a series to explain how to use Xdebug and the new features introduced in Xdebug 3.1:
-
Xdebug 3.1: Improvements to Step Debugging: Explains how to use and configure the new file compression support for profiling and trace files.
I will continue to create more videos, and also convert some of them to tutorials.
If you would like to suggest a topic for a 5 to 15 minute long video, feel free to request them through this Google Form.
Business Supporter Scheme and Funding
In October, no new business supporters signed up.
If you, or your company, would also like to support Xdebug, head over to the support page!
Besides business support, I also maintain a Patreon page and a profile on GitHub sponsors.
Life Line
I got myself a sheet of Sun-safe filter material, and McGuyvered a pop-up filter for my lens.
The first attempt sort of worked, but I didn't get the filter 100% straight. Luckily I have more material.
But this is sort of my first attempt, and a few sunspots are clearly visible on the right of the image.
Warning: Never look at the Sun without protection!
Go with 2026.02
Improve error messages for `timelib_duration_create_from_iso8601strin…
Fix overflow in the nanosecond carry in `timelib_duration_div_static()`
Consistently use `stdint.h` types for `timelib_duration`
Created 2 recyclings
Created a home entrance and a main entrance
Go with 2026.01
Merged pull request #176
Fix #175: Update Makefile to get the latest version from iana.org site
Merged pull request #184
Added the 'timelib_duration_create_from_iso8601string' implementation
Document the 'static' variants, and correct the original functions' c…
Add overflow detection to `timelib_duration_mul_static()`
Simplify `timelib_duration_sub_static()` for differently-signed inputs
Fix `timelib_duration_add_static()` for opposite signs
Handle normalization of `timelib_duration`’s `negative` in `timelib_d…
Updated a restaurant
I walked 9.8km in 1h41m58s
Use `timelib_duration_null_abs_internal()` in `timelib_duration_mul_s…
Implement 'timelib_duration_sub' and friends
Rename second argument for 'timelib_duration_sub_abs_internal' and do…
Rename timelib_duration_*_internal files to include 'abs' as it opera…
Add definitions for 'static' allocated durations to public header file
Rename 'd' to 'd1' in tests


Shortlink
This article has a short URL available: https://drck.me/xdebug-21oct-gjw