Mam awarię, która ma miejsce, gdy odpływ NSAutoreleasePool
. Prawdopodobnie pula próbuje zwolnić obiekt, który został przedwcześnie zwolniony przez inny fragment kodu. Zderzenie, które mam, jest w środku objc_msgSend
, ponieważ próbuje wysłać wiadomość do obiektu, który już nie istnieje.Jak najlepiej debugować awarię w ramach objc_msgSend?
Biorąc pod uwagę stan stosu, jakie wskazówki/porady/procesy/gdb
mam do dyspozycji, aby uzyskać informacje na temat danego obiektu i/lub punkt, w którym miała miejsce nielegalna deallokacja?
Dodatkowo można użyć instrumentu Object Alloc Instrument do śledzenia zdarzeń zatrzymania/zwolnienia obiektu, który został przedwcześnie zwolniony. Nie jest to pula autorelease - to jest problem, ale niektóre wcześniejsze - zwykle. – bbum
@Pang Właśnie zaktualizowałem link. – inga