Hi Andreas,
the underlying problem is the double-free. Can you provide two
stack-traces for the two calls of PixelBufferCarbon::closeImplementation?
as the x11-implementation of closeImplementation does nothing fancy,
there's nothing which can crash ;-)
A quick and dirty fix for PixelBufferCarbon would be:
if (_pbuffer) { aglDestroyPBuffer(_pbuffer); _pbuffer = NULL; }
if (_context) { aglDestroyContext(_context); _context = NULL; }
if (_pixelformat) { aglDestroyPixelFormat(_pixelformat); _pixelformat =
NULL; }
can you provide some more details about how your viewer-setup?
cheers,
Stephan
Am 30.04.10 15:14, schrieb Ulrich von Zadow:
> Hi,
>
> my OSG program crashes on end:
>
> Thread 0 Crashed:
> 0 com.apple.agl 0x91e52a71 aglDestroyPixelFormat + 60
> 1 libosgViewer.65.dylib 0x00688c16
> osgViewer::PixelBufferCarbon::closeImplementation() + 150
> 2 libosg.65.dylib 0x092a012f
> osg::GraphicsContext::close(bool) + 1019
> 3 libosgViewer.65.dylib 0x00688e35
> osgViewer::PixelBufferCarbon::~PixelBufferCarbon() + 47
> 4 osgnode.so 0x08c65f7b
> avg::OSGNode::disconnect(bool) + 475 (Referenced:183)
>
> The crash isn't really reproducible, but it happens only on a mac, never
> under linux.
>
> What's irritating me (besides the crash itself ;-)) is that
> PixelBufferCarbon::closeImplementation() is called twice. Here is the
> osg logging output with output added to the closeImplementation call:
>
> Viewer::~Viewer():: start destructor getThreads = 0
> close(1)0x1ef4f600
> Releasing GL objects for Camera=0xa0d000 _state=0x3ab730
> Closing still viable window 0 _state->getContextID()=0
> Doing Flush
> Done Flush
> PixelBufferCarbon::closeImplementation: 0x1ef4f600
> _pixelformat: 0x1ef4f728
> Doing discard of deleted OpenGL objects.
> decrementUsageCount()0
> GraphicsContext::decrementContextIDUsageCount(0) to 0
> Viewer::~Viewer() end destrcutor getThreads = 0
> Destructing osgViewer::View
> Destructing osg::View
> close(1)0x1ef4f600
> PixelBufferCarbon::closeImplementation: 0x1ef4f600
> _pixelformat: 0x1ef4f728
> close(0)0x1ef4f600
> GraphicsContext::unregisterGraphicsContext 0x1ef4f600
> Done destructing osg::View
>
> The crash happens (when it does) at the second
> PixelBufferCarbon::closeImplementation line.
>
> Any idea what I might be doing wrong? The logging output is a response
> to dereferencing the Viewer - nothing more.
>
> Cheers,
>
> Uli
>
>
> --
> Ulrich von Zadow
> Software Engineer (Dipl. Inf.)
> Exhibit Development
>
> Tel +49 (0)30 / 2000 577 12
> Fax +49 (0)30 / 2000 577 20
> Skype: uzadow
>
> Archimedes Solutions GmbH
> Saarbrücker Str. 24 10405 Berlin
>
> www.archimedes-solutions.com
>
> Geschäftsführung:
> W. Rien | J. Schmidtsiefen | S. Spenling
>
> Amtsgericht: Berlin Charlottenburg
> HR Nr.: 107563 B
> UST-ID Nr.: DE-253.771.793
>
>
>
>
>
>
>
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org