I'm really losing it; or maybe I never understood to begin with.  How can this 
code crash?

      - (void)dealloc
      {
          NSLog(@"0988 %p %s", self, __PRETTY_FUNCTION__) ;
          NSLog(@"1250 ") ;
CRASH->   int myPointer = (int)m_managedObjectContext ;
          NSLog(@"1335 myPointer = %d", myPointer) ;
          ...
      }

stderr output:

0988 0x0 -[SSYMojo dealloc]
1250 
Program received signal:  “EXC_BAD_ACCESS”

The line marked CRASH-> is highlighted in blue by Xcode/gdb.  How can this 
crash?  I wanted to log the pointer value (and it *is* an 'int' since this is 
32-bit).  To emphasize this, I assigned it to an int, and it still crashes.  I 
thought that EXC_BAD_ACCESS can only occur if you *access* memory.

Of course, m_managedObjectContext is declared as a pointer to an object in the 
@interface,

NSManagedObjectContext* m_managedObjectContext ;

I've never seen this happen before.  I know the format specifier %@ can evoke a 
crash because it sends a -description message.  But not %p or %x or %d.

Just to prove that gravity still pulls downward, I tried this:

NSManagedObjectContext* x = (void*)3 ;
// Certainly 0x3 is not in my memory space!
NSLog(@"Hello") ;
NSLog(@"x=%d", (int)x) ;
int y = (int)x ;
NSLog(@"World") ;
NSLog(@"y=%d", y) ;

stderr output:

Hello
x=3
World
y=3

No crash, as expected!

What might be the difference between this and my -dealloc method?

Jerry

_______________________________________________

Cocoa-dev mailing list ([email protected])

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to