Skip to content

Kévin Dunglas

Founder of Les-Tilleuls.coop (worker-owned cooperative). Creator of API Platform, FrankenPHP, Mercure.rocks, Vulcain.rocks and of some Symfony components.

Menu
  • Talks
  • Resume
  • Sponsor me
  • Contact
Menu

How to debug Xdebug… or any other weird bug in PHP

Posted on October 11, 2024November 14, 2024 by Kévin Dunglas
My slides from AFUP’s ForumPHP 2024

What to do when the debugger has a bug? That’s the question I had to answer when my GitHub notifications went haywire because a new version of Xdebug was crashing FrankenPHP and therefore all the projects that use it.

Together, we’ll retrace the epic story of this debugging debugger and discover a method that can debug just about any bug:

  • isolate the problem
  • code a “minimal reproducer”
  • install a development environment that allows you to debug PHP and its extensions
  • use the right tools to understand what’s going on
  • make a detailed bug report
  • establish a theory
  • write a patch
  • contribute the patch to the upstream project

This method can be used to debug any problem, in any language! We’ll take advantage of this adventure to discover the inner workings of the PHP runtime engine, and its extensions, as well as some debugging tools, in particular GDB.

Related posts:

  1. PHP and Symfony Apps As Standalone Binaries
  2. Mastering the Symfony Serializer (PHP Tour)
  3. Front-end application development, Symfony-style(s)
  4. Running Laravel Apps With FrankenPHP (Laracon EU)

Leave a ReplyCancel reply

Social

  • Bluesky
  • GitHub
  • LinkedIn
  • Mastodon
  • X
  • YouTube

Links

  • API Platform
  • FrankenPHP
  • Les-Tilleuls.coop
  • Mercure.rocks
  • Vulcain.rocks

Subscribe to this blog

Top Posts & Pages

  • FrankenPHP: The Modern Php App Server, written in Go
  • FrankenPHP’s New Features: Thread Autoscaling, Mostly Static Binaries, deb and RPM Packages, Caddy 2.10…
  • JSON Columns and Doctrine DBAL 3 Upgrade
  • Develop Faster With FrankenPHP
  • FrankenPHP Is Now Officially Supported by The PHP Foundation
  • Symfony's New Native Docker Support (Symfony World)
  • PHP and Symfony Apps As Standalone Binaries
  • FrankenPHP 1.3: Massive Performance Improvements, Watcher Mode, Dedicated Prometheus Metrics, and More
  • Preventing CORS Preflight Requests Using Content Negotiation
  • Building Decentralized Web Apps with Solid and PHP

Tags

Apache API API Platform Buzz Caddy Docker Doctrine FrankenPHP Go Google GraphQL HTTP/2 Hydra hypermedia Hébergement Javascript JSON-LD Kubernetes La Coopérative des Tilleuls Les-Tilleuls.coop Lille Linux Mac Mercure Messagerie Instantanée MySQL performance PHP Punk Rock Python React REST Rock'n'Roll Schema.org Security SEO SEO Symfony Symfony Live Sécurité Ubuntu Web 2.0 webperf XHTML XML

Archives

Categories

  • DevOps (85)
    • Ubuntu (68)
  • Go (19)
  • JavaScript (46)
  • Mercure (7)
  • Opinions (91)
  • PHP (172)
    • API Platform (77)
    • FrankenPHP (11)
    • Laravel (1)
    • Symfony (97)
    • Wordpress (6)
  • Python (14)
  • Security (15)
  • SEO (25)
  • Talks (46)
© 2025 Kévin Dunglas | Powered by Minimalist Blog WordPress Theme