CEGUI crash when shutdown the ogre

For help with anything that CEGUI doesn't offer straight out-of-the-box, e.g.:
- Implementation of new features, such as new Core classes, widgets, WindowRenderers, etc. ...
- Modification of any existing features for specific purposes
- Integration of CEGUI in new engines or frameworks and writing of new plugins (Renderer, Parser, ...) or modules

Moderators: CEGUI MVP, CEGUI Team

Caifie
Just popping in
Just popping in
Posts: 2
Joined: Sat Mar 20, 2010 02:50

CEGUI crash when shutdown the ogre

Postby Caifie » Sat Mar 20, 2010 03:03

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!

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Re: CEGUI crash when shutdown the ogre

Postby CrazyEddie » Sat Mar 20, 2010 08:34

Hi,

Please post your CEGUI log (or at least the indicated part of it).

What does 'crash' mean? This is meaningless drivel :P 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.

Caifie
Just popping in
Just popping in
Posts: 2
Joined: Sat Mar 20, 2010 02:50

Re: CEGUI crash when shutdown the ogre

Postby Caifie » Sat Mar 20, 2010 11:44

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

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!

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Re: CEGUI crash when shutdown the ogre

Postby CrazyEddie » Sun Mar 21, 2010 07:04

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.


Return to “Modifications / Integrations / Customisations”

Who is online

Users browsing this forum: No registered users and 4 guests