Skip navigation.
 
mlRe: Debugging: do CFZombieLevel and objc_exception_throw() work for you?
FROM : Sean McBride
DATE : Tue Jul 11 23:15:05 2006

On 2006-07-12 07:07, Chris Suter said:

>> I tried the same thing with an NSString, and with CFZombieLevel (1, 
>> 19, 5, and a few other values based on the tech note), and all I 
>> got were bad access exceptions.

>
>Just thought I'd point out that I think the numbers you used don't 
>look quite right. The tech. note doesn't define what 5 would do; the 
>table in the note uses bit numbers. From my understanding of the 
>note, you'll get a crash for most settings of CFZombieLevel except 
>for 8 (never free memory used to hold CF objects) and under certain 
>circumstances 2 (when scribbling deallocated CF memory, don't 
>scirbble object  header (CFRuntimeBase)). I guess you'll get similar 
>results to NSZombieEnabled by setting CFZombieLevel to 9 (although 
>obviously you'll get a crash rather than an exception thrown, but 
>that's just as good).


Ah, you're right!  I think Scott's values were just no good.

Without CFZombieLevel, both these print twice:

   NSString*        str = [[NSString alloc] initWithFormat:@"hello"];
   NSLog (@"%@", str);
   [str release];
   NSLog (@"%@", str);

   CFStringRef        str = CFStringCreateWithFormat(0,0,CFSTR("hello"));
   CFShow(str);
   CFRelease(str);
   CFShow(str);

With CFZombieLevel=65553 both crash on the 2nd print attempt.

So all is well.

--
____________________________________________________________
Sean McBride, B. Eng                <email_removed>
Rogue Research                        www.rogue-research.com
Mac Software Developer              Montréal, Québec, Canada

Related mailsAuthorDate
mlDebugging: do CFZombieLevel and objc_exception_throw() work for you? Scott Ellsworth Jul 11, 21:55
mlRe: Debugging: do CFZombieLevel and objc_exception_throw() work for you? Nick Zitzmann Jul 11, 22:17
mlRe: Debugging: do CFZombieLevel and objc_exception_throw() work for you? Scott Ellsworth Jul 11, 22:23
mlRe: Debugging: do CFZombieLevel and objc_exception_throw() work for you? Chris Suter Jul 11, 23:07
mlRe: Debugging: do CFZombieLevel and objc_exception_throw() work for you? Sean McBride Jul 11, 23:09
mlRe: Debugging: do CFZombieLevel and objc_exception_throw() work for you? Sean McBride Jul 11, 23:15
mlRe: Debugging: do CFZombieLevel and objc_exception_throw() work for you? Scott Ellsworth Jul 12, 00:00