Re: exited due to signal 10 (SIGBUS).
Re: exited due to signal 10 (SIGBUS).
- Subject: Re: exited due to signal 10 (SIGBUS).
- From: Rosyna <email@hidden>
- Date: Wed, 25 Jul 2001 21:08:28 -0700
Someone emailed me privately off the list, suggesting it was a a
deallocated object that didn't crash til a few functions later, I
immediately knew what it was.
Turns out you CANNOT Dispose the AEDesc created from
[NSAppleEventDescriptor _AEDesc];
Ack, at 7/25/01, Art Isbell said:
On Wednesday, July 25, 2001, at 01:57 PM, Rosyna wrote:
Steps out of my functions completely, then starts doing something
else, which I have provided the backtrace for:
(gdb) bt
#0 0x73f2495c in aeSuspendTheCurrentEvent ()
#1 0x73f24318 in aeResumeTheCurrentEvent ()
#2 0x73f22010 in aeReallyProcessAppleEvent ()
#3 0x73f21ae8 in aeProcessAppleEvent ()
#4 0x737dd600 in AEProcessAppleEvent ()
#5 0x70d75b48 in _DPSNextEvent ()
#6 0x70d756e8 in -[NSApplication
nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#7 0x70d7546c in -[NSApplication run] ()
#8 0x70d9799c in NSApplicationMain ()
#9 0x00003e24 in main (argc=1, argv=0xbffffd3c) at
main.m:19/Users/rosyna/MyFirstProject/
#10 0x00003d18 in _start ()
#11 0x00003b58 in start ()
Looks like this problem is occurring as the next event is
being processed. But what sort of problem isn't obvious from the
backtrace.
A bus error can be due to a memory problem, so I'd try
running the process with the environment variable NSZombieEnabled
set to YES. From Foundation's NSDebug.h:
FOUNDATION_EXPORT BOOL NSZombieEnabled;
// Enable object zombies. When an object is deallocated, its isa
// pointer is modified to be that of a "zombie" class (whether or
// not the storage is then freed can be controlled by the
// NSDeallocateZombies variable). Messages sent to the zombie
// object cause logged messages and can be broken on in a debugger.
// The default is NO.
This can be set in Project Builder by selecting the target, and then
the Executables tab in the lower right quadrant, and then the Env
Vars tab.
When running the process under the debugger, and looking at
the debugger console, a message about which function to break on
when a message is sent to a freed object should be displayed. This
can establish whether a message is being sent to a freed object and
if so, the class of the freed object.
--
Sincerely,
Rosyna Keller
Technical Support/Holy Knight/Always needs a hug
Unsanity: Unsane Tools for Insane People