zombie logic. Eating Memory

Discussion in 'iOS Programming' started by IDMah, Jul 30, 2012.

  1. IDMah macrumors 6502

    IDMah

    Joined:
    May 13, 2011
    #1
    Hi all

    Trying to find a bug.. seems like I am allocating something over and over.
    When I run zombies it tells me..
    Code:
    #	   Address	        Category	 Timestamp  Live	Size	Responsible Library	Responsible Caller
    185766 0xe452070  CFArray (mutable-variable)	 00:28.909.069	32	GraphicsServices	        GSEventRunModal
    185767 0xe455830  CFArray (store-deque)        00:28.909.076	32	GraphicsServices	        GSEventRunModal
    185768 0xe4557b0  Malloc 128 Bytes	         00:28.909.117	128	GraphicsServices	        GSEventRunModal
    
    but when I click on the History it says
    Code:
    #	Address	Category	Event Type	RefCt	Timestamp	Size	Responsible Library	Responsible Caller
    0	0xe452070	CFArray (mutable-variable)	Malloc	1	00:28.909.069	32	GraphicsServices	GSEventRunModal
    1	0xe452070	CFArray (mutable-variable)	CFRelease	0	00:28.909.115	0	GraphicsServices	GSEventRunModal
    
    which says to me that it is being released.. but my live memory keeps going up??
    How can I tell what these are referring to I thought it was UIImages Animation but I've blocked that for now and
    still I keep spilling memory everywhere..

    any help appreciated..
    thank
    Ian

    ps. sorry about the formatting..
     
  2. Duncan C macrumors 6502a

    Duncan C

    Joined:
    Jan 21, 2008
    Location:
    Northern Virginia
    #2

    If your memory footprint is growing endlessly, you have a memory leak, not zombies.

    Zombies are over-released objects. (The walking dead.) When you try to send a message to an object that has been released, you usually crash spectacularly, since either the memory does not contain a valid object, or it contains an object that doesn't respond to the selector you're sending it.

    You should run the leaks instrument on your program, not zombies.

    Also try doing a static analysis pass on it. The static analyzer is pretty good at finding leaks in your code without having to run it.
     

Share This Page