Проблемы с завершением работы приложения iOS без отладочной информации и сообщений журнала - PullRequest
4 голосов
/ 08 марта 2011

У меня есть приложение, которое может быть сведено к просмотру uiscrollview с изображениями, которые вы можете пролистать. Здесь я испытываю что-то действительно странное.

При перелистывании каждого изображения (всего их около 60), в какой-то момент приложение просто закрывается. Я запускаю его в XCode 4 (GM seed 2), и у меня нет отладочной информации и вообще никаких сообщений в консоли. Включил NSZombieEnabled, но это ничего не изменило.

Я даже не получаю журнал аварий на устройстве. Я запускал его с помощью инструментов, и он не сообщает о каких-либо утечках, а использование моей памяти при работе на устройстве составляет от 700 до 1100 КБ.

Я даже проверил каждую из своих "страниц" (те, которые вы пролистывали) и добавил сообщения в init и dealloc, и я могу подтвердить, что все они освобождаются должным образом (сохраняются только текущие и страницы на каждой стороне). загружен).

Теперь, похоже, это в основном происходит в одной и той же точке приложения, когда я просто начинаю с начала и пролистываю каждую нужную страницу, плюс или минус несколько страниц, все указывают на проблему с памятью, я получаю предупреждение памяти от устройства, но абсолютно ничего не указывает на то, что я использую много памяти вообще, или что есть какие-либо утечки.

Я получил это из консоли на устройстве, когда приложение закрывается:

8 марта 14:13:37 unknown configd [26]: jetsam: событие памяти ядра (92), свободно: 451, активно: 2894, неактивно: 2267, очищается: 0, подключено: 16709

8 марта 14:13:37 unknown configd [26]: jetsam: создается моментальный снимок завершения ядра

8 марта 14:13:37 неизвестно com.apple.launchd [1]: (com.apple.AOSNotification) Выход: убит: 9

8 марта 14:13:37 неизвестный com.apple.launchd [1]: (UIKitApplication: com.apple.mobilemail [0xc2ee]) Выход: убит: 9

8 марта 14:13:37 неизвестный com.apple.launchd [1]: (UIKitApplication: no.NRC.NRCMag [0x3c6c]) Выход: убит: 9

8 марта 14:13:37 неизвестный com.apple.launchd [1]: (com.apple.dataaccess.dataaccessd) Выход: убит: 9

8 марта 14:13:37 unknown SpringBoard [30]: получено предупреждение о памяти. Уровень = 1

8 марта 14:13:37 unknown SpringBoard [30]: приложение «Перспектива» вышло ненормально с сигналом 9: убито: 9

8 марта 14:13:38 неизвестно SpringBoard [30]: приложение «Почта» вышло ненормально с сигналом 9: убито: 9

8 марта 14:13:38 unknown SpringBoard [30]: уровень памяти не нормальный (60%). Задержка автоперезапуска «Почты» на 30 секунд.

8 марта 14:13:38 unknown SpringBoard [30]: получено предупреждение о памяти. Уровень = 2

8 марта 14:13:38 неизвестное ядро ​​[0]: launchd [1253] Встроенный профиль: dataaccessd (песочница)

8 марта 14:13:39 неизвестно AOSN [1252]: запуск демона AOSNotification ...

8 марта 14:13:39 неизвестно AOSN [1252]: информация об устройстве. Имя: Calypso, Версия сборки: 8F190, Тип продукта: iPad1,1, Уникальный идентификатор устройства: f02b304ed9a62109de1f3efd3e1e23158a76b2d4

8 марта 14:13:40 unknown ReportCrash [1254]: сохраненный аварийный отчет в /Library/Logs/CrashReporter/LowMemory-2011-03-08-141339.plist с использованием uid: 0 gid: 0, синтез__ид: 0 egid: 0

8 марта 14:13:40 неизвестно SpringBoard [30]: получено предупреждение памяти. Уровень = 1

8 марта 14:13:40 unknown dataaccessd [1253]: DA | Зарегистрирован для уведомления о пробуждении

8 марта 14:13:40 неизвестно AOSN [1252]: Push: загрузка ...

8 марта 14:13:41 неизвестно профилировано [1257]: профилировано | Сервис запущен ...

8 марта 14:13:41 unknown dataaccessd [1253]: для EAS | EAS Protocol Manager установлено значение ASProtocolUnknown

8 марта 14:13:41 unknown dataaccessd [1253]: CalDAV | Обновление сработало, но мы все еще ожидаем блокировки гейткипером

8 марта 14:13:42 неизвестные данные доступны [1253]: для EAS | EAS Protocol Manager установлено значение ASProtocol12_1

Теперь здесь упоминается отчет о сбое, но как мне его заполучить, если он не отображается в Организаторе в XCode? И почему я получаю предупреждения о памяти, когда инструменты (и тщательный анализ моего кода) говорят, что я не использую много памяти и не подтекаю?

Помощь!

РЕДАКТИРОВАТЬ: получил 3.2.6 и работает здесь, и консоль теперь дает мне это:

Программа получила сигнал: «0».

Средство форматирования данных временно недоступно, повторная попытка после продолжения. (Неизвестная ошибка загрузки общей библиотеки "/Developer/usr/lib/libXcodeDebuggerSupport.dylib")

1 Ответ

0 голосов
/ 08 марта 2011

Хорошо, я понял это здесь, и это немного глупо.

Я использую метод imageNamed UIImage для загрузки каждого изображения / страницы, и, очевидно, это вызывало предупреждения памяти.

Есть несколько вещей, которые меня немного беспокоят по этому поводу.

  1. Кэширование, очевидно, является хорошей вещью, но, по-видимому, в 4.3 GM оно, по-видимому, на самом деле не очищает кэш при появлении предупреждения о памяти.
  2. Мое приложение не сообщает об использовании памяти.
...