Hi Jean-Sébastien I got the same problem using VS8, my app crash at exit in osgdb_freetped.dll.
It crashes at line : if (getDeleteHandler()) deleteUsingDeleteHandler(); in osg28-osgd.dll I'm using latest freetype lib 2.3.5 2008/1/7, Jean-Sébastien Guay <[EMAIL PROTECTED]>: > > Hello all, > > Is anyone else seeing a crash on exit with OSG applications (even > osgviewer and the examples) under MS VS8.0 when running in the debugger? > > To be specific: > > * Running in Visual Studio 8.0SP1 > * Debug configuration > * Mike's 3rd Party binaries for VS 8.0SP1 > > Repro steps: run osgviewer with cow.osg as argument (in debug properties). > > A) If you just do some things and exit, no crash on exit. > B) If you press 's' (or I guess any other text - anything that will > load osgdb_freetyped.dll to be loaded), and then exit, crash. > > Running from the command line does not show any problem. I need to be > in the debugger for it to show up. > > > The actual message I get is: > _______________________________________________ > > HEAP[osgviewerd.exe]: HEAP: Free Heap block 1d01268 modified at > 1d11d18 after it was freed > Windows has triggered a breakpoint in osgviewerd.exe. > > This may be due to a corruption of the heap, and indicates a bug in > osgviewerd.exe or any of the DLLs it has loaded. > _______________________________________________ > > > The stack trace is: > _______________________________________________ > > ntdll.dll!77212ea8() > [Frames below may be incorrect and/or missing, no symbols loaded > for ntdll.dll] > ntdll.dll!77280c9a() > ntdll.dll!7724d4c8() > ntdll.dll!77231d37() > ntdll.dll!77280f2b() > ntdll.dll!77281ee4() > ntdll.dll!77281ec8() > ntdll.dll!77281ec8() > ntdll.dll!7724d9fa() > ntdll.dll!77281ec8() > ntdll.dll!77231c21() > ntdll.dll!77281e58() > ntdll.dll!7724d9fa() > ntdll.dll!77232033() > ntdll.dll!77231c21() > kernel32.dll!76ef7a5e() > msvcr80d.dll!_free_base(void * pBlock=0x01d01208) Line 109 + 0x13 > bytes C > msvcr80d.dll!_free_dbg_nolock(void * pUserData=0x01d01228, int > nBlockUse=1) Line 1388 + 0x9 bytes C++ > msvcr80d.dll!_free_dbg(void * pUserData=0x01d01228, int > nBlockUse=1) Line 1220 + 0xd bytes C++ > msvcr80d.dll!free(void * pUserData=0x01d01228) Line 1178 + 0xb > bytes C++ > osgdb_freetyped.dll!_FT_New_Memory() + 0xf6 bytes > osgdb_freetyped.dll!_ft_mem_free() + 0x1c bytes > osgdb_freetyped.dll!_FT_Remove_Module() + 0x1a6 bytes > osgdb_freetyped.dll!_FT_Remove_Module() + 0xab bytes > osgdb_freetyped.dll!_FT_Done_Library() + 0xcf bytes > osgdb_freetyped.dll!_FT_Done_FreeType() + 0x22 bytes > osgdb_freetyped.dll!FreeTypeLibrary::~FreeTypeLibrary() Line 61 + > 0xc bytes C++ > osgdb_freetyped.dll!FreeTypeLibrary::`scalar deleting destructor'() > + 0x16 bytes C++ > > osg27-osgd.dll!osg::Referenced::unref() Line 155 + 0x23 > bytes C++ > > > osgdb_freetyped.dll!osg::ref_ptr<FreeTypeLibrary>::~ref_ptr<FreeTypeLibrary>() > Line > 30 + 0x24 > bytes C++ > osgdb_freetyped.dll!`FreeTypeLibrary::instance'::`2'::`dynamic > atexit destructor for 's_library''() + 0xd bytes C++ > osgdb_freetyped.dll!_CRT_INIT(void * hDllHandle=0x08c70000, > unsigned long dwReason=0, void * lpreserved=0x00000001) Line 420 C > osgdb_freetyped.dll!__DllMainCRTStartup(void * > hDllHandle=0x08c70000, unsigned long dwReason=0, void * > lpreserved=0x00000001) Line 512 + 0x11 bytes C > osgdb_freetyped.dll!_DllMainCRTStartup(void * > hDllHandle=0x08c70000, unsigned long dwReason=0, void * > lpreserved=0x00000001) Line 462 + 0x11 bytes C > ntdll.dll!7723a604() > ntdll.dll!7720a303() > ntdll.dll!7723602a() > ntdll.dll!7720a2e2() > ntdll.dll!7720a38e() > kernel32.dll!76eed85b() > msvcr80d.dll!__crtExitProcess(int status=0) Line 684 C > msvcr80d.dll!doexit(int code=0, int quick=0, int retcaller=0) Line > 596 + 0x9 bytes C > msvcr80d.dll!exit(int code=0) Line 398 + 0xd bytes C > osgviewerd.exe!__tmainCRTStartup() Line 610 C > osgviewerd.exe!mainCRTStartup() Line 414 C > kernel32.dll!76ef381b() > ntdll.dll!7720a9bd() > > ________________________________________________ > > > The last code I can inspect is in msvcr80d.dll!_free_base(void * > pBlock). The last relevant OSG call is > osgdb_freetyped.dll!_FT_New_Memory() called by > osgdb_freetyped.dll!_ft_mem_free(). But I can't inspect that code. > > I think I'll try to compile a local version of FreeType and see if > it's a problem with the version that's in Mike's binaries. > > In the mean time, can anyone please try to reproduce this? (see above) > > Thanks, > > J-S > -- > ______________________________________________________ > Jean-Sebastien Guay [EMAIL PROTECTED] > http://whitestar02.webhop.org/ > > ---------------------------------------------------------------- > This message was sent using IMP, the Internet Messaging Program. > > > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org >
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

