I reverted to OgreRC1 built without STLport, with VC7.1.
The crashOnExit issue continues showing up.
Here follows a detailed description:
To cause the error, open the Gui sample in Samples directory and paste these lines at the end of GuiApplication::createScene():
Code: Select all
Ogre::SceneManager *pSceneMgr = mSceneMgr;
Ogre::Entity *pkEntity = pSceneMgr->createEntity("TestEntity", "robot.mesh");
Ogre::SceneNode *pkNode = pSceneMgr->getRootSceneNode()->createChildSceneNode("TestNode");
pkNode->attachObject(pkEntity);
Run & close the application, I have a crash:
Code: Select all
Eccezione non gestita a 0x10419beb (OgreMain_d.dll) in Demo_Gui.exe: 0xC0000005: Violazione di accesso nella lettura del percorso 0x00000004.
which in english sounds like:
Code: Select all
Unmanaged exception a 0x10419beb (OgreMain_d.dll) in Demo_Gui.exe: 0xC0000005: Access violation in reading path 0x00000004.
Call stack is:
Code: Select all
> OgreMain_d.dll!std::_Tree<std::_Tset_traits<Ogre::HardwareVertexBuffer *,std::less<Ogre::HardwareVertexBuffer *>,std::allocator<Ogre::HardwareVertexBuffer *>,0> >::_Lbound(Ogre::HardwareVertexBuffer * const & _Keyval=0x0364a178) Riga 988 + 0x8 C++
OgreMain_d.dll!std::_Tree<std::_Tset_traits<Ogre::HardwareVertexBuffer *,std::less<Ogre::HardwareVertexBuffer *>,std::allocator<Ogre::HardwareVertexBuffer *>,0> >::lower_bound(Ogre::HardwareVertexBuffer * const & _Keyval=0x0364a178) Riga 810 + 0xc C++
OgreMain_d.dll!std::_Tree<std::_Tset_traits<Ogre::HardwareVertexBuffer *,std::less<Ogre::HardwareVertexBuffer *>,std::allocator<Ogre::HardwareVertexBuffer *>,0> >::find(Ogre::HardwareVertexBuffer * const & _Keyval=0x0364a178) Riga 790 C++
OgreMain_d.dll!Ogre::HardwareBufferManager::_notifyVertexBufferDestroyed(Ogre::HardwareVertexBuffer * buf=0x0364a178) Riga 279 C++
OgreMain_d.dll!Ogre::HardwareVertexBuffer::~HardwareVertexBuffer() Riga 62 C++
RenderSystem_Direct3D9.dll!Ogre::D3D9HardwareVertexBuffer::~D3D9HardwareVertexBuffer() Riga 66 + 0x12 C++
RenderSystem_Direct3D9.dll!Ogre::D3D9HardwareVertexBuffer::`scalar deleting destructor'() + 0x2b C++
OgreMain_d.dll!Ogre::SharedPtr<Ogre::HardwareVertexBuffer>::destroy() Riga 149 + 0x6b C++
OgreMain_d.dll!Ogre::SharedPtr<Ogre::HardwareVertexBuffer>::release() Riga 140 + 0xd C++
OgreMain_d.dll!Ogre::SharedPtr<Ogre::HardwareVertexBuffer>::~SharedPtr<Ogre::HardwareVertexBuffer>() Riga 89 C++
OgreMain_d.dll!Ogre::HardwareVertexBufferSharedPtr::~HardwareVertexBufferSharedPtr() + 0x2b C++
OgreMain_d.dll!Ogre::HardwareBufferManager::VertexBufferLicense::~VertexBufferLicense() + 0x2e C++
OgreMain_d.dll!Ogre::HardwareBufferManager::VertexBufferLicense::`scalar deleting destructor'() + 0x2b C++
OgreMain_d.dll!std::_Destroy<Ogre::HardwareBufferManager::VertexBufferLicense>(Ogre::HardwareBufferManager::VertexBufferLicense * _Ptr=0x0360f6e0) Riga 50 C++
OgreMain_d.dll!std::allocator<Ogre::HardwareBufferManager::VertexBufferLicense>::destroy(Ogre::HardwareBufferManager::VertexBufferLicense * _Ptr=0x0360f6e0) Riga 152 + 0x9 C++
OgreMain_d.dll!std::_Destroy_range<Ogre::HardwareBufferManager::VertexBufferLicense,std::allocator<Ogre::HardwareBufferManager::VertexBufferLicense> >(Ogre::HardwareBufferManager::VertexBufferLicense * _First=0x0360f6e0, Ogre::HardwareBufferManager::VertexBufferLicense * _Last=0x0360f6f8, std::allocator<Ogre::HardwareBufferManager::VertexBufferLicense> & _Al={...}, std::_Nonscalar_ptr_iterator_tag __formal={...}) Riga 226 + 0xc C++
OgreMain_d.dll!std::_Destroy_range<Ogre::HardwareBufferManager::VertexBufferLicense,std::allocator<Ogre::HardwareBufferManager::VertexBufferLicense> >(Ogre::HardwareBufferManager::VertexBufferLicense * _First=0x0360f6e0, Ogre::HardwareBufferManager::VertexBufferLicense * _Last=0x0360f6f8, std::allocator<Ogre::HardwareBufferManager::VertexBufferLicense> & _Al={...}) Riga 217 + 0x2e C++
OgreMain_d.dll!std::vector<Ogre::HardwareBufferManager::VertexBufferLicense,std::allocator<Ogre::HardwareBufferManager::VertexBufferLicense> >::_Destroy(Ogre::HardwareBufferManager::VertexBufferLicense * _First=0x0360f6e0, Ogre::HardwareBufferManager::VertexBufferLicense * _Last=0x0360f6f8) Riga 787 + 0x11 C++
OgreMain_d.dll!std::vector<Ogre::HardwareBufferManager::VertexBufferLicense,std::allocator<Ogre::HardwareBufferManager::VertexBufferLicense> >::_Tidy() Riga 795 C++
OgreMain_d.dll!std::vector<Ogre::HardwareBufferManager::VertexBufferLicense,std::allocator<Ogre::HardwareBufferManager::VertexBufferLicense> >::~vector<Ogre::HardwareBufferManager::VertexBufferLicense,std::allocator<Ogre::HardwareBufferManager::VertexBufferLicense> >() Riga 389 C++
OgreMain_d.dll!Ogre::HardwareBufferManager::~HardwareBufferManager() Riga 61 + 0x2d C++
RenderSystem_Direct3D9.dll!Ogre::D3D9HardwareBufferManager::~D3D9HardwareBufferManager() Riga 41 + 0x12 C++
RenderSystem_Direct3D9.dll!Ogre::D3D9HardwareBufferManager::`scalar deleting destructor'() + 0x2b C++
RenderSystem_Direct3D9.dll!Ogre::D3D9RenderSystem::~D3D9RenderSystem() Riga 128 + 0x98 C++
RenderSystem_Direct3D9.dll!Ogre::D3D9RenderSystem::`scalar deleting destructor'() + 0x2b C++
RenderSystem_Direct3D9.dll!dllStopPlugin() Riga 50 + 0x84 C++
OgreMain_d.dll!Ogre::Root::unloadPlugins() Riga 693 + 0x5 C++
OgreMain_d.dll!Ogre::Root::~Root() Riga 264 C++
Demo_Gui.exe!Ogre::Root::`scalar deleting destructor'() + 0x2e C++
Demo_Gui.exe!ExampleApplication::~ExampleApplication() Riga 49 + 0x76 C++
Demo_Gui.exe!GuiApplication::~GuiApplication() Riga 197 + 0x1e C++
Demo_Gui.exe!WinMain(HINSTANCE__ * hInst=0x00400000, HINSTANCE__ * __formal=0x00000000, char * strCmdLine=0x00141f1d, HINSTANCE__ * __formal=0x00000000) Riga 588 + 0x19 C++
Demo_Gui.exe!WinMainCRTStartup() Riga 390 + 0x39 C
kernel32.dll!7c816d4f()
ntdll.dll!7c925b4f()
kernel32.dll!7c8399f3()
I can reproduce this bug at will, so please ask for further informations if you need them! Isn't it very strange?