Подтвердить что ты не робот

Malloc: *** error: неправильная контрольная сумма для освобожденного объекта - объект, вероятно, был изменен после освобождения

У меня есть большая проблема с моим iOS-приложением: он иногда падает, без подробной ошибки отладки. Трассировка стека пуста. Это единственные две строки в трассе стека:

  • начало сбоя в UIApplicationMain на "заглушке символа для: - [_ UIHostedTextServiceSession увольнятьTextServiceAnimated:]".
  • и сообщите "libsystem_c.dylib`malloc_error_break".

в com.apple.main-thread.

Ошибка в отладчике Xcode (с подключенным устройством):

malloc: *** error for object 0x208a7614: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug

Я установил точку останова в malloc_error_break с libsystem_c.dylib без обратной связи от отладчика. Я не знаю, как решить эту проблему.

4b9b3361

Ответ 1

Чтобы найти источник проблемы, в Xcode перейдите в Product > Scheme > Edit Scheme, а на вкладке Diagnostics включите все настройки Malloc и Guard Malloc.

С этим запустите приложение снова, и Xcode остановится в строке, вызывающей проблему.

Scheme definition

Ответ 2

Поскольку вы находитесь в отладчике, вы должны посмотреть на ячейку памяти 0x208a7614 и посмотреть, что там. Данные в памяти могут быть полезны при определении того, что происходит не так.

Что происходит одно из следующего:

  • вы дважды освобождаете объект,

  • вы освобождаете указатель, который никогда не выделялся

  • вы пишете недопустимый указатель, который ранее указывал на уже освобожденный объект

Так как трассировка стека становится пустой, может быть полезно добавить некоторые операторы журнала отладки в ваш код в разных местах, чтобы увидеть, можете ли вы сузить место, где в коде проблема. Использование инструментов памяти в Инструментах также может помочь. Вы можете попробовать включить NSZombies, но это выглядит как проблема с распределением C, а не с Objective-C.

Кроме того, что-то еще написано на консоли перед сбоем? Если это так, он может указать вам, откуда эта проблема.

Ответ 3

Привет, ребята, я нашел это решение, если вы используете интерфейс nib или xib и сталкиваетесь с этой проблемой, когда хотите нажать объект viewcontroller, то через некоторое время эта ошибка произойдет, и ваше приложение будет аварийно завершать работу (особенно ошибка в iPad). Вот решение:

//Форматировать как это

UINavigationController *nav=[[UINavigationController      alloc]initWithRootViewController:yourViewControllerObj];

[self.navigationController  presentViewController:nav animated:true completion:nil];

Не пытайтесь подтолкнуть в этом состоянии.

Ответ 4

Если у вас есть эта проблема. перейдите к: product-> схема → diagnosis-> затем включите край моллиного гаурда и объект зомби, затем закройте, затем перейдите product-> остановите, затем снова product- соберите и запустите. удачи