hi,every one!
i'm using ogre1.7+cegui0.7.1. i have creat a ogre app and load the interface which are dll files made by cegui. it run well except the shutdown.
when i shutdown the ogre app, i make the cegui button quit to subscribe a function quit , whose core is below:
bool quitclick(const CEGUI::EventArgs& e)
{
Ogre::Root::getSingleton().queueEndRendering();
}
when i do shutdown, the app will die at :
void SubscriberSlot::cleanup()
{
delete d_functor_impl;
d_functor_impl = 0;
}
how can i solve it, somebody help me!
CEGUI crash when shutdown the ogre
Moderators: CEGUI MVP, CEGUI Team
- CrazyEddie
- CEGUI Project Lead
- Posts: 6760
- Joined: Wed Jan 12, 2005 12:06
- Location: England
- Contact:
Re: CEGUI crash when shutdown the ogre
Hi,
Please post your CEGUI log (or at least the indicated part of it).
What does 'crash' mean? This is meaningless drivel If you're getting some kind of unhandled exception (whether a segfault / access violation or such), or an assertion failure, please post the details and any messages that you can obtain in order that we might be able to better identify the issue.
Thanks,
CE.
Please post your CEGUI log (or at least the indicated part of it).
What does 'crash' mean? This is meaningless drivel If you're getting some kind of unhandled exception (whether a segfault / access violation or such), or an assertion failure, please post the details and any messages that you can obtain in order that we might be able to better identify the issue.
Thanks,
CE.
Useful Links: Forum Guidelines | Documentation | Tutorials | HOWTO | Videos | Donate to CEGUI | CEGUI Twitter
Re: CEGUI crash when shutdown the ogre
thanks for your reply, CE!
infact, there aren't any useful info in the log, the log begin like below,
20/03/2010 19:15:33 (Std) CEGUI::Logger singleton created. (05096E00)
20/03/2010 19:15:33 (Std)
20/03/2010 19:15:33 (Std) ********************************************************************************
20/03/2010 19:15:33 (Std) * Important: *
20/03/2010 19:15:33 (Std) * To get support at the CEGUI forums, you must post _at least_ the section *
20/03/2010 19:15:33 (Std) * of this log file indicated below. Failure to do this will result in no *
20/03/2010 19:15:33 (Std) * support being given; please do not waste our time. *
20/03/2010 19:15:33 (Std) ********************************************************************************
20/03/2010 19:15:33 (Std) ********************************************************************************
20/03/2010 19:15:33 (Std) * -------- START OF ESSENTIAL SECTION TO BE POSTED ON THE FORUM -------- *
20/03/2010 19:15:33 (Std) ********************************************************************************
20/03/2010 19:15:33 (Std) ---- Version 0.7.1 (Build: Mar 19 2010 Debug Microsoft Windows MSVC++ 9.0 32 bit) ----
20/03/2010 19:15:33 (Std) ---- Renderer module is: CEGUI::OgreRenderer - Official OGRE based 2nd generation renderer module. ----
20/03/2010 19:15:33 (Std) ---- XML Parser module is: CEGUI::TinyXMLParser - Official tinyXML based parser module for CEGUI ----
20/03/2010 19:15:33 (Std) ---- Image Codec module is: OgreImageCodec - Integrated ImageCodec using the Ogre engine. ----
20/03/2010 19:15:33 (Std) ---- Scripting module is: None ----
20/03/2010 19:15:33 (Std) ********************************************************************************
20/03/2010 19:15:33 (Std) * -------- END OF ESSENTIAL SECTION TO BE POSTED ON THE FORUM -------- *
and end with the below line,
20/03/2010 19:15:44 (Std) ---- Begining CEGUI System destruction ----
which mean that it can not destruct successfuly.
when i run the app and shutdown it, run the
it will die at the function,
the value of d_functor_impl is wrong.
the calling stack at the time of the crash:
CEGUIBase_d.dll!CEGUI::SubscriberSlot::cleanup() Line 52 + 0x32 bytes C++
CEGUIBase_d.dll!CEGUI::Event::~Event() Line 74 C++
CEGUIBase_d.dll!CEGUI::Event::`scalar deleting destructor'() + 0x2b bytes C++
CEGUIBase_d.dll!CEGUI::EventSet::removeAllEvents() Line 97 + 0x36 bytes C++
CEGUIBase_d.dll!CEGUI::EventSet::~EventSet() Line 54 C++
CEGUIBase_d.dll!CEGUI::Window::~Window() Line 245 + 0x11c bytes C++
CEGUIBase_d.dll!CEGUI::ButtonBase::~ButtonBase() Line 53 + 0x8 bytes C++
CEGUIBase_d.dll!CEGUI::PushButton::~PushButton() Line 59 + 0x8 bytes C++
CEGUIBase_d.dll!CEGUI::PushButton::`vector deleting destructor'() + 0x6c bytes C++
CEGUIBase_d.dll!CEGUI::TplWindowFactory<CEGUI::PushButton>::destroyWindow(CEGUI::Window * window=0x06e17e98) CEGUIBase_d.dll!CEGUI::WindowManager::cleanDeadPool() Line 286 + 0x1a bytes C++
CEGUIBase_d.dll!CEGUI::System::~System() Line 372 C++
CEGUIBase_d.dll!CEGUI::System::`vector deleting destructor'() + 0x6c bytes C++
CEGUIBase_d.dll!CEGUI::System::destroy() Line 1829 + 0x36 bytes C++
CEGUIOgreRenderer_d.dll!CEGUI::OgreRenderer::destroySystem() Line 112 + 0x8 bytes C++
Fron.exe!Ogre::FronContext::~FronContext() Line 41 + 0x1b bytes C++
Fron.exe!WinMain(HINSTANCE__ * __formal=0x00400000, HINSTANCE__ * __formal=0x00400000, HINSTANCE__ * __formal=0x00400000, HINSTANCE__ * __formal=0x00400000) Line 23 + 0xf bytes C++
Fron.exe!__tmainCRTStartup() Line 578 + 0x35 bytes C
Fron.exe!WinMainCRTStartup() Line 403 C
The text of the error is:
Unhandled exception at 0x05d7f9d0 (CEGUIBase_d.dll) in Fron.exe:0xC0000005: Access violation reading location 0x00b38505
Unhandled exception at 0x05d7f9d0 (CEGUIBase_d.dll) in Fron.exe:0xC0000005: Access violation reading location 0x00b38505
is these enough for you ?
help me, thanks!
infact, there aren't any useful info in the log, the log begin like below,
20/03/2010 19:15:33 (Std) CEGUI::Logger singleton created. (05096E00)
20/03/2010 19:15:33 (Std)
20/03/2010 19:15:33 (Std) ********************************************************************************
20/03/2010 19:15:33 (Std) * Important: *
20/03/2010 19:15:33 (Std) * To get support at the CEGUI forums, you must post _at least_ the section *
20/03/2010 19:15:33 (Std) * of this log file indicated below. Failure to do this will result in no *
20/03/2010 19:15:33 (Std) * support being given; please do not waste our time. *
20/03/2010 19:15:33 (Std) ********************************************************************************
20/03/2010 19:15:33 (Std) ********************************************************************************
20/03/2010 19:15:33 (Std) * -------- START OF ESSENTIAL SECTION TO BE POSTED ON THE FORUM -------- *
20/03/2010 19:15:33 (Std) ********************************************************************************
20/03/2010 19:15:33 (Std) ---- Version 0.7.1 (Build: Mar 19 2010 Debug Microsoft Windows MSVC++ 9.0 32 bit) ----
20/03/2010 19:15:33 (Std) ---- Renderer module is: CEGUI::OgreRenderer - Official OGRE based 2nd generation renderer module. ----
20/03/2010 19:15:33 (Std) ---- XML Parser module is: CEGUI::TinyXMLParser - Official tinyXML based parser module for CEGUI ----
20/03/2010 19:15:33 (Std) ---- Image Codec module is: OgreImageCodec - Integrated ImageCodec using the Ogre engine. ----
20/03/2010 19:15:33 (Std) ---- Scripting module is: None ----
20/03/2010 19:15:33 (Std) ********************************************************************************
20/03/2010 19:15:33 (Std) * -------- END OF ESSENTIAL SECTION TO BE POSTED ON THE FORUM -------- *
and end with the below line,
20/03/2010 19:15:44 (Std) ---- Begining CEGUI System destruction ----
which mean that it can not destruct successfuly.
when i run the app and shutdown it, run the
Code: Select all
FronContext::~FronContext(void)
{
if (CEGUI::System::getSingletonPtr()) CEGUI::OgreRenderer::destroySystem();
if (mCameraMan) delete mCameraMan;
//Remove ourself as a Window listener
Ogre::WindowEventUtilities::removeWindowEventListener(mWindow, this);
if (mRoot) OGRE_DELETE mRoot;
}
it will die at the function,
Code: Select all
void SubscriberSlot::cleanup()
{
delete d_functor_impl;
d_functor_impl = 0;
}
the value of d_functor_impl is wrong.
the calling stack at the time of the crash:
CEGUIBase_d.dll!CEGUI::SubscriberSlot::cleanup() Line 52 + 0x32 bytes C++
CEGUIBase_d.dll!CEGUI::Event::~Event() Line 74 C++
CEGUIBase_d.dll!CEGUI::Event::`scalar deleting destructor'() + 0x2b bytes C++
CEGUIBase_d.dll!CEGUI::EventSet::removeAllEvents() Line 97 + 0x36 bytes C++
CEGUIBase_d.dll!CEGUI::EventSet::~EventSet() Line 54 C++
CEGUIBase_d.dll!CEGUI::Window::~Window() Line 245 + 0x11c bytes C++
CEGUIBase_d.dll!CEGUI::ButtonBase::~ButtonBase() Line 53 + 0x8 bytes C++
CEGUIBase_d.dll!CEGUI::PushButton::~PushButton() Line 59 + 0x8 bytes C++
CEGUIBase_d.dll!CEGUI::PushButton::`vector deleting destructor'() + 0x6c bytes C++
CEGUIBase_d.dll!CEGUI::TplWindowFactory<CEGUI::PushButton>::destroyWindow(CEGUI::Window * window=0x06e17e98) CEGUIBase_d.dll!CEGUI::WindowManager::cleanDeadPool() Line 286 + 0x1a bytes C++
CEGUIBase_d.dll!CEGUI::System::~System() Line 372 C++
CEGUIBase_d.dll!CEGUI::System::`vector deleting destructor'() + 0x6c bytes C++
CEGUIBase_d.dll!CEGUI::System::destroy() Line 1829 + 0x36 bytes C++
CEGUIOgreRenderer_d.dll!CEGUI::OgreRenderer::destroySystem() Line 112 + 0x8 bytes C++
Fron.exe!Ogre::FronContext::~FronContext() Line 41 + 0x1b bytes C++
Fron.exe!WinMain(HINSTANCE__ * __formal=0x00400000, HINSTANCE__ * __formal=0x00400000, HINSTANCE__ * __formal=0x00400000, HINSTANCE__ * __formal=0x00400000) Line 23 + 0xf bytes C++
Fron.exe!__tmainCRTStartup() Line 578 + 0x35 bytes C
Fron.exe!WinMainCRTStartup() Line 403 C
The text of the error is:
Unhandled exception at 0x05d7f9d0 (CEGUIBase_d.dll) in Fron.exe:0xC0000005: Access violation reading location 0x00b38505
Unhandled exception at 0x05d7f9d0 (CEGUIBase_d.dll) in Fron.exe:0xC0000005: Access violation reading location 0x00b38505
is these enough for you ?
help me, thanks!
- CrazyEddie
- CEGUI Project Lead
- Posts: 6760
- Joined: Wed Jan 12, 2005 12:06
- Location: England
- Contact:
Re: CEGUI crash when shutdown the ogre
Thanks for the additional information, this is much more helpful since now we can see exactly where the issue is. Having said this, I can't see an exact cause. It looks like a possible double deletion issue, although I'm not 100% sure how that situation might arise.
Are you doing anything with the event subscription on the PushButton after you have subscribed it - including disconnecting, deleting anything, or any thing else?
CE.
Are you doing anything with the event subscription on the PushButton after you have subscribed it - including disconnecting, deleting anything, or any thing else?
CE.
Useful Links: Forum Guidelines | Documentation | Tutorials | HOWTO | Videos | Donate to CEGUI | CEGUI Twitter
Return to “Modifications / Integrations / Customisations”
Who is online
Users browsing this forum: No registered users and 4 guests