Xdebug успешно установлен в Windows, но не работает

#php #visual-studio-code #xdebug

Вопрос:

  1. Я загрузил dll-файл, скопировав phpinfo() выходные данные на сайт Xdebug, поэтому я думаю, что получил правильный файл.
  2. Я отредактировал свой файл php.ini и перезапустил веб-сервер Apache (я использую XAMPP).
  3. Я устанавливаю точки останова, нажимаю «Добавить конфигурацию» и запускаю отладку в коде Visual Studio.

К сожалению, точка останова не сработала. Я прошел через множество тем, учебных пособий, но это все еще не работает.

Вот как php.ini выглядит мой файл:

 [XDebug]
zend_extension = "D:xamppphpextphp_xdebug-3.0.4-8.0-vs16-x86_64.dll"
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
 

Это мой конфигурационный файл:

 {
  // 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": 9003
    },
    {
      "name": "Launch currently open script",
      "type": "php",
      "request": "launch",
      "program": "${file}",
      "cwd": "${fileDirname}",
      "port": 0,
      "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"
      }
    }
  ]
}
 

Это изображение, которое я сделал, используя xdebug_info();

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

Ваша помощь спасла мой день.

Ответ №1:

На снимке экрана показано, что у вас не включен отладчик шагов (на нем написано «Отключен»).

В вашей конфигурации говорится:

 zend_extension = "D:xamppphpextphp_xdebug-3.0.4-8.0-vs16-x86_64.dll"
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
 

Xdebug 3 больше не использует xdebug.remote_enable или xdebug.remote_autostart . В соответствии с Руководством по обновлению они были переименованы в:

 xdebug.mode=debug
xdebug.start_with_request=yes
 

Столбец «Документы» на вашем снимке экрана также содержит ссылки на документацию по этой конкретной функции.

Комментарии:

1. Спасибо. Это сработало, добавив xdebug.mode=debug и xdebug.start_with_request=yes в файл php.ini.