Пошаговое руководство. Как выполнить Xdebug по устранению неполадок подключения к IDE клиента
ПРЕДПОСЫЛКИ
Использование Xdebug с PHP и Komodo IDE и Eclipse PDT.
Xdebug установлен на сервере и работает правильно. Это подтверждается тем, что команды кода Xdebug работают так, как ожидалось, когда они вставлены в файлы PHP на сервере.
ПРОБЛЕМА
Подключение к рабочей станции клиента не работает, и трудно определить, почему, поскольку он терпит неудачу с несколькими IDE.
Вопрос
Было бы неплохо иметь пошаговый контрольный список для устранения неполадок, когда вы знаете, что Xdebug установлен и работает на сервере, но клиент не подключается.
Может кто-нибудь помочь добавить к этому, чтобы составить исчерпывающий контрольный список устранения неполадок?
В частности, существует ли какой-либо способ, чтобы обеспечить сетевой трафик до клиента и правильно отформатирован в том, как IDE ожидает увидеть данные?
ЗАДАЧА
Цель состоит в том, чтобы найти какое-то решение, когда человек на клиентской машине может хотя бы подтвердить, что что-то доходит до клиента, без необходимости определять, является ли IDE проблемой, поскольку IDE - это еще один уровень сложности, который может представлять проблемы.
Ответы
Ответ 1
Это то, что я определенно хочу включить в документацию Xdebug. Я думаю, что было бы лучше, если бы многие люди сотрудничали в этом, поэтому я создал файл в репозитории gdeub xdebug.org(https://github.com/derickr/xdebug.org/blob/master/html/docs/tutorials/troubleshooting.rest), чтобы собрать подсказки. Не стесняйтесь развиваться и расширяться!
На стороне Xdebug в будущей версии (2.2) он уже выгружает в файле xdebug.remote_log несколько дополнительных диагностических средств, например, пытался ли он подключиться и было ли соединение принято или отклонено.
Ответ 2
Вы можете использовать утилиту debugclient, чтобы определить, может ли клиент получать соединения Xdebug, как вы можете прочитать в Документация Xdebug:
Прежде чем вы начнете свой script, вам нужно сообщить своему клиенту, что он могут получать отладочные соединения, пожалуйста, обратитесь к документации конкретный клиент о том, как это сделать. Чтобы использовать связанный клиент просто запустите его после компиляции и установки. Вы можете запустить его запуск "debugclient". Если вы хотите использовать команду GDB для отладки ваши скрипты, убедитесь, что вы используете debugclient в комплекте с Xdebug 1.3, поскольку тот, который связан с Xdebug 2, работает только с набором команд DBGp. Когда запускается debugclient, он отобразит следующую информацию и затем ожидает завершения соединения сервером отладки:
Xdebug Simple DBGp client (0.10.0)
Copyright 2002-2007 by Derick Rethans.
- libedit support: enabled
Waiting for debug server to connect.
После установления соединения выводится вывод сервера отладки:
Connect
<?xml version="1.0" encoding="iso-8859-1"?>
<init xmlns="urn:debugger_protocol_v1"
xmlns:xdebug="http://xdebug.org/dbgp/xdebug"
fileuri="file:///home/httpd/www.xdebug.org/html/docs/index.php"
language="PHP"
protocol_version="1.0"
appid="13202"
idekey="derick">
<engine version="2.0.0RC4-dev"><![CDATA[Xdebug]]></engine>
<author><![CDATA[Derick Rethans]]></author>
<url><![CDATA[http://xdebug.org]]></url>
<copyright><![CDATA[Copyright (c) 2002-2007 by Derick Rethans]]></copyright>
</init>
(cmd)
Дополнительную информацию о протоколе инициализации Xdebug 2 можно найти здесь.
Дополнительная ссылка: Как проверить установку xdebug.
К сожалению, утилита debugclient предоставляется только в исходной форме, поэтому вам нужно самостоятельно создать исполняемый файл; это можно сделать либо в Linux (см. INSTALL), так и Windows (с Visual Studio - см. debugclient.dsp).
XAMPP включает скомпилированную версию в xampp/php/debugclient.exe
.
Ответ 3
Netbeans имеет очень тщательную документацию, которая также охватывает способы устранения таких проблем:
http://wiki.netbeans.org/HowToConfigureXDebug
Ответ 4
Пользователи Windows отключили брандмауэр, а затем повторите попытку.
Если это сработает, разрешите Java (TM) платформу SE бинарно через брандмауэр, затем включите ее снова.
Это будет прекрасно!
Спасибо за команды, они были очень полезны при отладке.