Finally, I could try with the debug build and here's the call stack when the
crash occurs:
> osg78-osgd.dll!osg::ObserverSet::signalObjectDeleted(void * ptr) Line
> 79 + 0x1b bytes C++
osg78-osgd.dll!osg::Referenced::signalObserversAndDelete(bool
signalDelete, bool doDelete) Line 318 C++
osg78-osgd.dll!osg::Referenced::unref() Line 200 C++
osg78-osgDBd.dll!osg::ref_ptr<osg::Object>::~ref_ptr<osg::Object>()
Line 35 + 0x24 bytes C++
osg78-osgDBd.dll!std::_Pair_base<osg::ref_ptr<osg::Object>,double>::~_Pair_base<osg::ref_ptr<osg::Object>,double>()
+ 0x16 bytes C++
osg78-osgDBd.dll!std::pair<osg::ref_ptr<osg::Object>,double>::~pair<osg::ref_ptr<osg::Object>,double>()
+ 0x16 bytes C++
osg78-osgDBd.dll!std::_Pair_base<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> const ,std::pair<osg::ref_ptr<osg::Object>,double>
>::~_Pair_base<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> const ,std::pair<osg::ref_ptr<osg::Object>,double> >() + 0x3f bytes
C++
osg78-osgDBd.dll!std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> const ,std::pair<osg::ref_ptr<osg::Object>,double>
>::~pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> >
const ,std::pair<osg::ref_ptr<osg::Object>,double> >() + 0x16 bytes C++
osg78-osgDBd.dll!std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> const ,std::pair<osg::ref_ptr<osg::Object>,double> >::`scalar deleting
destructor'() + 0x16 bytes C++
osg78-osgDBd.dll!std::_Destroy<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> const ,std::pair<osg::ref_ptr<osg::Object>,double> >
>(std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> const ,std::pair<osg::ref_ptr<osg::Object>,double> > * _Ptr) Line 64
C++
osg78-osgDBd.dll!std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> const ,std::pair<osg::ref_ptr<osg::Object>,double> >
>::destroy(std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> const ,std::pair<osg::ref_ptr<osg::Object>,double> > * _Ptr) Line 213 + 0x9
bytes C++
osg78-osgDBd.dll!std::_Dest_val<std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> const ,std::pair<osg::ref_ptr<osg::Object>,double> >
>,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> const ,std::pair<osg::ref_ptr<osg::Object>,double> >
>(std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> const ,std::pair<osg::ref_ptr<osg::Object>,double> > > & _Alval,
std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> >
const ,std::pair<osg::ref_ptr<osg::Object>,double> > * _Pdest) Line 288
C++
osg78-osgDBd.dll!std::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char>
>,std::pair<osg::ref_ptr<osg::Object>,double>,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char>
>
>,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> const ,std::pair<osg::ref_ptr<osg::Object>,double> > >,0>
>::_Erase(std::_Tree_nod<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char>
>,std::pair<osg::ref_ptr<osg::Object>,double>,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char>
>
>,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> const ,std::pair<osg::ref_ptr<osg::Object>,double> > >,0> >::_Node *
_Rootnode) Line 1617 + 0x22 bytes C++
osg78-osgDBd.dll!std::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char>
>,std::pair<osg::ref_ptr<osg::Object>,double>,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char>
>
>,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> const ,std::pair<osg::ref_ptr<osg::Object>,double> > >,0> >::clear() Line
1416 C++
osg78-osgDBd.dll!osgDB::Registry::clearObjectCache() Line 1601 C++
osg78-osgDBd.dll!osgDB::Registry::destruct() Line 431 C++
osg78-osgDBd.dll!osgDB::Registry::~Registry() Line 410 C++
osg78-osgDBd.dll!osgDB::Registry::`vector deleting destructor'() +
0x57 bytes C++
osg78-osgd.dll!osg::Referenced::signalObserversAndDelete(bool
signalDelete, bool doDelete) Line 323 + 0x23 bytes C++
osg78-osgd.dll!osg::Referenced::unref() Line 200 C++
osg78-osgDBd.dll!osg::ref_ptr<osgDB::Registry>::~ref_ptr<osgDB::Registry>()
Line 35 + 0x24 bytes C++
osg78-osgDBd.dll!`osgDB::Registry::instance'::`2'::`dynamic atexit
destructor for 's_registry''() + 0xd bytes C++
osg78-osgDBd.dll!_CRT_INIT(void * hDllHandle, unsigned long dwReason,
void * lpreserved) Line 415 C
osg78-osgDBd.dll!__DllMainCRTStartup(void * hDllHandle, unsigned long
dwReason, void * lpreserved) Line 526 + 0x11 bytes C
osg78-osgDBd.dll!_DllMainCRTStartup(void * hDllHandle, unsigned long
dwReason, void * lpreserved) Line 476 + 0x11 bytes C
ntdll.dll!76f297a0()
[Frames below may be incorrect and/or missing, no symbols loaded for
ntdll.dll]
ntdll.dll!76f3dcda()
ntdll.dll!76f3db7c()
kernel32.dll!75147363()
msvcr100d.dll!__crtExitProcess(int status) Line 709 C
msvcr100d.dll!doexit(int code, int quick, int retcaller) Line 621 +
0x9 bytes C
msvcr100d.dll!exit(int code) Line 393 + 0xd bytes C
osgviewerd.exe!__tmainCRTStartup() Line 568 C
osgviewerd.exe!mainCRTStartup() Line 371 C
kernel32.dll!75143677()
ntdll.dll!76f29d42()
ntdll.dll!76f29d15()
Please let me know if you need me to try something else.
Cheers.
Alessandro
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=40856#40856
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org