Derick Rethans' Blog<b>Xdebug Update: August 2025</b><br><a href="https://derickrethans.nl/xdebug-update-august-2025.html" rel="nofollow noopener" target="_blank">Original Post</a><br><br><p>In this monthly update I explain what happened with Xdebug development.</p><p><a href="https://github.com/sponsors/derickr/" rel="nofollow noopener" target="_blank">GitHub</a> and <a href="https://xdebug.org/support" rel="nofollow noopener" target="_blank">Pro/Business supporters</a> will get it earlier, around the first of each month.</p><p>In the last month, I spend around 27 hours on Xdebug, with 29 hours funded.</p><p><strong>Xdebug 3.4</strong></p><p>I spend a fair amount of time trying to triage <a href="https://bugs.xdebug.org/2359" rel="nofollow noopener" target="_blank">bug #2359</a> 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.</p><p>However, I did manage to get to the bottom of <a href="https://bugs.xdebug.org/2328" rel="nofollow noopener" target="_blank">bug #2328</a>. 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.</p><p>These resource types are <a href="https://github.com/php/php-tasks/issues/6" rel="nofollow noopener" target="_blank">being phased out in PHP</a>, as they are the source of many other issues as well. But, file and stream resources have not been ported yet.</p><p>I also fixed a <a href="https://bugs.xdebug.org/2360" rel="nofollow noopener" target="_blank">bug</a> where sometimes internal PHP objects (such as <code>DateTimeInterval</code>) would cause a crash when debugging.</p><p>I will make a release in early September to get these fixes out.</p><p><strong>PHP 8.5</strong></p><p>Most of the time this month I spent on making Xdebug PHP 8.5 ready.</p><p>Last month I wrote about a <a href="https://github.com/php/php-src/pull/19377" rel="nofollow noopener" target="_blank">patch for PHP</a> that I created to introduce intermediate steps between pipe stages. With this, <a href="https://news-web.php.net/php.internals/128473" rel="nofollow noopener" target="_blank">I discovered a parser issue with PHP's implementation of pipes</a>, and especially when closures were used. Due to the precedence order, something went awry.</p><p>This has now been <a href="https://github.com/php/php-src/pull/19533" rel="nofollow noopener" target="_blank">addressed in PHP</a>, 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.</p><p>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 <code>opcache.so</code> conditionally. With PHP 8.5 this library no longer exists as Opcache is now built-in.</p><p><strong>Native Path Mapping</strong></p><p>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.</p><p><strong>Xdebug Videos</strong></p><p>I have created no new videos in the last months.</p><p>All Xdebug videos can be watched on my <a href="https://www.youtube.com/playlist?list=PLg9Kjjye-m1g_eXpdaifUqLqALLqZqKd4" rel="nofollow noopener" target="_blank">channel</a>.</p><p>If you have any suggestions, feel free to reach out to <a href="https://phpc.social/@derickr" rel="nofollow noopener" target="_blank">me on Mastodon</a> or via <a href="http://derickrethans/who.html" rel="nofollow noopener" target="_blank">email</a>.</p><p><strong>Business Supporter Scheme and Funding</strong></p><p>On GitHub sponsors, I am currently 42% towards my $2,500 per month goal, which is set to allow continued of Xdebug.</p><p>If you are leading a team or company, then it is also possible to support Xdebug through <a href="https://xdebug.org/support" rel="nofollow noopener" target="_blank">a subscription</a>.</p><p>In the last month, no new business supporters signed up.</p><p>Besides business support, I also maintain a <a href="https://www.patreon.com/derickr" rel="nofollow noopener" target="_blank">Patreon</a> page, a profile on <a href="https://github.com/sponsors/derickr" rel="nofollow noopener" target="_blank">GitHub sponsors</a>, as well as an <a href="https://opencollective.com/xdebug" rel="nofollow noopener" target="_blank">OpenCollective</a> organisation.</p><p>If you want to contribute to specific projects, you can find those on the <a href="https://xdebug.org/funding" rel="nofollow noopener" target="_blank">Projects</a> page.</p><p><strong>Xdebug Cloud</strong></p><p><a href="https://xdebug.cloud" rel="nofollow noopener" target="_blank">Xdebug Cloud</a> is the <em>Proxy As A Service</em> 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.</p><p>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.</p><p>If you want to be kept up to date with Xdebug Cloud, please sign up to the <a href="https://xdebug.cloud/newsletter" rel="nofollow noopener" target="_blank">mailing list</a>, which I will use to send out an update not more than once a month.</p>