Итак, eclipse и xdebug входят в панель, а затем мой apache-сервер умирает

Я использую windows xp x86, wamp, apache2, php 5.3 x86, eclipse php и xdebug, работающие на localhost как виртуальный хост, так и https virtualhost

Информация о версии eclipse
Eclipse для разработчиков PHP Версия: Helios Release Build id: 20100617-1415

Мне удалось каким-то образом управлять настройкой eclipse и xdebug, и все было хорошо.

Затем мне пришлось создать ветвь svn моего проекта и перенастроить apache с двумя новыми виртуальными хостами и обновить файлы хостов Windows.

Теперь, когда я запускаю режим отладки в eclipse, все умирает.

В частности, если я не установил точки останова, приложение работает нормально, за исключением проблемы, которую я пытаюсь отлаживать в первую очередь.

Если я установил точку останова, приложение остановится в точке останова, и затмение, похоже, удерживает мяч. Но теперь, когда я нажимаю кнопку «Продолжить» или перешагнуваю, или шагаю, или чихаю, eclipse говорит мне, что выполнение возобновилось, но приложение продолжает зависать, и я должен перезапустить apache.

Я подозреваю, что есть разрыв в сообщении между eclipse и xdebug, потому что мне кажется, что eclipse отправляет мою команду continue или step over, но xdebug ее не получает.

Но даже если это так, я не знаю, что с этим делать. Где я должен искать?

Обновить:
Я успешно смог отладить использование notepad ++, его плагин xdebug и, как пещерный человек, набрав в URL-адрес и XDEBUG_SESSION_START = session_name. Однако, несмотря на мою любовь к npp, его отладочный плагин довольно глючит …

Таким образом, я заметил объявление в stackoverflow для чего-то, называемого phpstorm, которое признано легким, но полнофункциональным php ide, с поддержкой родного xdebug. Демонстрация потребовала перезагрузки, чтобы заставить ее работать, и это похоже на работу с шаткой таблицей чертежей, но ей очень хорошо удалось отладить как мое маленькое тестовое приложение, так и реальное приложение, что больше, чем я могу сказать для eclipse at момент, хотя, вероятно, моя ошибка.

Вероятно, я должен был опубликовать это раньше: / Вот мой раздел phpinfo () xdebug

xdebug xdebug support enabled Version 2.1.0 Supported protocols Revision DBGp - Common DeBuGger Protocol $Revision: 1.145 $ Directive Local Value Master Value xdebug.auto_trace Off Off 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.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.idekey no value no value xdebug.manual_url http://www.php.net http://www.php.net xdebug.max_nesting_level 100 100 xdebug.overload_var_dump On On 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 Off Off xdebug.remote_connect_back Off Off xdebug.remote_cookie_expire_time 3600 3600 xdebug.remote_enable On On xdebug.remote_handler dbgp dbgp xdebug.remote_host localhost localhost xdebug.remote_log c:\xampp\apache\logs\xdebug.log c:\xampp\apache\logs\xdebug.log xdebug.remote_mode req req xdebug.remote_port 9000 9000 xdebug.scream Off Off 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_displ ay_max_children 128 128 xdebug.var_display_max_data 512 512 xdebug.var_display_max_depth 3 3 

Вот файл журнала xdebug, когда я воспроизвожу проблему

 Log opened at 2011-01-03 08:56:22 -> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///C:/xampp/htdocs/lab/zf-tutorial/public/index.php" language="PHP" protocol_version="1.0" appid="4404" idekey="ECLIPSE_DBGP"><engine version="2.1.0"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2010 by Derick Rethans]]></copyright></init> <- feature_set -i 33 -n show_hidden -v 1 -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="33" feature="show_hidden" success="1"></response> <- feature_set -i 34 -n max_depth -v 3 -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="34" feature="max_depth" success="1"></response> <- feature_set -i 35 -n max_children -v 31 -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="35" feature="max_children" success="1"></response> <- feature_get -i 36 -n encoding -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_get" transaction_id="36" feature_name="encoding" supported="1"><![CDATA[iso-8859-1]]></response> <- feature_get -i 37 -n supports_async -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_get" transaction_id="37" feature_name="supports_async" supported="1"><![CDATA[0]]></response> <- stdout -i 38 -c 1 -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="stdout" transaction_id="38" success="1"></response> <- stderr -i 39 -c 1 -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="stderr" transaction_id="39" success="0"></response> <- breakpoint_set -i 40 -t line -f file:///C:%5Cxampp%5Chtdocs%5Clab%5Czf-tutorial%5Cpublic%5Cindex.php -n 21 -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="40" id="44040001"></response> <- run -i 41 -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="run" transaction_id="41" status="break" reason="ok"><xdebug:message filename="file:///C:/xampp/htdocs/lab/zf-tutorial/public/index.php" lineno="21"></xdebug:message></response> <- stack_get -i 42 -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="stack_get" transaction_id="42"><stack where="{main}" level="0" type="file" filename="file:///C:/xampp/htdocs/lab/zf-tutorial/public/index.php" lineno="21"></stack></response> <- stack_get -i 43 -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="stack_get" transaction_id="43"><stack where="{main}" level="0" type="file" filename="file:///C:/xampp/htdocs/lab/zf-tutorial/public/index.php" lineno="21"></stack></response> <- eval -i 44 -- JHRoaXMtPmZpZWxkc1snYm9vbF9jb21wbGV0ZSdd -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="eval" transaction_id="44"><property address="92404284" type="bool"><![CDATA[-1]]></property></response> <- eval -i 45 -- JHRoaXMtPnN0YWdlLT5nZXQoJ2Jvb2xfY29tcGxldGUnKQ== -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="eval" transaction_id="45"><property address="92404284" type="bool"><![CDATA[-1]]></property></response> <- eval -i 46 -- JHRoaXMtPmZpZWxkc1snYm9vbF9jb21wbGV0ZSdd -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="eval" transaction_id="46"><property address="92404284" type="bool"><![CDATA[-1]]></property></response> <- eval -i 47 -- JHRoaXMtPnN0YWdlLT5nZXQoJ2Jvb2xfY29tcGxldGUnKQ== -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="eval" transaction_id="47"><property address="92404284" type="bool"><![CDATA[-1]]></property></response> === breakpoint reached, execution pauses. In eclipse I click "step over" <- step_over -i 48 === end of log 

Эта статья звучит многообещающе.

И XDebug, и Eclipse (в своем php dev env) могут использовать протокол DBGp по внешнему виду. Основываясь на этой статье, вы можете заставить все работать, возившись с файлом .htaccess от Apache или с помощью прокси-сервера DBGp (что бы это ни было). Дополнительная информация в статье.

Я подозреваю, что и XDebug, и Eclipse подключаются к одной и той же сессии отладки PHP, наступая друг на друга, вызывая Hilarity для обеспечения.

Это или «неопределенное поведение». Так или иначе.

wooooooooooooo

https://bugs.eclipse.org/bugs/show_bug.cgi?id=312951#c8

Создание нового рабочего пространства позволяет мне успешно отлаживать.

Прямо сейчас мое лучшее предположение о том, что вызвало это, состоит из двух проектов в одном рабочем пространстве с разными vhosts в одном и том же ip.

Поэтому я не собираюсь этого делать больше.

Это может показаться глупым вопросом, и я извиняюсь, если да, но вы создали новый PHP-сервер внутри своей конфигурации отладки Eclipse, которая сопоставляется с вашим новым виртуальным хостом?

Каждый раз, когда я создаю новый vhost, я обычно создаю совершенно новую конфигурацию Debug и новый PHP-сервер в этой конфигурации, которая сопоставляется с vhost, поэтому я могу легко выбрать его из Debug Configs, который выпадал при запуске нового сеанса.

Для кого-то интересно, я делаю это, перейдя в Run -> «Debug Configurations …», выберите «PHP Web-страница» в меню слева, нажмите «new +» (или повторите, если у меня уже есть), а затем под Server, где говорится «PHP Server», я нажимаю «Создать», а затем набираю URL-адрес vhost для корня документа.

Прямо сейчас мое лучшее предположение о том, что вызвало это, состоит из двух проектов в одном рабочем пространстве с разными vhosts в одном и том же ip.

Ну, я также отлаживаю два проекта, в том же рабочем пространстве Eclipse с разными VHosts на одном IP-адресе и использую apache.

И я не испытываю твоих проблем.

Хотя мой apache и прочее находятся в эмуляции vmware debian, а мой Eclipse находится в WinXP.

Лучший

Раффаэль