Xdebug Update: February 2022
In this monthly update I explain what happened with Xdebug development in this past month. These are normally 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 46% towards my $2,500 per month goal. If you are leading a team or company, then it is also possible to support Xdebug through a subscription.
In February, I spend 26 hours on Xdebug, with 24 hours funded.
Releases and Development
As first task in February I released Xdebug 3.1.3 which addressed a bug with the debugging protocol's eval command and exceptions, an issue with the debugger generating invalid XML, and a memory leak and performance issue with tracing.
Since then I have worked on triaging and fixing a few more issues. These have currently not been merged due to changes in GitHub Action's Windows support. I expect that to be resolved by the time you read this.
Fixes include a crash while using closures and static properties, something that Symfony Cache seems to use a lot, some memory leaks, and an issue with the legacy XDEBUG_SESSION_START trigger. I expect Xdebug 3.1.4 to be released imminently.
Priorities
In the previous update I wrote about what I had in mind for this coming year. From feedback to this communique, and a highly scientific Twitter poll I've decided to prioritise the following items:
-
Creating an Xdebug Course: explaining in great detail how Xdebug works, how you use it, how you can get the most out of it, and many scenarios on how to set-up debugging in different environments. This needs to go beyond referential documentation pages, and will hence become a combined set of videos and tutorials, with examples and work-along exercises.
-
Xdebug Recorder and Player: A new feature in Xdebug which would allow for a full request to be stored in a file, including every intermediate state. Combined with a player, which would allow for replaying the request and interrogating every variable at every point during the execution of said script, through the debugging protocol and interacting with your IDE. The recorded files would be self contained, without needing access to the (original) source code. Besides "step over" it would also have a "step back", and perhaps even a slider to slide back and forwards through time.
I have started making an outline for the Course, and a prototype for the Recorder and Player.
Let me know if you have ideas about which specific topics the Course should offer.
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.
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 more video on how to use Xdebug on my YouTube channel.
-
Debugging Unit Tests with PhpStorm explains how to use PhpStorm to debug Unit Tests, following a question on Twitter.
Business Supporter Scheme and Funding
In February, no new business supporter 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
Updated a pub
Updated 2 house buildings
Updated 2 estate_agent offices
I walked 8.2km in 1h37m13s
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
I walked 7.0km in 1h37m07s
I walked 8.4km in 1h21m36s
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
I walked 9.9km in 1h46m54s
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


Shortlink
This article has a short URL available: https://drck.me/xdebug-22feb-h1y