У меня (на мой взгляд) очень сложная проблема в моем коде.Это происходит случайным образом в разных местах кода.Проект является проектом ARC.
Так что моя программа иногда падает с такими сообщениями:
malloc: *** error for object 0xd2dd8b0: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
Я уже установил точку останова для malloc_error_break
, но не получаю никакой информации из нее.Когда код падает, XCode показывает мне место в коде, где это происходит.Но, как я уже сказал, сбои происходят случайно и не всегда.Но кажется, что сбои сосредоточены на конкретной строке кода.
Теперь я хотел отладить его, используя инструменты, поставляемые с xcode.После небольшого поиска я нашел следующие вещи в stackoverflow: Как настроить NSZombieEnabled в Xcode 4? и Ошибка Xcode malloc .
Итак, первая ссылкаописывает, как запустить обнаружение зомби из самого xcode, нажав кнопку запуска в xcode и выбрав «Профиль».Проблема в том, что я не могу найти «зомби» при выборе шаблона для документа трассировки в моей версии xcode (4.2).Но если я запускаю инструменты вне xcode (например, из finder), я могу выбрать зомби.
Хорошо, вот что я сделал:
1) Запустите инструменты из поиска и выберите профиль "Зомби".
2) Запустите приложение iphone из xcode в симуляторе iphone(нормальный запуск (не профильный или отладочный)).
3) В инструментах «Выберите цель» -> «Присоединить к процессу» -> «Симулятор iPhone (57529)».
4)Инструменты начинают что-то перечитывать (я не могу понять, что он делает).
5) Начните играть с приложением, пока оно не выйдет из строя.
В конце концов приложение вылетает, и вот скриншот инструментовпосле сбоя приложения: ![enter image description here](https://i.stack.imgur.com/Kd8MS.png)
Мои вопросы:
1) Достаточно ли зомби для моей проблемы или мне следует использовать другой инструмент анализа?
2) Что мне говоритинструменты на выходе после сбоя?