Почему отладчик LLDB постоянно не подключается?

Я видел много ответов на этот вопрос:

ошибка: не удалось подключиться к идентификатору процесса

как switch to GDB. Но никто не объясняет причину, почему это происходит?

Присоединение отлично работает с отладчиком GDB, но по умолчанию и рекомендуемым параметром проекта является LLDB.

Кто-нибудь может объяснить, почему LLDB терпит неудачу? Это распространенная ошибка или я что-то не так делаю?

В качестве альтернативы, как я могу установить GDB в качестве отладчика по умолчанию, не меняя его вручную при создании новых проектов?

Системная информация:

OS: Lion
RAM: 5GB
XCode: Version 4.6 (4H127)
Device: Mac mini

Мои настройки локального хоста: введите здесь описание изображения


person Lithu T.V    schedule 02.03.2013    source источник
comment
У меня та же проблема, но она появляется, когда я пытаюсь установить некоторые фреймворки (сторонние) для xcode. Для этого требуется, чтобы была сгенерирована какая-то конкретная переменная среды или какой-то конкретный системный файл, и после создания этого файла или установки мой xcode начинает показывать ту же ошибку и должен каждый раз менять отладчик на GDB для каждого проекта, чтобы скомпилировать и запустить его :(. Похоже, нет другого пути, чем переустановка OS X с нуля, так как все остальное я пробовал.Все, включая переустановку Xcode.И я не думаю, что это другое, чем переустановка OS X.   -  person The iOSDev    schedule 12.03.2013
comment
Какую версию Xcode вы используете?   -  person trojanfoe    schedule 13.03.2013
comment
В очень редких случаях, когда это действительно происходит со мной, перезагрузка исправляет это в 100% случаев. Вы пробовали это?   -  person Mick MacCallum    schedule 13.03.2013
comment
@ 0x7fffffff : Иногда перезагрузка помогает. Иногда нет.   -  person Lithu T.V    schedule 13.03.2013
comment
Не могли бы вы проверить, определено ли localhost в вашем файле /etc/hosts, пожалуйста. Из командной строки grep localhost /etc/hosts.   -  person trojanfoe    schedule 13.03.2013
comment
# localhost используется для настройки петлевого интерфейса ::1 localhost fe80::1%lo0 localhost   -  person Lithu T.V    schedule 13.03.2013


Ответы (2)


Убедитесь, что localhost сопоставлено с 127.0.0.1 в вашем файле /etc/hosts:

$ grep localhost /etc/hosts

Если grep не показывает 127.0.0.1, добавьте его:

$ sudo -i
# echo "127.0.0.1 localhost" >> /etc/hosts

^ Это '#' - это командная строка root; не вводите его, иначе вы закомментируете оператор и ничего не произойдет

ПРИМЕЧАНИЕ Используйте >>, а не >! (лучше отредактировать его, используя vi или mate или что-то еще).

Мой файл /etc/hosts показывает (игнорируя комментарии):

127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost
person trojanfoe    schedule 13.03.2013
comment
# localhost используется для настройки петлевого интерфейса ::1 localhost fe80::1%lo0 localhost - person Lithu T.V; 13.03.2013
comment
Не могли бы вы объяснить это. Какая разница? - person Lithu T.V; 14.03.2013
comment
Я обязательно попробую, можете ли вы проверить ответ, который я прокомментировал ранее. Вот что я получаю - person Lithu T.V; 14.03.2013
comment
@ LithuT.V Это проблема с сетью; lldb не знает, как подключиться к симулятору iPhone с помощью IPv4. Если у вас нет сопоставления 127.0.0.1 ‹=› localhost (проверено grep), вам нужно будет исправить файл /etc/hosts, используя подробности в этом ответе. - person trojanfoe; 14.03.2013
comment
хм? без сетевого подключения не может запустить симулятор?: O я новичок. не могли бы вы объяснить больше - person Lithu T.V; 14.03.2013
comment
@LithuT.V Не увлекайтесь; это не означает, что вам нужно подключение к Интернету для отладки, так как 127.0.0.1 — это интерфейс замыкания на себя (подробности в Google), и просто lldbgdb) использует TCP для своего межпроцессного взаимодействия. механизм связи. - person trojanfoe; 14.03.2013
comment
Обновил вопрос :) Это моя текущая настройка - person Lithu T.V; 14.03.2013
comment
@LithuT.V Тогда вам нужно применить исправление в моем ответе. - person trojanfoe; 14.03.2013
comment
@LithuT.V Отлично; тогда вы также можете присудить награду. - person trojanfoe; 17.03.2013
comment
ох .. сори . Я думал, что пометка ответа автоматически даст вам награду. вот и все. Огромное спасибо :) - person Lithu T.V; 17.03.2013
comment
@LithuT.V Нет проблем; рад, что решение помогло. - person trojanfoe; 17.03.2013
comment
Я думаю, что я тебя люблю. Спасибо. - person Oh Danny Boy; 03.04.2013
comment
Спасибо за этот ответ! Должно быть, что-то испортило мой файл hosts… Я понятия не имею, почему 127.0.0.1 не указывал на локальный хост. Однако, вернув его обратно, проблема была исправлена! - person Jacob Pritchett; 27.04.2013
comment
К сожалению, это не работает для меня, я пытаюсь подключиться к coreaudiod, и я получаю ошибку потерянного соединения :( - person Robert; 16.11.2015

Apple любит двигаться вперед. Поэтому установка gdb в качестве отладчика для всех новых проектов невозможна.

Иногда вам нужно сбросить iOS Симулятор для очистки отладчика.

person Black Frog    schedule 13.03.2013
comment
Спасибо за ответ.Обратите внимание, я спросил, почему не как - person Lithu T.V; 14.03.2013