Caleb Gingles - 2004-09-25

Are there any known problems with TinyXML and STLPort's debug mode (defining _STLP_DEBUG)? I've been using TinyXML in my project, and recently added _STLP_DEBUG to the debug version to allow Boost::filesystem to compile, but the program now freezes. Compiles fine, but doesn't run. However the Release (non-debug) version works as it should.

I finally narrowed it down to a conflict between TinyXML and the _STLP_DEBUG define. Even the following code on its own, with _STLP_DEBUG defined, will freeze on execution:

#define TIXML_USE_STL
#include <tinyxml.h>

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
{
    TiXmlDocument doc;
    doc.LoadFile( "test.xml" );
}

Nothing to it, and yet it freezes every time. If I run the program under the debugger and pause it while its frozen, it always turns up in the following STLPort function (within _threads.c):

template <int __inst>
void  _STLP_CALL
_STLP_mutex_spin<__inst>::_M_do_lock(volatile __stl_atomic_t* __lock)

Any possible ideas what could be causing the conflict? Given the simplicity of the test code causing the freeze, I don't know what else to try. Any ideas? I'm at a loss here.