Anders,
I think I am seeing the same behaviour as you.
My environment is MSVC7.1.
The plugin dll crashes during its initialisation phase when the global
reader writer proxy object is created by the runtime.
I swapped over to the debug builds of the dae and stuck a breakpoint in the
ReaderWriterDAE constructor.
If you use the debug build you can step into the
dae_ = new DAE();
call. I found that the dll crashes back to the operating system.
The crash looks to be a divide by zero caused by the following line in
daeArray::grow
size_t newCapacity = newSize/_elementSize;
_elementSize is for some reason is zero. I have not looked any further.
The stack looks like this.
osgdb_daeD.dll!daeArray::grow(unsigned int sz=0) Line 67 C++
osgdb_daeD.dll!daeTArray<char const *>::set(unsigned int index=0,
const char * const & value=0x0167cf30) Line 204 C++
osgdb_daeD.dll!daeTArray<char const *>::append(const char * const &
value=0x0167cf30) Line 222 C++
osgdb_daeD.dll!daeStringTable::allocateBuffer() Line 26 C++
osgdb_daeD.dll!daeStringTable::allocString(const char *
string=0x01a45348) Line 37 + 0x8 C++
> osgdb_daeD.dll!daeStringRef::daeStringRef(const char *
string=0x01a45348) Line 20 + 0xe C++
osgdb_daeD.dll!registerDomTypes() Line 25 + 0x13 C++
osgdb_daeD.dll!initializeDomMeta() Line 23 C++
osgdb_daeD.dll!DAE::DAE() Line 59 + 0x5 C++
osgdb_daeD.dll!ReaderWriterDAE::ReaderWriterDAE() Line 34 + 0x1f
C++
osgdb_daeD.dll!osgDB::RegisterReaderWriterProxy<ReaderWriterDAE>::RegisterRe
aderWriterProxy<ReaderWriterDAE>() Line 535 + 0x1f C++
osgdb_daeD.dll!$E7() Line 139 + 0xd C++
msvcr71d.dll!_initterm(void (void)* * pfbegin=0x01b69098, void
(void)* * pfend=0x01b690b4) Line 600 C
osgdb_daeD.dll!_CRT_INIT(void * hDllHandle=0x01720000, unsigned long
dwReason=1, void * lpreserved=0x00000000) Line 184 + 0xf C
osgdb_daeD.dll!_DllMainCRTStartup(void * hDllHandle=0x01720000,
unsigned long dwReason=1, void * lpreserved=0x00000000) Line 266 + 0x11
Could this be some kind of dll class interface export problem. Or maybe the
global objects are being initialised in the wrong order.
Roger
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:osg-users-
> [EMAIL PROTECTED] On Behalf Of Andreas Ekstrand
> Sent: 27 September 2006 09:08
> To: osg users
> Subject: Re: [osg-users] Collada plugin not working
>
> Marcus,
>
> Thanks for the suggestions. I would really appreciate it if you, or
> anyone else, could update the dae plugin from the latest cvs and verify
> that it's not only me seeing this behavior.
>
> >Is it the only OSG plugin that behaves this way?
> >
> >
> Yes, I haven't seen this behavior in other plugins, and it's perfectly
> reproducable by exchanging the modified cpp/h files - with the new files
> the DLL is not loaded, with the old files it works fine. By the way, I'm
> sure the DLL is found, OSGNOTIFYLEVEL=DEBUG told me that.
>
> The LoadLibrary documentation didn't tell me much. Do you know how to
> investigate a DLLs entry point function? I'm afraid my knowledge in that
> area is somewhat limited...
>
> /Andreas
>
> --
> ________________________________________________________________________
> Andreas Ekstrand
> Remograph
> Rekrytgatan 10
> SE-582 14 Linköping
> SWEDEN
> Website: http://www.remograph.com
> E-mail: [EMAIL PROTECTED]
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://openscenegraph.net/mailman/listinfo/osg-users
> http://www.openscenegraph.org/
_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/