Hi Vincent, I really can't help much with your invalid iterator. It could be unrelated to the bug fix already checked in w.r.t bounding volume update, or it could be already fixed.
The SVN and 2.5.1 contain a number of fixes so I'd recommend try updating the OSG before you do anything else as chasing an already fixed problem is not a good use of any of our time. Robert. On Wed, Jun 4, 2008 at 10:24 AM, Vincent Bourdier <[EMAIL PROTECTED]> wrote: > 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 >> > osg-users@lists.openscenegraph.org >> > >> > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org >> > >> > >> _______________________________________________ >> osg-users mailing list >> osg-users@lists.openscenegraph.org >> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > > _______________________________________________ > osg-users mailing list > osg-users@lists.openscenegraph.org > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org