Приложение iOS, сбой при каждом запуске, не может найти ошибку

В первый раз, когда я запускаю приложение, все работает нормально. Я нажму кнопку остановки, сделаю какую-то работу, и когда я снова запустил ее, она, похоже, сработает, прежде чем она сможет даже загрузить что-нибудь. Нажмите кнопку "Стоп", нажмите "Запустить снова", и все будет хорошо. Пока я не повторю этот процесс.

Здесь xcode выделяет ошибку с помощью "Thread 1: signal SIGABRT". Очевидно, ничего полезного здесь.

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([PokerAppDelegate class]));
    }
}

Консоль отладки ничего не показывает (lldb) (поэтому я предполагаю, что ее остановка, а не сбой в этой точке) Итак, когда я выполняю BT, это то, что я получаю:

(lldb) bt
* thread #1: tid = 0x1c03, 0x9a258a6a libsystem_kernel.dylib`__pthread_kill + 10, stop reason = signal SIGABRT
    frame #0: 0x9a258a6a libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x99ea1b2f libsystem_c.dylib`pthread_kill + 101
    frame #2: 0x04a7057b libsystem_sim_c.dylib`abort + 140
    frame #3: 0x01dc0b4e GraphicsServices`GSRegisterPurpleNamedPort + 348
    frame #4: 0x01dc069f GraphicsServices`_GSEventInitialize + 123
    frame #5: 0x01dc0c1f GraphicsServices`GSEventInitialize + 36
    frame #6: 0x000163f9 UIKit`UIApplicationMain + 600
    frame #7: 0x00001d0d Guitar Chord Poker HD`main(argc=1, argv=0xbffff32c) + 141 at main.m:16
    frame #8: 0x00001c35 Guitar Chord Poker HD`start + 53
(lldb) 

Вот что я сделал до сих пор:

  • Выполнено "Очистить"
  • У меня есть reset симуляторы и reset мой компьютер
  • Я прокомментировал весь код в контроллере представления, все еще аварийно
  • Я прокомментировал весь код в делегате приложения, все еще сбой
  • НО. Я запустил приложение на устройстве вне Xcode, и похоже работать отлично.
  • (EDIT) Я удалил/переустановил xcode и весь контент (симуляторы, документы) из различных папок кэша (это останавливает xcode от автоматической переустановки старых после новой загрузки). Тем не менее не удается найти инструменты командной строки. Все еще падает.

Несмотря на все это, приложения все равно терпят крах каждый второй/другой запуск.

У меня не было проблем до самого последнего обновления Xcode. Может быть, это ошибка Xcode?

(EDIT) Я также использую последние выпуски разработчиков OSX. Может ли это вмешательство?

Ответ 1

Кажется, это сочетание OS X 10.8.4 и LLDB. Как говорит kenster, переход на GDB заставляет проблему уйти.

Edit:
Это вызвано состоянием гонки на сервере отладки (я слышу).

Здесь исправление, если вы хотите продолжать использовать LLDB: вместо нажатия "Выполнить", когда приложение уже запущено в симуляторе, убейте его в Xcode (⌘-.), скажите "I love Xcode" 5 раз и запустите его снова (⌘-R). Это не сбой, я протестировал его.


Исправлено в Xcode 4.6.3.

Ответ 3

Переключение на GDB или перезагрузка устройства/хоста не решает проблему в моей среде.

Однако изменение цели запуска в связанной схеме XCode больше не запускается автоматически, а вместо этого в "Подождите, когда HelloWorld.app запустится" .

Единственным недостатком является то, что это означает, что вручную запускается приложение на устройстве. Отладчик затем подключится.