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

17

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

  

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

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

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

Может кто-нибудь объяснить, почему LLDB терпит неудачу? Является ли это общей ошибкой или я делаю что-то неправильно?

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

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

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

Настройки моего локального хоста:

    
задан Lithu T.V 02.03.2013 в 13:07
источник
  • Это та же проблема со мной, но она появляется, когда я пытаюсь установить некоторые фреймворки (сторонние) для xcode. Он запрашивает определенную переменную среды или какой-то конкретный системный файл, который должен быть сгенерирован, и после создания этого файла или установки мой xcode начнет показывать ту же ошибку и должен каждый раз изменять отладчик на GDB для каждого проекта, чтобы его компилировать и запускать :(. Это не значит, что нет другой возможности переустановки ОС X с нуля, так как все остальное проверено мной. Все, включая переустановку Xcode. И я не думаю, что это было тогда переустановка OS X. –  The iOSDev 12.03.2013 в 12:27
  • Какую версию Xcode вы используете? –  trojanfoe 13.03.2013 в 17:13
  • В очень редком случае, что это происходит со мной, перезагрузка исправила его в 100% случаев. Вы пробовали это? –  Mick MacCallum 13.03.2013 в 17:14
  • @trojanfoe: последние –  Lithu T.V 13.03.2013 в 17:14
  • @ 0x7fffffff: Иногда перезагрузка исправлений. Иногда –  Lithu T.V 13.03.2013 в 17:15
Показать остальные комментарии

2 ответа

37

Убедитесь, что 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
    
ответ дан trojanfoe 13.03.2013 в 17:22
  • # localhost используется для настройки интерфейса loopback :: 1 localhost fe80 :: 1% lo0 localhost –  Lithu T.V 13.03.2013 в 17:26
  • Не могли бы вы объяснить это. Какая разница? –  Lithu T.V 14.03.2013 в 04:24
  • @ LithuT.V Вы пробовали? –  trojanfoe 14.03.2013 в 08:20
  • @ LithuT.V Не увлекайтесь; это не означает, что вам нужно подключение к Интернету для отладки, поскольку 127.0.0.1 - это интерфейс loopback (Google, который для деталей), и это просто, что lldb (и gdb) использует TCP для своего механизма взаимодействия между процессами. –  trojanfoe 14.03.2013 в 11:05
  • да, это сработало как шарм ...: D –  Lithu T.V 16.03.2013 в 13:25
Показать остальные комментарии
2

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

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

    
ответ дан Black Frog 13.03.2013 в 18:28
  • Извините, это не работает для меня ..! –  Lithu T.V 14.03.2013 в 04:21
  • Спасибо за ответ. Пожалуйста, обратите внимание, я спросил, почему не так –  Lithu T.V 14.03.2013 в 04:31