Вздумалось мне как-то раз переустановить линёк, со всеми вытекающими из этого последствиями. Завершив все нужные для настройки системы телодвижения, я засел за Eclipse PDT, чтобы настроить отладку PHP-скриптов на удаленной машине через Xdebug. И к моему удивлению, эта минутная процедура несколько затянулась — сессия отладки в Eclipse PDT почему-то на пару минут подвисала, а затем скрипт просто выполнялся, не останавливаясь ни на первой строке, ни на брейкпоинтах. Почесав затылок, я на всякий случай еще раз проверил настройки дебаггинга в эклипсе, на удаленной машине и даже заглянул в официальный мануал Debugging using Xdebug на предмет ЧЯДНТ.

Гугление интернетов и эксперименты показали, что Eclipse, мать его за ногу, с какого-то перепугу открыл 9000-тый порт через протокол IPv6 вместо IPv4 и это при том, что Xdebug пока что умеет работать только по IPv4. Обнаружилось это посредством команды

netstat -an | grep 9000

, которая сдала IDE с потрохами:

tcp6 0 0 :::9000 :::* LISTEN

А Xdebug согласен соединяться на 9000-ый порт, только если станет так:

tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN

Чтобы принудить эклипсятину использовать четвертую версию протокола интернета и наконец обрести душевное спокойствие, нужно в конец файла eclipse.ini (лежит рядом с бинарником программы) осторожно добавить строку -Djava.net.preferIPv4Stack=true , после чего наш IDE будет согласен идти в ногу с Xdebug-ом.

И напоследок, для расслабления, отличный трек Crockett’s Theme из сериала Miami Vice (Полиция Майами)