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
  • Develop Faster With FrankenPHP
  • JSON Columns and Doctrine DBAL 3 Upgrade
  • FrankenPHP 1.3: Massive Performance Improvements, Watcher Mode, Dedicated Prometheus Metrics, and More
  • Symfony's New Native Docker Support (Symfony World)
  • Preventing CORS Preflight Requests Using Content Negotiation
  • Securely Access Private Git Repositories and Composer Packages in Docker Builds
  • How to debug Xdebug... or any other weird bug in PHP
  • PHP and Symfony Apps As Standalone Binaries
  • Running Laravel Apps With FrankenPHP (Laracon EU)

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 Mercure.rocks 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 XML

Archives

Categories

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