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:
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?