Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/29: Рейтинг темы: голосов - 29, средняя оценка - 4.76
1 / 1 / 0
Регистрация: 15.04.2018
Сообщений: 16

Xdebug, VSCode и OpenServer

01.08.2021, 11:04. Показов 6448. Ответов 14

Студворк — интернет-сервис помощи студентам
Решил установить Xdebug v3 под PHP 8 TS, но он не отрабатывает адекватно отладку в VS Code, просто игнорируя точки останова, выводя результат или - что ещё лучше - ругаясь на отсутствие модуля mysqli при его использовании. Но, судя по всему Xdebug подключен и работает, потому что я вижу форматированный вывод ошибок в браузере.
Отключение Open Server перед выполнением отладки так же ничего не меняет.

Что использую:
  • Open Server 5.3.8
  • PHP 8.0 TS
  • php_xdebug-3.0.4 TS
  • Расширение VS Code PHP Debug v1.17.0
  • Расширение VS Code PHP Intelephense v1.7.1

Настройки php.ini:
Code
1
2
3
4
5
6
zend_extension = php_xdebug-3.0.4-8.0-vs16-x86_64.dll
...
[xdebug]
xdebug.mode = debug,develop
xdebug.start_with_request = yes
xdebug.idekey = "VSCODE"
Файл, генерируемый расширением PHP Debug :
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{
  // Используйте IntelliSense, чтобы узнать о возможных атрибутах.
  // Наведите указатель мыши, чтобы просмотреть описания существующих атрибутов.
  // Для получения дополнительной информации посетите: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Listen for Xdebug",
      "type": "php",
      "request": "launch",
      "port": 9003
    },
    {
      "name": "Launch currently open script",
      "type": "php",
      "request": "launch",
      "program": "${file}",
      "cwd": "${fileDirname}",
      "port": 0,   // 9003 или 9000 не меняет результат
      "runtimeArgs": ["-dxdebug.start_with_request=yes"],
      "env": {
        "XDEBUG_MODE": "debug,develop",
        "XDEBUG_CONFIG": "client_port=${port}"
      }
    },
    {
      "name": "Launch Built-in web server",
      "type": "php",
      "request": "launch",
      "runtimeArgs": ["-dxdebug.mode=debug", "-dxdebug.start_with_request=yes", "-S", "localhost:0"],
      "program": "",
      "cwd": "${workspaceRoot}",
      "port": 9003,
      "serverReadyAction": {
        "pattern": "Development Server \\(http://localhost:([0-9]+)\\) started",
        "uriFormat": "http://localhost:%s",
        "action": "openExternally"
      }
    }
  ]
}
Сам код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
//$conn = new mysqli("localhost", "root", "root", "mysql");
//$conn = mysqli_connect("localhost", "root", "root", "mysql");
 
function GetSome($var)
{
    print "yes<br/>"; //•
    return $var + 10;
}
 
$var = 1;
$var = GetSome($var); //•
 
print $var;
Сообщение об ошибке в консоли отладки от Xdebug при подключении mysqli. Изменение на mysqli_connect() приводит к такому же результату:
Code
1
2
3
4
PHP Fatal error:  Uncaught Error: Class 'mysqli' not found in C:\Program Files\OpenServer\domains\localhost\index.php:8
Stack trace:
#0 {main}
  thrown in C:\Program Files\OpenServer\domains\localhost\index.php on line 8
Миниатюры
Xdebug, VSCode и OpenServer   Xdebug, VSCode и OpenServer   Xdebug, VSCode и OpenServer  

0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.08.2021, 11:04
Ответы с готовыми решениями:

Настройка xdebug в OpenServer и NetBeans
Вроде много таких тем, но их чтение пока не сильно помогло, потому что проблемы у всех разные. Использую php_xdebug.dll, который уже...

OpenServer xdebag NetBeans IDE 8.1 xdebag ожидание подключения netbeans-xdebug
Не получается настроить не как NetBeans IDE 8.1 подружить с open server... долблюсь уже третьи день отчаился прочитал попробовал многое...

Не работает xdebug в связке openserver и phpstorm
Друзья, мучаюсь третий день. Не могу заставить phpstorm дебажить проекты. Когда запускаю на отладку проект пишет: waiting for incoming...

14
1 / 1 / 0
Регистрация: 15.04.2018
Сообщений: 16
01.08.2021, 19:06  [ТС]
Потратив весь день я пришёл к частичному решению проблемы:
• Добавить в начало скрипта xdebug_break(), после чего можно выполнять отладку по шагам в режиме Listen for Xdebug, но нужно каждый раз переключаться в браузер и прожимать F5;
• Работать на встроенной учётной записи администратора и каждый раз открывать в IDE раздел виртуального диска - иначе функция выше перестаёт работать, да и плюс сыпет ошибки записи из-за якобы отсутствия файла. Что Open Server, что XAMPP прячут виртуальный диск для других пользователей даже если они администраторы.
• Либо отключить создание виртуального жёсткого диска, для предотвращения его создания.
0
Заблокирован
01.08.2021, 20:18
Если у тебя windows на домашнем пк, ноутбуке, с которого ты пишешь на php, просто установи виртуальный сервер - программу uniform server.
0
1 / 1 / 0
Регистрация: 15.04.2018
Сообщений: 16
01.08.2021, 21:30  [ТС]
resto8, кроме того, что с оф. сайта 40мб скачивалось 15 минут, могу отметить только одно - разницы между ним и тем, что используя я, совершенно никакой. Прямо совсем.
0
 Аватар для HotReboot
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136
02.08.2021, 04:25
Никогда не понимал зачем в языках сценариев использовать дебагер. Вам что, за памятью нужно смотреть или за стеком? echo, print_r и die за глаза.
0
Эксперт .NET
 Аватар для Usaga
14084 / 9302 / 1347
Регистрация: 21.01.2016
Сообщений: 34,908
02.08.2021, 06:47
Цитата Сообщение от HotReboot Посмотреть сообщение
echo, print_r и die за глаза.
Так только [del] делает. Или в очень сложных ситуациях, когда дебаггер не доступен.
2
 Аватар для HotReboot
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136
02.08.2021, 09:54
Usaga, Профессия инженер-программист умерла. Сейчас в основном только google программисты которые взяв код не знают, что в нём творится. Поэтому им нужны умные IDE и дебагеры на скриптовые языки. Да если бы я в 90-ых использовал для Perl дебагер со мной бы собаки прекратили здороваться.
0
Эксперт .NET
 Аватар для Usaga
14084 / 9302 / 1347
Регистрация: 21.01.2016
Сообщений: 34,908
02.08.2021, 09:58
HotReboot, сложно назвать инженером-программистом персонажа для которого втыкивание в код MessageBox'ов и прочих print_r - верх крутизны отладки, а разработку он ведёт в блонкноте
0
 Аватар для HotReboot
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136
02.08.2021, 10:00
Usaga, Не передёргивайте. Я не писал, что это "вверх крутизны". Я написал, что этого вполне достаточно. А то код на 100 строк, а окружения на гигабайты и всё равно выходит тяп ляп.
1
1 / 1 / 0
Регистрация: 15.04.2018
Сообщений: 16
02.08.2021, 10:09  [ТС]
HotReboot, Ваши сообщения совершенно не по теме, так что ответ ровно такой, который заслужили. Отладка "встроенными" средствами PHP совершенно не подходят, когда проект MVVM или MVC с немаленькой кодовой базой и подтягивает большое количество сущностей. Отслеживать подобное через print'ы - вешалка.
0
 Аватар для HotReboot
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136
02.08.2021, 10:14
Ashy, Да ерунда сколько строк когда код выполняется последовательно. Это не Erlang и даже не Haskell. Это просто деградация когда уже самим думать лень.
0
Эксперт .NET
 Аватар для Usaga
14084 / 9302 / 1347
Регистрация: 21.01.2016
Сообщений: 34,908
02.08.2021, 10:16
Цитата Сообщение от HotReboot Посмотреть сообщение
А то код на 100 строк
Да без разницы на сколько строк кода тянет проект. Есть нормальный инструмент для отладки. С таким же успехом можно камнем гвозди забивать, когда их всего 10 штук. То, что можно я не оспариваю. Но то, что это адекватно и вообще как-то можно соотнести со словом "программист" я поспорю.

Добавлено через 1 минуту
Цитата Сообщение от HotReboot Посмотреть сообщение
Это просто деградация когда уже самим думать лень.
Вот именно. Вместо того, чтобы научиться нормальными инструментами пользоваться, вы предлагаете использовать говно и палки. Очень инженерный подход)
0
 Аватар для HotReboot
326 / 227 / 92
Регистрация: 22.04.2017
Сообщений: 1,136
02.08.2021, 10:27
Usaga, Вы снова передёргиваете. Я не предлагаю использовать "говно и палки.", а предлагаю изучить нормально этот простейший язык сценариев и тогда хватит всего того, что я написал выше.
0
Эксперт .NET
 Аватар для Usaga
14084 / 9302 / 1347
Регистрация: 21.01.2016
Сообщений: 34,908
02.08.2021, 10:32
HotReboot, кому хватит? Школьнику Hello World'ы пишущему? Да. Специалисту - нет. Рано или поздно всё равно придётся работать над большой кодовой базой, всё равно появится потребность в нормальных инструментах (IDE и отладчики) для продуктивной работы, а не "абы-как". Так почему человек, у которого уже есть всё это, будет фигнёй заниматься, а не просто бряку в коде воткнёт и получит нормальное представление о стеке и всех локальных (и не очень) переменных? Вы же понимаете, насколько больше информации и контроля за исполнением мы получаем используя отладчик? Или это всё тоже не нужно?
0
1 / 1 / 0
Регистрация: 15.04.2018
Сообщений: 16
02.08.2021, 10:43  [ТС]
Цитата Сообщение от HotReboot Посмотреть сообщение
простейший язык
Вы развели оффтоп и последним моим ответом Вам будет: это не язык простой, а порог входа минимальный; если Вы решили, что любому человеку будет достаточно инструментов, заложенных ещё в 2000'ых (а принты появились в PHP4), когда есть активно применяемые удобные, быстрые и понятные альтернативы, то конкретно Вы в данный момент не правы. Вчера разобравшись хотя бы с частью проблемы и начав отладку на Listen for Xdebug - всё заиграло новыми красками и пошло куда быстрее, заодно выявив ещё несколько косяков при неверном наследовании.

Цитата Сообщение от HotReboot Посмотреть сообщение
код выполняется последовательно
Ext-async, amphp и иные фреймворки передают Вам пламенный привет. PHP это уже далеко не только "запусти-выполни-умри".
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.08.2021, 10:43
Помогаю со студенческими работами здесь

VSCode
В консоли выводит иероглифы, как это по фиксить?

VSCode STM32
Доброго времени! Интересует Написание кода и отладка STM32 в VSCode, (windows &amp; linux). В данный момент сижу на винде. Пробовал...

Настройка VSCode
Как убрать эти цветные полоски из редактора бесит оч сильно что не могу найти где это убирается(

Синтаксис, vscode?
win10, опенсервер и vscode. Пропускает вот такой код без кавычек при обращении к массиву $subset = $exerpt; На работе только с...

Browser tab в VSCode
Добрый вечер! В видеокурсе автор показывает как с помощью клавиш Alt+Пробел открывает поиск и находит команду добавления страницы браузера...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru