Hi robert,
Thanks, I'll try this
I get a new error, without any modification in the code : "invalid iterator
range"
and the stack trace :
> msvcp80d.dll!std::_Debug_message(const wchar_t * message=0x00f557d8,
> const wchar_t * file=0x00f5464c, unsigned int line=1029) Ligne 23 C++
> msvcp80d.dll!std::_Debug_range2<char *>(char * _First=0x52a0d982, char
> * _Last=0x00ebeb24, const wchar_t * _File=0x00f5464c, unsigned int
> _Line=1029, std::random_access_iterator_tag __formal={...}) Ligne 1361 +
> 0x12 octets C++
> msvcp80d.dll!std::_Debug_range<char *>(char * _First=0x52a0d982, char
> * _Last=0x00ebeb24, const wchar_t * _File=0x00f5464c, unsigned int
> _Line=1029) Ligne 1368 + 0x28 octets C++
> msvcp80d.dll!std::codecvt<wchar_t,char,int>::do_unshift(int &
> _State=21728932, char * _First2=0x52a0d982, char * _Last2=0x00ebeb24, char *
> & _Mid2=0x00ebebc8) Ligne 1029 + 0x17 octets C++
> osg35-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})
> Ligne 62 + 0x25 octets C++
> osg35-osgd.dll!osg::Switch::traverse(osg::NodeVisitor & nv={...})
> Ligne 47 C++
> osg35-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Ligne 181 + 0x1c octets C++
> osg35-osgd.dll!osg::NodeCallback::traverse(osg::Node *
> node=0x05197488, osg::NodeVisitor * nv=0x01fc5630) Ligne 23 C++
> 3DEM.exe!CheckCameraCallback::operator()(osg::Node * node=0x05197488,
> osg::NodeVisitor * nv=0x01fc5630) Ligne 158 C++
>
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::handle_callbacks_and_traverse(osg::Node
> & node={...}) Ligne 83 + 0x1c octets C++
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::apply(osg::Switch &
> node={...}) Ligne 57 + 0x1a octets C++
> osg35-osgd.dll!osg::Switch::accept(osg::NodeVisitor & nv={...}) Ligne
> 36 + 0x41 octets C++
> osg35-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})
> Ligne 62 + 0x25 octets C++
> osg35-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Ligne 181 + 0x1c octets C++
>
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::handle_callbacks_and_traverse(osg::Node
> & node={...}) Ligne 84 + 0x25 octets C++
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::apply(osg::Group &
> node={...}) Ligne 54 + 0x1a octets C++
> osg35-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...}) Ligne
> 38 + 0x41 octets C++
> osg35-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})
> Ligne 62 + 0x25 octets C++
> osg35-osgd.dll!osg::Switch::traverse(osg::NodeVisitor & nv={...})
> Ligne 47 C++
> osg35-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Ligne 181 + 0x1c octets C++
> osg35-osgd.dll!osg::NodeCallback::traverse(osg::Node *
> node=0x0c2dfb50, osg::NodeVisitor * nv=0x01fc5630) Ligne 23 C++
> 3DEM.exe!CheckCameraCallback::operator()(osg::Node * node=0x0c2dfb50,
> osg::NodeVisitor * nv=0x01fc5630) Ligne 158 C++
>
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::handle_callbacks_and_traverse(osg::Node
> & node={...}) Ligne 83 + 0x1c octets C++
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::apply(osg::Switch &
> node={...}) Ligne 57 + 0x1a octets C++
> osg35-osgd.dll!osg::Switch::accept(osg::NodeVisitor & nv={...}) Ligne
> 36 + 0x41 octets C++
> osg35-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})
> Ligne 62 + 0x25 octets C++
> osg35-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Ligne 181 + 0x1c octets C++
>
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::handle_callbacks_and_traverse(osg::Node
> & node={...}) Ligne 84 + 0x25 octets C++
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::apply(osg::Group &
> node={...}) Ligne 54 + 0x1a octets C++
> osg35-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...}) Ligne
> 38 + 0x41 octets C++
> osg35-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})
> Ligne 62 + 0x25 octets C++
> osg35-osgd.dll!osg::Switch::traverse(osg::NodeVisitor & nv={...})
> Ligne 47 C++
> osg35-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Ligne 181 + 0x1c octets C++
> osg35-osgd.dll!osg::NodeCallback::traverse(osg::Node *
> node=0x0b5a08d8, osg::NodeVisitor * nv=0x01fc5630) Ligne 23 C++
> 3DEM.exe!CheckCameraCallback::operator()(osg::Node * node=0x0b5a08d8,
> osg::NodeVisitor * nv=0x01fc5630) Ligne 158 C++
>
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::handle_callbacks_and_traverse(osg::Node
> & node={...}) Ligne 83 + 0x1c octets C++
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::apply(osg::Switch &
> node={...}) Ligne 57 + 0x1a octets C++
> osg35-osgd.dll!osg::Switch::accept(osg::NodeVisitor & nv={...}) Ligne
> 36 + 0x41 octets C++
> osg35-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})
> Ligne 62 + 0x25 octets C++
> osg35-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Ligne 181 + 0x1c octets C++
>
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::handle_callbacks_and_traverse(osg::Node
> & node={...}) Ligne 84 + 0x25 octets C++
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::apply(osg::Group &
> node={...}) Ligne 54 + 0x1a octets C++
> osg35-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...}) Ligne
> 38 + 0x41 octets C++
> osg35-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})
> Ligne 62 + 0x25 octets C++
> osg35-osgd.dll!osg::Switch::traverse(osg::NodeVisitor & nv={...})
> Ligne 47 C++
> osg35-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Ligne 181 + 0x1c octets C++
> osg35-osgd.dll!osg::NodeCallback::traverse(osg::Node *
> node=0x08d9c970, osg::NodeVisitor * nv=0x01fc5630) Ligne 23 C++
> 3DEM.exe!CheckCameraCallback::operator()(osg::Node * node=0x08d9c970,
> osg::NodeVisitor * nv=0x01fc5630) Ligne 158 C++
>
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::handle_callbacks_and_traverse(osg::Node
> & node={...}) Ligne 83 + 0x1c octets C++
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::apply(osg::Switch &
> node={...}) Ligne 57 + 0x1a octets C++
> osg35-osgd.dll!osg::Switch::accept(osg::NodeVisitor & nv={...}) Ligne
> 36 + 0x41 octets C++
> osg35-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})
> Ligne 62 + 0x25 octets C++
> osg35-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Ligne 181 + 0x1c octets C++
>
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::handle_callbacks_and_traverse(osg::Node
> & node={...}) Ligne 84 + 0x25 octets C++
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::apply(osg::Group &
> node={...}) Ligne 54 + 0x1a octets C++
> osg35-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...}) Ligne
> 38 + 0x41 octets C++
> osg35-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})
> Ligne 62 + 0x25 octets C++
> osg35-osgd.dll!osg::Switch::traverse(osg::NodeVisitor & nv={...})
> Ligne 47 C++
> osg35-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Ligne 181 + 0x1c octets C++
> osg35-osgd.dll!osg::NodeCallback::traverse(osg::Node *
> node=0x073bec20, osg::NodeVisitor * nv=0x01fc5630) Ligne 23 C++
> 3DEM.exe!CheckCameraCallback::operator()(osg::Node * node=0x073bec20,
> osg::NodeVisitor * nv=0x01fc5630) Ligne 158 C++
>
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::handle_callbacks_and_traverse(osg::Node
> & node={...}) Ligne 83 + 0x1c octets C++
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::apply(osg::Switch &
> node={...}) Ligne 57 + 0x1a octets C++
> osg35-osgd.dll!osg::Switch::accept(osg::NodeVisitor & nv={...}) Ligne
> 36 + 0x41 octets C++
> osg35-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})
> Ligne 62 + 0x25 octets C++
> osg35-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Ligne 181 + 0x1c octets C++
>
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::handle_callbacks_and_traverse(osg::Node
> & node={...}) Ligne 84 + 0x25 octets C++
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::apply(osg::Group &
> node={...}) Ligne 54 + 0x1a octets C++
> osg35-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...}) Ligne
> 38 + 0x41 octets C++
> osg35-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})
> Ligne 62 + 0x25 octets C++
> osg35-osgd.dll!osg::Switch::traverse(osg::NodeVisitor & nv={...})
> Ligne 47 C++
> osg35-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Ligne 181 + 0x1c octets C++
> osg35-osgd.dll!osg::NodeCallback::traverse(osg::Node *
> node=0x04de5c40, osg::NodeVisitor * nv=0x01fc5630) Ligne 23 C++
> 3DEM.exe!CheckCameraCallback::operator()(osg::Node * node=0x04de5c40,
> osg::NodeVisitor * nv=0x01fc5630) Ligne 158 C++
>
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::handle_callbacks_and_traverse(osg::Node
> & node={...}) Ligne 83 + 0x1c octets C++
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::apply(osg::Switch &
> node={...}) Ligne 57 + 0x1a octets C++
> osg35-osgd.dll!osg::Switch::accept(osg::NodeVisitor & nv={...}) Ligne
> 36 + 0x41 octets C++
> osg35-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})
> Ligne 62 + 0x25 octets C++
> osg35-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Ligne 181 + 0x1c octets C++
> osg35-osgd.dll!osg::NodeCallback::traverse(osg::Node *
> node=0x04daa100, osg::NodeVisitor * nv=0x01fc5630) Ligne 23 C++
> 3DEM.exe!AltitudeCallback::operator()(osg::Node * node=0x04daa100,
> osg::NodeVisitor * nv=0x01fc5630) Ligne 43 C++
>
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::handle_callbacks_and_traverse(osg::Node
> & node={...}) Ligne 83 + 0x1c octets C++
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::apply(osg::Group &
> node={...}) Ligne 54 + 0x1a octets C++
> osg35-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...}) Ligne
> 38 + 0x41 octets C++
> osg35-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})
> Ligne 62 + 0x25 octets C++
> osg35-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Ligne 181 + 0x1c octets C++
>
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::handle_callbacks_and_traverse(osg::Node
> & node={...}) Ligne 84 + 0x25 octets C++
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::apply(osg::Group &
> node={...}) Ligne 54 + 0x1a octets C++
> osg35-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...}) Ligne
> 38 + 0x41 octets C++
> osg35-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})
> Ligne 62 + 0x25 octets C++
> osg35-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Ligne 181 + 0x1c octets C++
>
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::handle_callbacks_and_traverse(osg::Node
> & node={...}) Ligne 84 + 0x25 octets C++
> osg35-osgUtild.dll!osgUtil::UpdateVisitor::apply(osg::Group &
> node={...}) Ligne 54 + 0x1a octets C++
> osg35-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...}) Ligne
> 38 + 0x41 octets C++
> osg35-osgViewerd.dll!osgViewer::Viewer::updateTraversal() Ligne 837 +
> 0x32 octets C++
> osg35-osgViewerd.dll!osgViewer::ViewerBase::frame(double
> simulationTime=1.7976931348623157e+308) Ligne 582 + 0xf octets C++
> 3DEM.exe!EM_Modules::run() Ligne 302 C++
> 3DEM.exe!EM_Modules::init(HWND__ * hWnd=0x00000000) Ligne 264 + 0xb
> octets C++
> 3DEM.exe!main(int argc=1, char * * argv=0x01f42940) Ligne 99 + 0xd
> octets C++
> 3DEM.exe!__tmainCRTStartup() Ligne 586 + 0x19 octets C
> 3DEM.exe!mainCRTStartup() Ligne 403 C
> kernel32.dll!7c816fd7()
> [Les frames ci-dessous sont peut-être incorrects et/ou manquants,
> aucun symbole chargé pour kernel32.dll]
Does it confirm you idea ?
Thanks.
Regards,
Vincent
2008/6/4 Robert Osfield <[EMAIL PROTECTED]>:
> Hi Vincent,
>
> This may be an issue with multiple computeBounds() running in a
> parallel. In the SVN version and 2.5.0/2.5.1 there is an call to
> sceneData->getBound() that does the initialization of the bounding
> volume while the code is still single threaded - something that should
> have been done for the whole 2.x series, but alas it was missed until
> the submission on the 12th May.
>
> So could you try SVN or 2.5.1 and see how you get on.
>
> Robert.
>
> On Wed, Jun 4, 2008 at 10:15 AM, Vincent Bourdier
> <[EMAIL PROTECTED]> wrote:
> > Hi All,
> >
> > Running my application, I get a random crash I cannot identify.
> > The error is : "vector<bool> iterator not dereferencable"
> >
> > Bu I've no vector<bool> in my code, So I gess it is in osg where the
> crash
> > append.
> > Maybe I make something wrong in my code, but I've no idea where or what
> the
> > bug can be...
> >
> > The application uses a lot of OpenThreads, that modify the scenegraph,
> but
> > they looks synchronized now...
> >
> > Any idea ?
> >
> > Thank you.
> >
> > Regards,
> > Vincent.
> >
> > Note :
> >
> >> Configuration : WinXP, osg 2.2 & 2.4
> >
> > Stack trace on crash :
> >
> >> > msvcp80d.dll!std::_Debug_message(const wchar_t *
> message=0x103ed770,
> >> > const wchar_t * file=0x1039b478, unsigned int line=1463) Ligne 23
> C++
> >>
> >> osg35-osgd.dll!std::_Vb_reference<std::vector<bool,std::allocator<bool>
> >
> >> >::_Getptr() Ligne 1463 + 0x17 octets C++
> >>
> >> osg35-osgd.dll!std::_Vb_reference<std::vector<bool,std::allocator<bool>
> >
> >> >::operator bool() Ligne 1453 + 0x8 octets C++
> >>
> >>
> osg35-osgd.dll!std::_Vb_const_iterator<std::vector<bool,std::allocator<bool>
> >> > >::operator*() Ligne 1523 + 0x24 octets C++
> >> osg35-osgd.dll!std::vector<bool,std::allocator<bool>
> >> >::operator[](unsigned int _Off=1) Ligne 2010 + 0x41 octets C++
> >> osg35-osgd.dll!osg::Switch::computeBound() Ligne 198 + 0x12
> >> octets C++
> >> osg35-osgd.dll!osg::Node::getBound() Ligne 268 + 0x13 octets
> C++
> >> osg35-osgd.dll!osg::Group::computeBound() Ligne 357 + 0x16 octets
> >> C++
> >> osg35-osgd.dll!osg::Node::getBound() Ligne 268 + 0x13 octets
> C++
> >> osg35-osgd.dll!osg::Group::computeBound() Ligne 357 + 0x16 octets
> >> C++
> >> osg35-osgd.dll!osg::Node::getBound() Ligne 268 + 0x13 octets
> C++
> >> osg35-osgd.dll!osg::Node::isCullingActive() Ligne 191 + 0x39
> >> octets C++
> >> osg35-osgd.dll!osg::CullStack::isCulled(const osg::Node &
> >> node={...}) Ligne 109 + 0x8 octets C++
> >> osg35-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Group &
> >> node={...}) Ligne 969 + 0x12 octets C++
> >> osg35-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})
> Ligne
> >> 38 + 0x41 octets C++
> >> osg35-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})
> >> Ligne 62 + 0x25 octets C++
> >> osg35-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> >> Ligne 181 + 0x1c octets C++
> >>
> >>
> osg35-osgUtild.dll!osgUtil::CullVisitor::handle_cull_callbacks_and_traverse(osg::Node
> >> & node={...}) Ligne 277 + 0xf octets C++
> >> osg35-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Group &
> >> node={...}) Ligne 981 C++
> >> osg35-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})
> Ligne
> >> 38 + 0x41 octets C++
> >> osg35-osgUtild.dll!osgUtil::SceneView::cullStage(const osg::Matrixd
> &
> >> projection={...}, const osg::Matrixd & modelview={...},
> osgUtil::CullVisitor
> >> * cullVisitor=0x01fb46b8, osgUtil::StateGraph * rendergraph=0x01fb4220,
> >> osgUtil::RenderStage * renderStage=0x01fb42b8) Ligne 821 + 0x42 octets
> >> C++
> >> osg35-osgUtild.dll!osgUtil::SceneView::cull() Ligne 687 + 0x4e
> >> octets C++
> >> osg35-osgViewerd.dll!osgViewer::Renderer::cull() Ligne 285 + 0xf
> >> octets C++
> >> osg35-osgViewerd.dll!osgViewer::ViewerBase::renderingTraversals()
> >> Ligne 643 + 0x15 octets C++
> >> osg35-osgViewerd.dll!osgViewer::ViewerBase::frame(double
> >> simulationTime=1.7976931348623157e+308) Ligne 583 + 0xf octets C++
> >> 3DEM.exe!EM_Modules::run() Ligne 302 C++
> >> 3DEM.exe!EM_Modules::init(HWND__ * hWnd=0x00000000) Ligne 264 +
> 0xb
> >> octets C++
> >> 3DEM.exe!main(int argc=1, char * * argv=0x01f32940) Ligne 99 + 0xd
> >> octets C++
> >> 3DEM.exe!__tmainCRTStartup() Ligne 586 + 0x19 octets C
> >> 3DEM.exe!mainCRTStartup() Ligne 403 C
> >> kernel32.dll!7c816fd7()
> >> [Les frames ci-dessous sont peut-être incorrects et/ou manquants,
> >> aucun symbole chargé pour kernel32.dll]
> >
> >
> >
> > _______________________________________________
> > 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
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org