Код Visual Studio (VSCode) — ошибка: процесс адаптера отладки неожиданно завершился

Я борюсь с этим сообщением об ошибке. Иногда я не могу бежать Xdebug на код Visual Studio после обновления или перезапуска редактора. Вот скриншот ошибки:

введите описание изображения здесь

Кто-нибудь может мне с этим помочь?

5

Решение

После нескольких минут, чтобы выяснить, что происходит на моей машине, я понял, как решить мою проблему.

Поскольку Xdebug работает на основе порта 9000 и я вижу на Debug Console (VSCode) есть сообщение listen EADDRINUSE :::9000я думаю, что другой порт работает на порту 9000 поэтому я проверяю, какой процесс выполняется на нем с помощью этой команды

sudo netstat -nlp | grep :9000

Команда выше покажет вам, какой процесс работает на порте 9000тогда я получу этот результат

tcp6       0      0 :::9000                 :::*                    LISTEN      14856/hhvm

HHVM был принят порт xdebug по умолчанию, поэтому мне нужно отключить его или изменить номер порта.

Подсказки:

Вы также можете использовать lsof просмотреть процесс на конкретном порту

lsof -t -i :9000
5

Другие решения

У меня была такая же проблема, когда я начал использовать VSCode. Ну, я потратил 3 часа, чтобы выяснить, в чем именно проблема, я просто посмотрел пошаговую отладку, например, какой порт используется и какие другие настройки.

Наконец-то мне повезло и я получил решения 🙂 Итак, я поделился со всеми. Вы можете проверить мои выводы и то, что вам нужно настроить, чтобы Xdebug работал с VSCode.

Установите Xdebug в VS Code для отладки вашего PHP-кода на лету. следуйте пошаговой инструкции для правильной настройки xdebug.

Gif action:

введите описание изображения здесь


Как настроить отладку PHP (xdebug) с помощью VSCode?

1. Прежде всего, установите VSCode

2. Установите PHP отладочный адаптер для кода Visual Studio

3. Установите XDebug в WAMP


  • Откройте phpinfo в браузере
  • Скопируйте код просмотра
  • Вставить в https://xdebug.org/wizard.php
  • Загрузите предложенный файл xdebug dll
  • Вставьте файл dll в текущую версию php-папки ext или
    папка zend_ext
  • Откройте phpinfo и найдите «Загруженный файл конфигурации», чтобы узнать, что
    php.ini файл wamp с помощью
  • Открыть файл php.ini & разместить код ниже

[Xdebug] zend_extension = «FULL-XDEBUG-DLL-FILE-PATH»

пример

; Zend_extension = «d: \ wamp64 \ Bin \ PHP \ php7.1.9 \ zend_ext \ php_xdebug-2.6.0beta1-7.1-vc14-x86_64.dll»

ИЛИ ЖЕ

; Zend_extension = «d: \ wamp64 \ Bin \ PHP \ php7.1.9 \ вн \ php_xdebug-2.6.0beta1-7.1-vc14-x86_64.dll»

xdebug.remote_enable=1
xdebug.remote_autostart = 1
xdebug.remote_port="9000"xdebug.profiler_enable=1
xdebug.remote_host="localhost"
xdebug.profiler_output_dir="<tmp path>";Example
;xdebug.profiler_output_dir="d:\wamp64\tmp"

4. Перезапустите сервер WAMP.

Открыть phpinfo & найти xdebug, если найден, то вы успешно установили xdebug!
Если Wamp Restart, но localhost не открывается, попробуйте изменить PORT. Может использовать PORT любым другим
приложение уже.


Как узнать, какой процесс прослушивает порт в Windows?

Настройка XDebug в VSCode


Пример JSON — launch.json

{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"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
}
]
}

5. Обновите настройки VSCode для PHP, чтобы добавить путь к исполняемому файлу PHP

"php.validate.run": "onType",
"php.validate.executablePath": "<Your-Full-PHP-Path>php.exe"

6. Сохраните и перезапустите VSCode

Откройте PHP Project Folder и попробуйте отладить код .. Если вы получаете следующую ошибку

Адаптер VS Code Debug неожиданно завершил работу

или же

Ошибка консоли кода VS -> прослушивание EADDRINUSE :: 900)

Это означает, что PORT 9000 в настоящее время использует другая программа. Возможно, у вас запущен PHPStorm Xdebug или любое другое приложение, использующее PORT 9000. Попробуйте закрыть программу PHPStorm или Other и попробуйте снова выполнить отладку.


По-прежнему получая сообщение об ошибке, затем попробуйте найти программу, использующую PORT 9000, и убить их. По-прежнему получая сообщение об ошибке, попробуйте изменить PORT в php.ini и launch.json и перезапустить wamp и VSCode.

Теперь вы можете увидеть, как XDEBUG работает в VSCode.


> #### Пример кода для тестирования

<?php

/*
|--------------------------------------------------------------------------
| PHP XDebug Code Example - VS Code
|--------------------------------------------------------------------------
|
|  Information:
|
|   VS Code         :
|     Version       :   1.19.2
|     Commit        :   490ef761b76b3f3b3832eff7a588aac891e5fe80
|     Date          :   2018-01-10T15:55:03.538Z
|     Shell         :   1.7.9
|     Renderer      :   58.0.3029.110
|     Node          :   7.9.0
|     Architecture  :   x64
|
|   Windows         :   10
|
|   WAMP Server     :   3.1.0
|       PHP         :   7.1.9
|       APACHE      :   2.4.27
|       MySQL       :   5.7.19
|
|   PHP INI PATH    :   D:\wamp64\bin\apache\apache2.4.27\bin\php.ini
|       [Xdebug]
|       zend_extension              =   "d:\wamp64\bin\php\php7.1.9\zend_ext\php_xdebug-2.6.0beta1-7.1-vc14-x86_64.dll"|       xdebug.remote_enable        =   1
|       xdebug.remote_autostart     =   1
|       xdebug.remote_port          =   "9000"|       xdebug.profiler_enable      =   1
|       xdebug.remote_host          =   "localhost"|       xdebug.profiler_output_dir  =   "d:\wamp64\tmp"|
*/// first loop
for ($i=0; $i < 10; $i++) {
echo $i;
}

echo PHP_EOL;

// second loop
for ($i = 0; $i < 20; $i++)
{
echo $i;
}

/* End of file php-test.php */
/* Location: /wamp64/www/test/php-test.php */

Спасибо 🙂

3

По вопросам рекламы [email protected]