XDebug не прерывает точки останова от пакета php-debug от атома

Моя проблема в том, что я нашел много других ответов, но никто не работал для меня. Код и «сервер» являются локальными. Изменить : попробовал использовать порт 9001 вместо этого, как это было предложено в некоторых ответах +, попробовал, если работал Visual Studio Code, но странно: он прерывает исключения в VS Code, но все же не на контрольных точках. Соединение, похоже, работает:

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

Моя настройка

Программного обеспечения

  • Windows 10 Pro x64
  • Порт MAMP (non pro) 81
  • атом
  • пакет php-debug
  • Расширение xdebug-2.4.1-7.0-vc14.dll
  • код, подлежащий отладке, записывается внутри рамки Laravel

Configs

Информация о PHP xdebug

( полный )

xdebug xdebug support enabled Version 2.4.1 IDE Key XDEBUG_ECLIPSE XDEBUG NOT LOADED AS ZEND EXTENSION Supported protocols Revision DBGp - Common DeBuGger Protocol $Revision: 1.145 $ Directive Local Value Master Value xdebug.auto_trace Off Off xdebug.cli_color 0 0 xdebug.collect_assignments Off Off xdebug.collect_includes On On xdebug.collect_params 0 0 xdebug.collect_return Off Off xdebug.collect_vars Off Off xdebug.coverage_enable On On xdebug.default_enable On On xdebug.dump.COOKIE no value no value xdebug.dump.ENV no value no value xdebug.dump.FILES no value no value xdebug.dump.GET no value no value xdebug.dump.POST no value no value xdebug.dump.REQUEST no value no value xdebug.dump.SERVER no value no value xdebug.dump.SESSION no value no value xdebug.dump_globals On On xdebug.dump_once On On xdebug.dump_undefined Off Off xdebug.extended_info On On xdebug.file_link_format no value no value xdebug.force_display_errors Off Off xdebug.force_error_reporting 0 0 xdebug.halt_level 0 0 xdebug.idekey no value no value xdebug.max_nesting_level 256 256 xdebug.max_stack_frames -1 -1 xdebug.overload_var_dump 2 2 xdebug.profiler_aggregate Off Off xdebug.profiler_append Off Off xdebug.profiler_enable Off Off xdebug.profiler_enable_trigger Off Off xdebug.profiler_enable_trigger_value no value no value xdebug.profiler_output_dir C:\Windows\Temp C:\Windows\Temp xdebug.profiler_output_name cachegrind.out.%p cachegrind.out.%p xdebug.remote_addr_header no value no value xdebug.remote_autostart On On xdebug.remote_connect_back On On xdebug.remote_cookie_expire_time 3600 3600 xdebug.remote_enable On On xdebug.remote_handler dbgp dbgp xdebug.remote_host 127.0.0.1 127.0.0.1 xdebug.remote_log no value no value xdebug.remote_mode req req xdebug.remote_port 9000 9000 xdebug.scream Off Off xdebug.show_error_trace Off Off xdebug.show_exception_trace Off Off xdebug.show_local_vars Off Off xdebug.show_mem_delta Off Off xdebug.trace_enable_trigger Off Off xdebug.trace_enable_trigger_value no value no value xdebug.trace_format 0 0 xdebug.trace_options 0 0 xdebug.trace_output_dir C:\Windows\Temp C:\Windows\Temp xdebug.trace_output_name trace.%c trace.%c xdebug.var_display_max_children 128 128 xdebug.var_display_max_data 512 512 xdebug.var_display_max_depth 3 3 

Часть php.ini xdebug

( полный )

 [xdebug] xdebug.remote_enable=1 xdebug.remote_host=127.0.0.1 xdebug.remote_connect_back=1 # Not safe for production servers xdebug.remote_port=9000 xdebug.remote_handler=dbgp xdebug.remote_mode=req xdebug.remote_autostart=true xdebug.idekey=xdebug.atom 

Я загрузил здесь ваш info info info – https://xdebug.org/wizard.php . И среди прочего я получил следующее сообщение: «Кажется, что Xdebug загружен только как обычный PHP-расширение. Это вызовет нечетные проблемы, см. https://xdebug.org/docs/faq#php-ext "

Q: Xdebug загружается только как расширение PHP, а не как расширение Zend.

Для того, чтобы Xdebug работал правильно, включая точки останова и т. Д., Требуется, чтобы он был загружен как расширение Zend, а не просто как обычный PHP-расширение. Некоторые инструменты установки (PEAR / PECL) иногда советуют вам использовать extension = xdebug.so для загрузки Xdebug. Это неверно. Чтобы устранить эту проблему, посмотрите в расширении строки = xdebug.so в любом из файлов INI, перечисленных в разделе «Загруженный файл конфигурации» и «Дополнительные файлы .ini» в верхнем блоке. Удалите эту строку и вернитесь к Инструкции по настройке.

Итак, вот инструкции для вашего случая:

  1. Загрузить php_xdebug-2.4.1-7.0-vc14.dll
  2. Переместите загруженный файл в C:\MAMP\bin\php\php7.0.9\ext
  3. Измените C:\MAMP\conf\php7.0.9\php.ini и добавьте строку zend_extension = C:\MAMP\bin\php\php7.0.9\ext\php_xdebug-2.4.1-7.0-vc14.dll
  4. Перезапустить веб-сервер

Также вы можете взглянуть на специальные функции «отладки», которые поставляются с расширением xdebughttps://xdebug.org/docs/all_functions

Например, вы можете использовать xdebug_break() . Он позволяет указать точки останова без использования IDE.


И одна заметка об установке Atom. На этой странице https://atom.io/packages/php-debug вы можете найти объяснение процесса настройки. Я хотел бы обратить ваше внимание на файл config.cson . Ознакомьтесь с нижеприведенным ниже фрагментом конфигурации. У вас что-то подобное в вашем проекте?

 "php-debug": { ServerPort: 9000 PathMaps: [ "remotepath;localpath" ] } 

Просто выстрел в темноте, но попытались ли вы установить точку останова в самой точке входа в вашу инфраструктуру?

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

Например, у PhpStorm есть опция отладки под названием «Перерыв на первой строке», которая решила проблему для меня.