On Apr 30, 2017, at 4:02 PM, Peter Hudson <peter.hud...@me.com> wrote:
> 
> Thanks Ken. 
> 
> I'll give zombies a go. 
> What's baffling is that the pointer has remained the same - in terms of 
> address - but the type of underlying object appears to be different. 
> Not sure how that could happen. 

There's a memory management bug somewhere.  The object has been under-retained 
or over-released.  As a result, it has been deallocated.  Any pointer to it is 
now a "dangling" pointer.  The pointer variable still contains the same 
address, but that address is no longer valid.  Later, some other object may be 
allocated and given the address of the old object.  The dangling pointers now, 
by coincidence, point to this new object.  Disaster ensues.

This is exactly the scenario that the Zombies instrument detects.  The original 
object is never actually deallocated.  It's just transformed into a landmine 
that deliberately blows up your program when it's accessed.  Since it was never 
deallocated, no other object can be allocated in its place.  The fact that the 
zombie object is a landmine may sound bad, but it's actually much better then 
the semi-random things that can happen otherwise.  Finding problems early and 
definitively is good.  Finally, Instruments is able to give you the information 
necessary to figure out how the object was under-retained or over-released.

Regards,
Ken

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to