2010-07-09 2 views
0

Недавно установив 4.0 SDK, я перекомпилировал клиентский проект, чтобы проверить, как он будет работать под новой ОС. (Раньше тестирование с 3.1.3 не приводило к сбоям и только к одной утечке памяти, которые должным образом сообщили Apple, которые не смогли воспроизвести на 4.0 beta 3 и поэтому закрыты.)Сбой при запуске Leaks

Все прошло очень гладко (без сбоев во время тестирования) пока я не решил запустить его с помощью «Утечек», из-за чего приложение запускается каждый раз, когда я запускаю его.

Все крешлогам выглядеть следующим образом:

 
Thread 0 Crashed: 
0 libobjc.A.dylib     0x00002866 objc_msgSend + 10 
1 MyApp       0x000040b0 0x1000 + 12464 
2 MyApp       0x000040b0 0x1000 + 12464 
3 MyApp       0x000040b0 0x1000 + 12464 
... 
511 MyApp       0x000040b0 0x1000 + 12464 

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

Любые идеи?

Обновление: Вышеприведенное относится к моему iPhone 3GS, работающему под управлением iOS 4. Когда я запускаю сборку на моем iPod Touch 1st gen, работающем под управлением 3.1.3, я даже не могу запускать утечки, неважно, чтобы это произошло ... но я могу построить и отладить на этом более старом устройстве.

(я устанавливаю мой Base SDK в 4.0 и Target Deployment 3.1.2)

+0

У меня также были некоторые проблемы с испытаниями на 4.0, категории, которые я использовал, не загружались, пока я строил тестовые проекты. странный. –

+0

Сборка была представлена ​​Apple и одобрена вчера. На данный момент я буду работать в предположении, что утечки действительно дают ложные срабатывания (когда он не занят сбоем!) –

ответ

0

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

Попробуйте скомпилировать приложение с включенными символами отладки, чтобы метод был обнаружен (надеюсь).

+0

Это отладочная сборка. Кроме того, я могу запустить эту сборку отлично, без каких-либо сбоев, когда я строю и отлаживаю через собственно Xcode. Этот сбой происходит только тогда, когда я пытаюсь использовать инструмент «Утечки». –

0

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

Существует более чем обычная болтовня о проблемах отладчика от людей, которые обновились до Xcode 3.2.3. У меня была проблема с отладчиком, висящим наугад в явной беглой рекурсии, которая не имела никакого отношения к конкретному коду. Я только решил это, исключив мой каталог /Developer и переустановив 4.0SDK.

Обычно мне не нравится винить инструменты, но в этом случае это может быть оправдано.

Смежные вопросы