On Sep 7, 2012, at 3:55 PM, Jens Alfke wrote:

> On Sep 7, 2012, at 12:01 PM, Richard Somers <rsomers...@awinets.com> wrote:
> 
>> MyApp(469,0x1009fbcc0) malloc: *** error for object 0x12f6b19a0: pointer 
>> being freed was not allocated *** set a breakpoint in malloc_error_break to 
>> debug
>> Following the instructions and adding a symbolic break point 
>> (malloc_error_break) results in nothing different. The application still 
>> halts at the same location with the same error.
> 
> From the stack it looks like the environment variable MallocErrorAbort is 
> already set, so you’ve already stopped at the point of the error.
> 
>> I have searched through every stack frame and can find no reference to the 
>> pointer in question 0x12f6b19a0. You would think that this pointer would be 
>> located somewhere in one of the stack frames.
> 
> The only stack frame that would necessarily be referring to it is #3, 
> gfxReleaseSharedState — I don’t know if that’s your code or not. That 
> function has called free( ) on that pointer.
> 
>> A po or p on the pointer in the debug console produces nothing useful.
> 
> It isn't an Objective-C object, because gfxReleaseSharedState is directly 
> calling free() on it.
> 
> I don’t have much more advice, because it looks like the code on the stack is 
> related to OpenGL, which I don’t know anything about. It’s possible you’ve 
> got the refcounting wrong for something GL-related, so that the ‘shared 
> state’ referred to has already been freed.
> 
>> The stack looks like this:
>> 
>> #0   0x00000001008700b6 in __kill ()
>> #1   0x00000001009109f6 in abort ()
>> #2   0x0000000100828195 in free ()
>> #3   0x00000001064c01b3 in gfxReleaseSharedState ()
>> #4   0x000000012cc3d91f in gliDestroyContext ()
>> #5   0x0000000100166de4 in CGLReleaseContext ()
>> #6   0x0000000100169faa in CGLDestroyContext ()
>> #7   0x000000010001468d in -[RSTriadLayer releaseCGLContext:] at 
>> RSTriadLayer.m:302


Jens, thanks for the help.

I found the pointer. It appears in frame #2 free () and higher frames in one of 
the general purpose registers. One would think that the pointer would show up 
in frame #3 gfxReleaseSharedState () which calls free () but it does not. My 
code is frame #7 and #10 and everything else is from the frameworks.

Yes, it appears this is some sort of OpenGL related memory management issue.

--Richard


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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

This email sent to arch...@mail-archive.com

Reply via email to