У меня проблема в том, что я нашел много других ответов, но ни один из них не помог мне. Код и «сервер» оба являются localhost. редактировать: попытался использовать порт 9001 вместо этого, как предложено в некоторых ответах + попытался, если код Visual Studio работал, но странная вещь: он ломается на исключениях в VS Code, но все еще не на точках останова.
Кажется, соединение работает:
(полный)
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
(полный)
[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
Я загрузил ваш вывод информации PHP здесь — 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» в верхнем блоке. Удалите эту строку и вернитесь к инструкциям по установке на заказ.
Итак, вот инструкция для вашего случая:
php_xdebug-2.4.1-7.0-vc14.dll
C:\MAMP\bin\php\php7.0.9\ext
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
Также вы можете взглянуть на специальный вид «отладочных» функций, которые пришли с xdebug
расширение — https://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 есть опция отладки «Break at the first line», которая решила эту проблему для меня.