--- title: Stepping back into debugging date: 2024-04-30 permalink: daily/2024/04/30/stepping-back-into-debugging tags: - software-development - php cta: ~ snippet: | This week, I've set up Xdebug on a new project to help with some complicated debugging. --- In PHP, we have functions like `var_dump()`, `dump()` and `dd()` that are used to debug code and print output to the screen. In Drupal, we have functions like `dpm()` and `kint()`, too. These functions are great for simple debugging but sometimes I need more, which is when I reach for a step debugger - namely, Xdebug. This is common when working in complex legacy code, where you need to be able to see a breakpoint and step through the code to see what path it takes and what the state is at each step. ## Enter Xdebug Xdebug is a tool I use fairly often and something I have configured on an individual project basis. This week, I spent some time adding it to a new project and ensured my notes and documentation still worked. I use Docker and Docker Compose on Linux, so there are slight changes compared to running PHP natively, so I wanted to make sure it still works. I've added my latest setup to my [Drupal Docker Example repository][repo] and plan to add it to my standard [Build Configs] setup for Drupal projects. If you use Docker Compose on Linux, it may be useful for you. If you haven't tried Xdebug before, I suggest giving it a try and see if improves your debugging. [build configs]: {{site.url}}/build-configs [repo]: https://github.com/opdavies/docker-example-drupal