2012-03-02 20 views
5

Mam (moim zdaniem) bardzo trudny problem w moim kodzie. Rozbija się losowo w różnych miejscach kodu. Projekt jest projektem ARC.Wykrywanie zombie ios

Więc mój program zawiesza occaisonally z tych komunikatów:

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 

już ustawić punkt przerwania na malloc_error_break ale nie dostać żadnych informacji od niego. Kiedy kod się zawiesza, XCode pokazuje mi miejsce w kodzie, w którym to się dzieje. Ale jak już powiedziałem, awarie są losowe i nie występują zawsze. Wydaje się jednak, że awarie są skoncentrowane na konkretnej linii kodu.

Teraz chciałem debugować za pomocą instrumentów dostarczanych z xcode. Po trochę googlowania znalazłem następujące rzeczy na stackoverflow: How do I set up NSZombieEnabled in Xcode 4? i Xcode malloc error.

Pierwszy odsyłacz opisuje, jak rozpocząć wykrywanie zomerów z samego xcode, klikając przycisk uruchamiania w xcode i wybrać "Profil". Problem polega na tym, że nie mogę znaleźć "Zombie" przy wyborze szablonu do śledzenia dokumentu w mojej wersji xcode (4.2). Ale jeśli uruchomię Instruments poza xcode (np. Z wyszukiwarki), mogę wybrać zombie.

Ok, oto co zrobiłem:

1) Początek Instruments z wyszukiwarki i wybierz profil "zombie".

2) Uruchom aplikację iPhone z xcode w symulatorze iphone (normalny przebieg (nie profil lub debugowanie)).

3) W instrumentach "Wybierz cel" -> "Dołącz do procesu" -> "Symulator iPhone'a (57529)".

4) Instrumenty zaczynają recod coś (nie mogę dowiedzieć się, co robi).

5) Zacznij grać z aplikacją, aż się zawiesi.

Ostatecznie awarii aplikacji i tutaj znajduje się zrzut ekranu z instrumentów po awarii aplikacji: enter image description here

Moje pytania:

1) Czy Zombies odpowiednia dla mojego problemu czy powinienem użyć innego narzędzia analyizes?

2) Co mi mówi o instrumentach wyjściowych po awarii?

Odpowiedz

6

Sądząc po opisie problemu, przyczyną awarii jest coś poza dostępem do obiektu zombie. Jeśli Twoja aplikacja uzyskuje dostęp do przydziałów (zombie) przedmiot Instrumenty pokazuje komunikat jak przy użyciu szablonu Zombies następujące:

enter image description here

Powiązane problemy