Получение exc_bad_access error только при включенном mallocguard - PullRequest
0 голосов
/ 08 февраля 2010

У меня есть приложение для iPhone в разработке, которое работает правильно, когда защита Malloc не включена. Однако, когда я пытаюсь включить malloc guard, я получаю следующую ошибку после загрузки приложения.

#0  0x95f65684 in objc_msgSend ()

#1 0x30506515 in NSPopAutoreleasePool ()

#2 0x30901697 in _UIApplicationHandleEvent ()

#3 0x32046375 in PurpleEventCallback ()

#4 0x30245560 in CFRunLoopRunSpecific ()

#5 0x30244628 in CFRunLoopRunInMode ()

#6 0x308f930d in -[UIApplication _run] ()

#7 0x309021ee in UIApplicationMain () Теперь моя проблема в том, что я не могу отладить точное местоположение, где он получает ошибку .. пробовал malloc_error_break, но не сработало. Это то, что Malloc Guard, включающий авто, освобождает некоторые объекты на основе распределения ??

1 Ответ

0 голосов
/ 08 февраля 2010

Вы освобождаете память, которая автоматически освобождается. Не видя ни одного вашего кода, трудно сказать, в чем именно заключается проблема, но это выглядело бы примерно так:

NSString* aVar = [NSString stringWithFormat:@"Hello %@", worldVariable];

...

[aVar release];

Это не приведет к сбою в операторе release (так как счетчик ссылок будет хотя бы один), но приведет к аварийному завершению в более поздней точке цикла выполнения, где пул авто-выпуска «истощается». 1006 *

...