Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

visual studio code PHP debugging not working

I have installed VS Code and the PHP debugger.

I am using xampp.

I tried running the code (2) ways (listen and launch).

Listen just sits there while Launch shows spawn php ENOENT in the debug console.

This is my launch.json.

    {     "version": "0.2.0",     "configurations": [          {             "name": "Listen for XDebug",             "type": "php",             "request": "launch",             "port": 9000         },         {             "name": "Launch currently open script",             "type": "php",             "request": "launch",             "program": "${file}",             "cwd": "${fileDirname}",             "port": 9000         }     ] } 

What am I doing wrong?

like image 659
GaryK4 Avatar asked May 04 '17 12:05

GaryK4


People also ask

Why PHP is not working in VS Code?

Go to File->Preferences->settings->User settings tab->extensions->from the drop down select php->on the right pane under PHP › Validate: Executable Path select edit in settings. json. Found this solution from php not found visual studio. Thanks!

Does Visual Studio Code work with PHP?

Visual Studio Code is a great editor for PHP development. You get features like syntax highlighting and bracket matching, IntelliSense (code completion), and snippets out of the box and you can add more functionality through community-created VS Code extensions.


2 Answers

Made it just now:

  1. We have OS Windows with Microsoft Visual Code and we have installed 'PHP Debug' module https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-debug#overview Steps to make it working already wroten here, but I'll write again:

  2. Install XDebug. Online Wizard https://xdebug.org/wizard.php helps you, just post here phpinfo() data. Save in phpinfo.php this:

    <?php phpinfo(); ?> 

then open in browser localhost/phpinfo.php, copy everything you see (Ctrl+A then Ctrl+C) to wizard. It shows you obtained info and steps to do: enter image description here

  1. Open shown in instruction php.ini (there are always many php.ini - apache folder has one php.ini, php has php.ini and phpForApache.ini. But phpinfo makes it clear showing which one is really used)

    2.1. and configure it with xdebug.remote_enable = 1 and xdebug.remote_autostart = 1. My working example:

    [XDebug] zend_extension = "c:\wamp64\bin\php\php7.1.9\ext\php_xdebug-2.6.0beta1-7.1-vc14-x86_64.dll"     xdebug.stopOnEntry = true xdebug.profiler_enable = off xdebug.profiler_enable_trigger = Off xdebug.profiler_output_name = cachegrind.out.%t.%p xdebug.profiler_output_dir ="c:/wamp64/tmp" xdebug.show_local_vars=0 ;xdebug.profiler_output_name = "cachegrind.out.%t-%s" xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_handler = "dbgp" xdebug.remote_host = "127.0.0.1" xdebug.remote_log = "C:\wamp64\tmp\xdebug.txt" xdebug.remote_port = 9000 xdebug.trace_output_dir = "C:\wamp64\tmp" xdebug.remote_cookie_expire_time = 36000 
  2. Restart Apache2 webserver.

Also:

For some reason I first got xdebug working on Netbeans for testing, and only then I found option xdebug.remote_autostart = 1 in manual that made it working in VS Code also.

If you are unsure about XDebug installation, check phpinfo page for "with Xdebug" words and check logs/apache_errors.log for "failed loading php_xdebug" (incorrect DDL downloaded). Then check with any other IDE.

Good regards!

like image 76
Eluny Avatar answered Sep 22 '22 04:09

Eluny


For anyone looking answer today, for me helped changing in php.ini section [XDebug] to this:

xdebug.mode = debug xdebug.start_with_request = yes zend_extension = "C:\xampp\php\ext\php_xdebug.dll" xdebug.stopOnEntry = true xdebug.profiler_enable = off xdebug.profiler_enable_trigger = Off xdebug.profiler_output_name = cachegrind.out.%t.%p xdebug.output_dir ="c:\xampp\tmp" xdebug.show_local_vars=0 xdebug.remote_handler = "dbgp" xdebug.client_host = "127.0.0.1" xdebug.log = "C:\xampp\tmp\xdebug.txt" xdebug.client_port = 9000 xdebug.remote_cookie_expire_time = 36000 

I used the settings from post of @Eluny, but with some newer version of the XDebug the properties names changed. On documentation page you can find info about changes

like image 36
Gadziu Avatar answered Sep 21 '22 04:09

Gadziu