Отладчик Xcode 10.1 не работает с введением фреймворков

Недавно я представил второе целевое приложение в своем проекте Xcode и разделил большую часть моей кодовой базы на фреймворки. Сначала все работало нормально, но когда я создал больше фреймворков, мой отладчик перестал работать. Мой проект невероятно большой с множеством компонентов, которые я хотел бы импортировать в одни целевые приложения, но не в другие.

Когда приложение останавливается в точке останова, я получаю следующий вывод консоли:

The REPL and expressions are unavailable.  
Shared Swift state for <AppName> could not be initialized.  

Точки останова работают большую часть времени, но иногда происходит сбой всего отладчика, что приводит к следующему выводу:

Message from debugger: The LLDB RPC server has crashed. The crash log is located in ~/Library/Logs/DiagnosticReports and has a prefix 'lldb-rpc-server'. Please file a bug and attach the most recent crash log.  

Платформы: OSX 10.14.3, Xcode 10.1, iOS SDK 9.0

Общее количество целей в проекте: ~250

Цели приложений: 2

Фреймворки: 117

Тесты: 127

Попытки исправления:

  • Обновление модулей
  • Удаление всех стручков
  • Удаление CommonCrypto, как предлагается в другом месте
  • обновление карфагена --platform-iOS --no-use-binaries
  • Проверка файлов с целевыми объектами, помеченными как основная цель приложения, и платформа, импортированная основной целью приложения.
  • Перезапуск Xcode и компьютера
  • Удаление производных данных
  • Очистить и восстановить

Похоже на ошибку в LLDB, я тоже это вижу. Не уверен, что происходит.

Qix - MONICA WAS MISTREATED 26.05.2019 17:49

@Qix Обновил мою кодовую базу для Xcode 10.2.1, и отладчик снова работает. Мне удалось воспроизвести эту проблему в марте, создав проект с десятками внутренних фреймворков. После обновления Xcode этот проект, похоже, тоже работает.

Oisín Byrne 27.05.2019 18:07

Итак, я узнал, в чем заключалась моя проблема: это было связано с переполнением стека из-за рекурсивного вызова, который никогда не нарушал кодовый путь. Я закинул свой проект в докер-контейнер и запустил его с помощью gdb, который поймал переполнение стека и показал мне проблему.

Qix - MONICA WAS MISTREATED 29.05.2019 15:43
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
3
232
0

Другие вопросы по теме