XAMPP 1.7.3, Eclipse PDT и XDebug - отладка веб-страницы PHP в Eclipse никогда не останавливается на точках останова - PullRequest
1 голос
/ 18 августа 2010

Мой веб-сервер разработки в настоящее время является XAMPP 1.7.3 на моем локальном хосте (Win XP).

Я только что установил свой Eclipse 3.6 PDT с XDebug ,Он работает нормально, если я отлаживаю файл как «скрипт PHP», но когда дело доходит до отладки его как «веб-страница PHP», XDebug полностью игнорирует точки останова.

Только вставленный вручную xdebug_break () внутри кода останавливает отладчик.Это не очень полезно, если вы хотите использовать условия с точками останова Eclipse.

Здесь моя конфигурация:

php.ini:

zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_idekey="ECLIPSE_DBGP"

phpinfo ()

Zend Engine v2.3.0, Copyright (c)
1998-2009 Zend Technologies
    with Xdebug v2.0.6-dev, Copyright (c) 2002-2009, by Derick Rethans

...

xdebug xdebug support   enabled Version
2.0.6-dev

Supported protocols Revision DBGp -
Common DeBuGger Protocol    $Revision:
1.125.2.7 $ GDB - GNU Debugger protocol     $Revision: 1.87.2.1 $ PHP3 -
PHP 3 Debugger protocol     $Revision:
1.22 $

Directive   Local Value Master Value
xdebug.auto_trace   Off Off
xdebug.collect_includes On  On
xdebug.collect_params   0   0
xdebug.collect_return   Off Off
xdebug.collect_vars Off Off
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.idekey   no value    no value
xdebug.max_nesting_level    100 100
xdebug.profiler_aggregate   Off Off
xdebug.profiler_append  Off Off
xdebug.profiler_enable  Off Off
xdebug.profiler_enable_trigger  Off Off
xdebug.profiler_output_dir  C:\xampp\tmp    C:\xampp\tmp
xdebug.profiler_output_name xdebug_profile.%p   xdebug_profile.%p
xdebug.remote_autostart On  On
xdebug.remote_enable    On  On
xdebug.remote_handler   dbgp    dbgp
xdebug.remote_host  localhost   localhost
xdebug.remote_log   no value    no value
xdebug.remote_mode  req req
xdebug.remote_port  9000    9000
xdebug.show_exception_trace Off Off
xdebug.show_local_vars  Off Off
xdebug.show_mem_delta   Off Off
xdebug.trace_format 0   0
xdebug.trace_options    0   0
xdebug.trace_output_dir C:\xampp\tmp    C:\xampp\tmp
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

Кто-нибудь знает, что я делаю неправильно?

Спасибо взаранее!

Ответы [ 3 ]

1 голос
/ 09 октября 2015

Это может помочь некоторым людям, которые борются с отладкой в ​​php в eclipse

Config: - Win7 pro на виртуальной коробке - Сервисная версия Eclipse Luna Luna 2 (4.4.2) с установленным плагином PDT на c: - wamp 2.5 (php 5.5.12, apache 2.4.9)

На рабочем столе:

Нажмите значок с изображением строки состояния Windows (за пределами затмения, внизу справа от рабочего стола)

  • нажмите PHP> Настройки PHP

    Установите флажок Xdebug, чтобы включить триггер удаленной отладки / профилировщика / профилировщика, пока он не будет отмечен галочкой (нужно попробовать несколько раз, прежде чем он заработает, и ошибки могут появляться, но игнорировать их)

  • нажмите PHP> PHP.ini

    • Добавить в конце xdebug.remote_port = 9001
    • Сохраните и перезапустите все службы Wamp

!!!! ВНИМАНИЕ !!!! Этот последний шаг на самом деле меняет c: /wamp/www/bin/apache/apache2.4.9/bin/php.ini, а не на c: /wamp/www/bin/php/php5.5.12/php.ini, но это все еще работает как описано ранее

В затмении:

Окно> Предпочтения> PHP> Исполняемый файл PHP

  • Путь к исполняемому файлу c: /wamp/bin/php/php5.5.5.12/php.exe (просмотрено)
  • SAPI: CLI

Window> Preferences> PHP> Debug

  • Проверка / установка настроек сервера Zend отладчик
  • Проверка / установка настроек CLI Xdebug

Окно> Настройки> PHP> Отладка> Установленный отладчик

  • Xdebug Port 9001

Окно> Настройки> PHP> Серверы

  • Отладчик: Zend Debugger

Выберите файл php для отладки, а затем «Выполнить»> «Отладка»> «Конфигурации отладки»

  • дать имя ex mydebugconfig
  • нажмите (значок пустой страницы) Добавить веб-приложение
  • выберите путь к файлу для отладки
  • выберите сервер миниатюр и выберите веб-сервер PHP по умолчанию
  • нажмите Настроить и проверьте, выбран ли Zend Debugger
  • выберите миниатюру Отладчик и отметьте Отладчик сервера Xdebug
  • нажмите Настроить и установите / установите для порта значение 9001 и, наконец, кнопка Debug в том же окне, и она должна работать (по крайней мере, на моей машине, что не так уж плохо после дня осмотра)

Примечание: также можно выбрать файл в левом фрейме обозревателя затмений> Выполнить> Отладка> Конфигурации отладки и предыдущий созданный mydebugconfig)

Для вашей информации конец файла c: /wamp/www/bin/apache/apache2.4.9/bin/php.ini

; XDEBUG Extension

zend_extension = "c:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11.dll"
;
[xdebug]
xdebug.remote_enable = off
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "c:/wamp/tmp"
xdebug.show_local_vars=0

и конец файла c: /wamp/www/bin/apache/apache2.4.9/bin/php.ini

; XDEBUG Extension

zend_extension = "c:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11.dll"
;
[xdebug]
xdebug.remote_enable = On
xdebug.profiler_enable = On
xdebug.profiler_enable_trigger = On
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "c:/wamp/tmp"
xdebug.show_local_vars=0
xdebug.remote_port=9001
1 голос
/ 22 августа 2010

Неправильно заданные пути в Eclipse были проблемой.

Дополнительная информация: Всегда используйте последнюю версию XDebug с сайта www.xdebug.org, в версии XAMPP (2.0.6) есть ошибки, в которых переменные были <Uninitialized> Это исправлено в текущей версии 2.1.0.

0 голосов
/ 16 мая 2013

Для всех тех, кто все еще борется с этой проблемой, несколько полезных советов.

Проверьте, какая версия (пакет) Eclipse у вас есть? Оказывается , что пакет Helios содержит некоторые ошибки и не останавливается на точках останова, когда вы отлаживаете приложение как Web Application. Отладка работает, только если вы запускаете ее как PHP Script. Что делает его довольно бесполезным для процесса отладки.

Вам следует либо вернуться к более старому Пакету Eclipse Galileo для разработчиков PHP , либо установить новейшую Eclipse Juno (или даже новейшую версию Eclipse Kepler для разработчиков ), который не имеет встроенной поддержки PDT, но вы можете легко добавить его к этому, используя Help > Install New Software.. (укажите на http://download.eclipse.org/tools/pdt/updates/release).

Сообщается, что эти версии могут отлаживаться как Web Application с учетом точек останова.

Кроме того, помните, что Xdebug должен запускаться как Расширение Zend для поддержки точек останова! Другими словами, удалите строку extension=xdebug.so (в Linux или xdebug.dll в Windows) из вашей php.ini и замените ее на zend_extension=/full/path/to/xdebug.so (в Linux или zend_extension=X:\full\path\to\xdebug.dll в Windows). Расширения Zend требуют полного пути, даже если они помещены в папку /php/ext, как обычные расширения PHP. Подробнее об этом вы найдете в FAQ по Xdebug (ищите ответ на вопрос " Xdebug загружается только как расширение PHP, а не как вопрос Zend Extension ").

...