Xdebug Update: August 2025
In this monthly update I explain what happened with Xdebug development.
GitHub and Pro/Business supporters will get it earlier, around the first of each month.
In the last month, I spend around 27 hours on Xdebug, with 29 hours funded.
Xdebug 3.4
I spend a fair amount of time trying to triage bug #2359 where Xdebug is interfering with Lazy Objects, which were introduced in PHP 8.4. However, there is no small reproducible case, and I have not managed to reproduce this myself at all.
However, I did manage to get to the bottom of bug #2328. This ended up being reference counting in PHP and resources (such as open file pointers) not being quite compatible. Instead of holding on to these resources when I keep the stack traces when an Exception occurs, I now instead ignore these.
These resource types are being phased out in PHP, as they are the source of many other issues as well. But, file and stream resources have not been ported yet.
I also fixed a bug where sometimes internal PHP objects (such as DateTimeInterval) would cause a crash when debugging.
I will make a release in early September to get these fixes out.
PHP 8.5
Most of the time this month I spent on making Xdebug PHP 8.5 ready.
Last month I wrote about a patch for PHP that I created to introduce intermediate steps between pipe stages. With this, I discovered a parser issue with PHP's implementation of pipes, and especially when closures were used. Due to the precedence order, something went awry.
This has now been addressed in PHP, and my patch to introduce intermediate steps has also been merged after adjusting it slightly. I have also merged the Xdebug side of this feature into to the master branch.
The rest of the PHP 8.5 work was mostly due to Opcache now always being enabled. This caused some churn in my test cases and CI workflows, where I would load opcache.so conditionally. With PHP 8.5 this library no longer exists as Opcache is now built-in.
Native Path Mapping
I continued investigating how to implement "skip" for native path mapping, and am planning to get this implemented in early September. It is a fair amount of work, as I need to adjust my data structures and parser rules.
Xdebug Videos
I have created no new videos in the last months.
All Xdebug videos can be watched 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
On GitHub sponsors, I am currently 42% towards my $2,500 per month goal, which is set to allow continued maintenance of Xdebug.
If you are leading a team or company, then it is also possible to support Xdebug through a subscription.
In the last month, no new business supporters 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 mailing list, which I will use to send out an update not more than once a month.
Comments
@blog Thanks Derick. (I see Omarchy now installs xdebug along with PHP)
Life Line
I'm excited about the PHP UK Conference on Friday!
I am speaking on @Xdebug, but the whole programme looks great:
https://www.phpconference.co.uk/scheduleTickets are still available, and you'll get 10% off with the code "PHPUK26".
Will I see you there?
RE: https://en.osm.town/@richardf/116086276801420468
For the UK #trains fans under us.
Missed a building outline
Added the Old Dairy House and Aston Mews buildings
More accurate Canterbury Road mapping
Put new open stretch of Canterbury Road on map
Created a bench and a crossing
Created 2 benches and a crossing; Updated 5 cushions, a post_box, and a crossing
Created a crossing; Updated a cushion
If you were wondering whether the www.php.net & downloads.php.net services weren't responding very well in the last 6 hours — thousands of requests/sec to https://www.php.net/ 's root.
The server's load was 720, didn't die, but CDN connections to it timed out.
Now there is a caching strategy in place for a selected set of resources.
Updated a bench
Created 3 benches; Updated 10 benches
Updated a bench
Updated a bus_stop
Created a bench and a waste_basket; Updated 6 bus_stops and a crossing
Created 2 waste_baskets and a recycling; Updated 2 bicycle_parkings and a recycling
Updated a fast_food, a funeral_directors shop, and 2 other objects; Confirmed a fast_food and a hairdresser shop
Created an information; Updated 3 benches and 2 waste_baskets
Updated 2 benches and a waste_basket
Updated a bench
Created a waste_basket and an information
Created a waste_basket
I hiked 18.0km in 4h1m52s
I walked 1.4km in 17m19s


Shortlink
This article has a short URL available: https://drck.me/xdebug-25aug-jks