Ho un incidente che si verifica quando uno scarico NSAutoreleasePool
. Presumibilmente il pool sta cercando di deallocare un oggetto che è stato prematuramente rilasciato da un altro pezzo di codice. Il crash che ho è nel bel mezzo di objc_msgSend
mentre sta tentando di inviare un messaggio a un oggetto che non esiste più.Il modo migliore per eseguire il debug di un arresto anomalo in objc_msgSend?
Dato lo stato stack, quali suggerimenti/trucchi/processi/comandi gdb
ho a disposizione per ottenere informazioni sull'oggetto in questione e/o sul punto in cui è avvenuta la deallocazione illegittima?
Inoltre, è possibile utilizzare lo strumento Oggetto Alloc di Instruments per tenere traccia degli eventi di conservazione/rilascio dell'oggetto che è stato rilasciato prematuramente. Il problema non è il problema del pool di autorelease, ma in genere il rilascio di una release precedente. – bbum
@Pang Ho appena aggiornato il collegamento. – inga