Xdebug Update: July 2024
In this monthly update I explain what happened with Xdebug development in the past month. These are normally published on the first Tuesday on or after the 5th of each month.
GitHub and Pro/Business supporters will get it earlier, around the first of each month.
On GitHub sponsors, I am currently 42% towards my $2,500 per month goal, which is set to allow continued maintenance of Xdebug. This is less than last month.
If you are leading a team or company, then it is also possible to support Xdebug through a subscription.
In the last month, I spend around 15 hours on Xdebug, with 21 hours funded. I also spent 6 hours on the Native Path Mapping project.
PHP 8.4
I spent some time making sure that Xdebug will be ready for PHP 8.4, once that comes out later in the year. There are always some incompatibilities, such as the new frameless calls and some deprecations.
I also did a deep dive into supporting a potential large change into the way PHP handles the exit keyword. There is a proposal to change that from a language instruction to an actual function, but this impacts Xdebug fairly significantly — it uses the instruction for path and branch analysis, and to make sure profiling files get stored on disk in full. At the moment, it is unsure whether this change will be adopted.
Beyond preparatory work for PHP 8.4, I also spend some time on improving the out-of-band socket communication support to make it easier for IDEs to use. This work will continue to be ongoing for a while.
Native Xdebug Path Mapping
I have started on the Native Xdebug Path Mapping project.
As this is a separately funded project, I don't classify the hours that I worked on this in "Xdebug Hours". I also publish a separate report on the project page.
As an exception, I am including it here:
In this first month, or rather, the last week of July, I have been working on setting up a testing framework for the parser. Previously Xdebug only had tests in PHPT form, PHP's standard for testing syntax and functions. However, this is rather more an integration test framework, as it compares the output of a script with an expected output.
For low-level features, such as testing the implementation of the parser that parses the path mapping files, PHPT tests are not suitable. Instead, the testing framework tests the return values and generated structures directly, without PHP having to be involved. The CppUTest framework that I use for this, is much more similar to PHPUnit. It is also a framework that I have used for testing timelib, the library that powers PHP and MongoDB's date/time functionality.
Beyond the testing framework, I have also made a start on the parser itself. It can currently parse the remote_prefix and local_prefix stanzas, as well as mapping lines, although it does not distinguish between directory maps, file maps, or line maps yet, nor does it apply the prefix stanzas yet.
Xdebug Videos
I have created no new videos since last month, but you can see all the previous ones on my channel.
If you have any suggestions, feel free to reach out to me on Mastodon or via email.
Business Supporter Scheme and Funding
In the last month, one new business supporter signed up:
Besides business support, I also maintain a Patreon page, a profile on GitHub sponsors, as well as an OpenCollective organisation.
If you want to contribute to specific projects, you can find those on the Projects page.
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.
Packages start at £49/month, and I have recently introduced a package for larger companies. This has a larger initial set of tokens, and discounted extra tokens.
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.
Life Line
I've finished reading This Way Up. It's about maps, that went wrong.
It's a good read, but htyerr were several chapters that were written in a novel way (as a video transcript, a series of letters), and I found distracting from the a tail content. It'll have worked better in a produced video.
No mention of @openstreetmap though :-(
Updated a bench
Created a tree; Updated 3 humps and a waste_basket
The Early Cormorant Catches the Eel
Sorry, not the best photo! But I caught this Cormorant catching this large eel when looking for Bank Swallows, right next to Eel Pie Island in the Thames.
#Birds #BirdPhotography #BirdsOfMastodon #Photography #London
Updated an estate_agent office
I went to my nieces' birthday party yesterday.
The theme was pink, and that included all the food, mostly died with beet root.
Shock and horror this morning when doing number two. Not only was my turd dark red, it was also glittering at me. Apparently the carrot cake had edible glitter...
So now I know what's worse than glitter.
😂 ✨ 💩 🟣Long-Tailed Tit on a Branch with Lichen
I've been spending some time in random London local nature reserves.
Sitting and listening, and in fifteen minutes you spot countless species.
This one was in Ham Lands Local Nature Reserve near Teddington.
#london #BirdPhotogaphy #BirdsOfMastodon #Birds #LichenSubscribe
A Colourful Mandarin
In The Long Water in Kensington Palace Gardens, London.
Created 7 benches
Created 2 benches
Created a bench
I walked 7.3km in 2h28m39s
Added a note about a duplicate Papersmiths
I walked 4.1km in 49m02s
Fixed website
fix typo
Updated a bench
I walked 1.6km in 20m26s
I walked 1.1km in 11m49s
The Yellow Eye
A blue heron's head, with its very yellow stare-y eye.
#BirdPhotography #Photography #BirdsOfFediverse #BirdsOfMastodon #London
My little Lego box is telling me it really is quite warm outside.
Created a bicycle_parking and a crossing
I walked 3.3km in 41m56s








Shortlink
This article has a short URL available: https://drck.me/xdebug-24jul-irn