|
From: | Andreas Höschler |
Subject: | Re: memory leak |
Date: | Thu, 30 Nov 2006 11:17:07 +0100 |
Hi all,
I tried this one already. I wrote a MyObject and posed it as NSObject. However NSArray for instance does not call [NSObject alloc]. (??) Correct me if I'm wrong.It calls +allocWithZone: ... if you are wanting to override object allocation, this is a more fundamental method. More fundamental still is the NSAllocateObject() function. However, not all classes will call +allocWithZone: or even NSAllocateObject(), though the vast majority do the former and almost all the latter.Anyway, unless you have a special need to override allocation/deallocation for a particular class, I would recommend you use the memory allocation debug functionality that GNUstep provides in NSDebug.h instead. This gives you a whole lot of memory allocation tracking options, from keeping overall counts of objects of each class, right down to providing callbacks for each individual object allocation/deallocation. Not only that, but it's hooked in to the most fundamental object allocation/deallocation functions (NSAllocateObject() and NSDeallocateObject()) as well as those few cases where the GNUstep libraries don't use those fundamental functions ... so it is much more exhaustive than just overriding +allocWithZone:If your framework is in a gui application, clicking on the icon in the standard info panel should display the memory panel showing allocated object counts ... this gives you a very easy to use starting point for tracking leaks.
Super cool! Thanks a lot for mentioning this killer feature!!! Regards, Andreas
[Prev in Thread] | Current Thread | [Next in Thread] |