Wednesday, January 25, 2017

PHPStorm Xdebug Error Code 206

Short version: if stepping stops working in PHPStorm with Xdebug, and your Xdebug error log reports error 206 (see below), try deleting your watches.

I was happily coding away yesterday evening on our site LentillasSi (found a few uninterrupted hours... tough to do lately!), interspersed with tracing sessions where I checked and contemplated every line of code. This is a habit I picked up after reading (and rereading, and rereading) Steve Maguire's excellent "Writing Sold Code" (which I now see has a 2nd edition).

Then, disaster... the debugger stopped working. I could "break at first line", I could set a break point and hit it, the code ran fine without the debugger... but I could not step - the script would stop dead when I tried. Windows 10 anniversary edition, PHPStorm 2016.3.2, php_xdebug-2.4.1-7.0-vc14.dll, and XAMPP. This is not the first time this has happened to me, and I remember that my problems disappeared without me knowing why before, so I was determined to write down everything I did till I found a solutions.

After looking for the answer online, I did several things:
  • Reboot
  • Changed the debugging port (both in PHPStorm and Xdebug)
  • Reinstalled Xdebug (the wizard suggesting a new version, 2.5.0-7.0-vc14)
  • Add the extra lines from this Valk's answer on stackoverflow (previously, I only had zend_extension, xdebug.remote_enable, xdebug.remote_host, and xdebug.remote_port set), adjusting the error log path for my machine.

Once I restarted Apache and tried again, in the Xdebug log file, I found
response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="" command="eval" transaction_id="22" status="break" reason="ok">

At first, I was confused (reason "ok"?!? wtf?), but then, for some reason, "eval" made me think of watches. I deleted all my watches (duh! Without first writing down what they were), and the debugger started working.


Anonymous said...

Thanks for posting this. An invalid watch in my debugger had me totally confused until I stumbled across your post.

Estragon said...

Worked for ma too ! Thanks