Demo crash

Demon Lord

31-07-2006 21:19:01

Aloha!

Problem:
Running self-compiled Demo_PagingLandScape2.exe crash somewhere while initializing.

Context:
Freshly downloaded OgreSDK, PLSM2 SDK and datasrcs;
Compiled debug version of PLSM2;
MapSplitterD.exe ran successfully;
Demo_PagingLandScape2.exe crash with the console displaying:

(snip...)
Parsing script Splatting6.material
Parsing script Splatting7.material
Parsing script SplattingShader.material
Parsing script DebugOverlay.overlay
Parsing script PagingLandScape.overlay
Parsing script PagingLandScape2.overlay
Finished parsing scripts for resource group PLSM2
Added resource location '../../../paginglandscape/Samples/Media/paginglandscape2
/terrains/hf129_3' of type 'FileSystem' to resource group 'PLSM2'
Initialising resource group PLSM2
Trying Base2

with a stack overflow error in OgreMain_d.dll


OgreMain_d.dll!std::_Iterator_base::_Orphan_me() Line 169 + 0x9 bytes C++
OgreMain_d.dll!std::_Iterator_base::operator=(const std::_Iterator_base & _Right={...}) Line 142 C++
OgreMain_d.dll!std::_Iterator_base::_Iterator_base(const std::_Iterator_base & _Right={...}) Line 134 C++
OgreMain_d.dll!std::_Ranit_base<char,int,char const *,char const &,std::_Iterator_base>::_Ranit_base<char,int,char const *,char const &,std::_Iterator_base>(const std::_Ranit_base<char,int,char const *,char const &,std::_Iterator_base> & __that={...}) + 0x2f bytes C++
OgreMain_d.dll!std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >(const std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> > & __that=0x00033e9c "Base2") + 0x2f bytes C++
OgreMain_d.dll!std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> >::operator++(int __formal=0) Line 143 + 0xc bytes C++
OgreMain_d.dll!stdext::_Hash_value<std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> > >(std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> > _Begin=0x00033e9c "Base2", std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char> > _End=0x00033ea1 "") Line 46 + 0x1a bytes C++
OgreMain_d.dll!stdext::hash_value<char,std::char_traits<char>,std::allocator<char> >(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & _Str="Base2") Line 55 + 0x67 bytes C++
OgreMain_d.dll!stdext::hash_compare<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::operator()(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & _Keyval="Base2") Line 99 + 0x10 bytes C++
OgreMain_d.dll!stdext::_Hash<stdext::_Hmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,Ogre::SharedPtr<Ogre::Resource>,stdext::hash_compare<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,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 ,Ogre::SharedPtr<Ogre::Resource> > >,0> >::_Hashval(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & _Keyval="Base2") Line 601 + 0xf bytes C++
OgreMain_d.dll!stdext::_Hash<stdext::_Hmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,Ogre::SharedPtr<Ogre::Resource>,stdext::hash_compare<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,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 ,Ogre::SharedPtr<Ogre::Resource> > >,0> >::lower_bound(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & _Keyval="Base2") Line 473 + 0xc bytes C++
OgreMain_d.dll!stdext::_Hash<stdext::_Hmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,Ogre::SharedPtr<Ogre::Resource>,stdext::hash_compare<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,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 ,Ogre::SharedPtr<Ogre::Resource> > >,0> >::find(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & _Keyval="Base2") Line 455 + 0x10 bytes C++
OgreMain_d.dll!Ogre::ResourceManager::getByName(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & name="Base2") Line 270 + 0x13 bytes C++
Plugin_PagingLandScapeSceneManager2_d.dll!Ogre::PagingLandScapeTexture::setOptions() Line 301 + 0x35 bytes C++
Plugin_PagingLandScapeSceneManager2_d.dll!Ogre::PagingLandScapeTexture::setOptions() Line 350 + 0xf bytes C++
Plugin_PagingLandScapeSceneManager2_d.dll!Ogre::PagingLandScapeTexture::setOptions() Line 350 + 0xf bytes C++
(repeat ad infinitum...)


The relevant code I believe is this line (OgrePagingLandScapeTexture.cpp:301):

MaterialPtr material = MaterialManager::getSingleton().getByName (matClassName);

where matClassName == "Base2"


I was using the Direct3D driver on a GeForce 440 Go (doesn't support shaders).

If I can provide any detail that could help me use this library, I'll be glad :-)

Demon Lord

31-07-2006 22:11:39

I played around with "paginglandscape2.cfg" and could load a map, and not make the program crash on another one (though the map was invisible). Trying the "next map" and "next texture format" keys managed to crash the app, though.

I suppose some settings in the map config files cause my problems.

What's sad is that these are the default settings :(

tuan kuranes

01-08-2006 20:13:13

Plugin_PagingLandScapeSceneManager2_d.dll!Ogre::PagingLandScapeTexture::setOptions() Line 301 + 0x35 bytes C++ Plugin_PagingLandScapeSceneManager2_d.dll!Ogre::PagingLandScapeTexture::setOptions() Line 350 + 0xf bytes C++ Plugin_PagingLandScapeSceneManager2_d.dll!Ogre::PagingLandScapeTexture::setOptions() Line 350 + 0xf bytes C++

That looks like an old version of the plsm2 SDK, try with the latest one, redownload it.

Demon Lord

02-08-2006 20:16:08

I updated the SDK to yesterday's version and it works much better.

It has been reported before but I had to disable vertex compression to have maps not crash the application. I still have some maps not showing up, though.

Also, on the "puget_sound" map, it crashes with the following exception:


I quickly looked in my debugger, and it complains that mSize != mImage->getWidth(), (mSize == 129 and mImage.width == 513).

Otherwise, I'm pretty happy with the app :D

tuan kuranes

21-08-2006 18:07:32

seems SDK puge map still have a conflict between maplsplit option option and runtime demo map option.
I'll check that.

tuan kuranes

21-08-2006 18:16:42

or perhaps it was mapplit by a previous version of the SDK ?