You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-users@xerces.apache.org by Ryan Lee <ry...@avigilon.com> on 2007/05/08 20:40:37 UTC

Crash on XMLPlatformUtils::terminate()

Hello,

I am experiencing a crash when calling XMLPlatformUtils::terminate(). It
appears that an entry in the CPMapEntry is being deleted even though it
appears it was already deleted (or never initialized).

My configurations is as follows:
OS: Windox XP SP2
Compiler: Microsoft Visual Studio 2005 with SP1
Configuration: Xerces DLL (Debug) version 2.7

Note
- I have patched BinHTTPUrilInputStream.hpp/cpp to the latest version in
the svn trunk.
- I am using the Xerces distribution that comes with Berkeley DbXml
2.3.10. I don't call XMLPlatformUtils::Initialize()/ Terminate()
directly, instead letting the BerkeleyDb
Xqilla::Initialize()/Terminate() take care of Xerces initialization. I
have made sure that XMLPlatformUtils::Initialize()/ Terminate() is
called only once in my application.

Here is a copy of the call stack I get when closing Xerces.
============================================
     msvcr80d.dll!operator delete(void * pUserData=0xb3284e0e)  Line 52
+ 0x3 bytes    C++
     xerces-c_2_7D.dll!xercesc_2_7::MemoryManagerImpl::deallocate(void *
p=0xb3284e0e)  Line 47 + 0x9 bytes    C++
     xerces-c_2_7D.dll!xercesc_2_7::CPMapEntry::~CPMapEntry()  Line
168    C++
>    xerces-c_2_7D.dll!xercesc_2_7::CPMapEntry::`scalar deleting
destructor'()  + 0xf bytes    C++
    
xerces-c_2_7D.dll!xercesc_2_7::RefHashTableOf<xercesc_2_7::CPMapEntry>::removeAll() 
Line 209 + 0x1e bytes    C++
    
xerces-c_2_7D.dll!xercesc_2_7::RefHashTableOf<xercesc_2_7::CPMapEntry>::cleanup() 
Line 292    C++
    
xerces-c_2_7D.dll!xercesc_2_7::RefHashTableOf<xercesc_2_7::CPMapEntry>::~RefHashTableOf<xercesc_2_7::CPMapEntry>() 
Line 113    C++
    
xerces-c_2_7D.dll!xercesc_2_7::RefHashTableOf<xercesc_2_7::CPMapEntry>::`scalar
deleting destructor'()  + 0xf bytes    C++
    
xerces-c_2_7D.dll!xercesc_2_7::Win32TransService::~Win32TransService() 
Line 425 + 0x1f bytes    C++
     xerces-c_2_7D.dll!xercesc_2_7::Win32TransService::`vector deleting
destructor'()  + 0x4d bytes    C++
     xerces-c_2_7D.dll!xercesc_2_7::XMLPlatformUtils::Terminate()  Line
358 + 0x23 bytes    C++


Thanks in advance for any help that may be provided,
Ryan