Hi, My program uses xerces-2.7.0 and xalan-c-1.10. It performs a loop calling successively: XMLPlatformUtils::Initialize(); XalanTransformer::initialize();
// some code XalanTransformer::terminate(); XMLPlatformUtils::Terminate(); The 1rst loop is ok, but it cores at the second one. Thanks for your help Simon gdb output: -------------- (gdb) where #0 0x04f66ef1 in kill () from /lib/libc.so.6 #1 0x043a5bb1 in pthread_kill () from /lib/libpthread.so.0 #2 0x043a5f2b in raise () from /lib/libpthread.so.0 #3 0x04f66b24 in raise () from /lib/libc.so.6 #4 0x04f683fd in abort () from /lib/libc.so.6 #5 0x050f3954 in __cxa_call_unexpected () from /usr/lib/libstdc++.so.5 #6 0x050f3991 in std::terminate () from /usr/lib/libstdc++.so.5 #7 0x050f3ec8 in __cxa_pure_virtual () from /usr/lib/libstdc++.so.5 #8 0x04dc5856 in xalanc_1_10::XalanCopyConstruct<xalanc_1_10::FunctionCurrent> () from /usr/local/lib/libxalan-c.so.110 #9 0x04dc5634 in xalanc_1_10::FunctionCurrent::clone () from /usr/local/lib/libxalan-c.so.110 #10 0x04d20e14 in xalanc_1_10::XPathFunctionTable::InstallFunction () from /usr/local/lib/libxalan-c.so.110 #11 0x04e462ae in xalanc_1_10::XSLTEngineImpl::installFunctions () from /usr/local/lib/libxalan-c.so.110 #12 0x04e4a24c in xalanc_1_10::XSLTEngineImpl::initialize () from /usr/local/lib/libxalan-c.so.110 #13 0x04e53812 in xalanc_1_10::XSLTInit::initialize () from /usr/local/lib/libxalan-c.so.110 #14 0x04e53a6e in xalanc_1_10::XSLTInit::XSLTInit () from /usr/local/lib/libxalan-c.so.110 #15 0x04e53c10 in xalanc_1_10::XSLTInit::create () from /usr/local/lib/libxalan-c.so.110 #16 0x04e76205 in xalanc_1_10::XalanTransformer::initialize () from /usr/local/lib/libxalan-c.so.110 #17 0x043529bc in Export (this=0x5470038, a_type_proc_id=4, a_action_id=16, [EMAIL PROTECTED], a_aTransaction=0xbeb3d290, a_pclConnection=0x51f9658) at Export.cpp:63 #18 0x043131f5 in Engine::ProcessFunction (this=0xbeb3d240, customer_id=19592, action_id=16, function_id=8, [EMAIL PROTECTED], aTransaction=0xbeb3d290) at Engine.cpp:464 #19 0x04314666 in Engine::AchieveRollbackActions (this=0xbeb3d240, a_aTransaction=0xbeb3d290) at Engine.cpp:312 #20 0x04397eb3 in AdamaRollback::StartServer (this=0xbeb3d324) at AdamaRollback.cpp:92 #21 0x04398703 in main () at AdamaRollback.cpp:130 #22 0x04f53469 in __libc_start_main () from /lib/libc.so.6 #23 0x08048601 in _start () at ../sysdeps/i386/elf/start.S:119 valgrind output: ----------------- ==9191== Invalid read of size 4 ==9191== at 0x4DC584A: xalanc_1_10::FunctionCurrent* xalanc_1_10::XalanCopyConstruct<xalanc_1_10::FunctionCurrent>(xercesc_2_7::MemoryManager&, xalanc_1_10::FunctionCurrent const&) (in /usr/local/lib/libxalan-c.so.110.0) ==9191== by 0x4DC5633: xalanc_1_10::FunctionCurrent::clone(xercesc_2_7::MemoryManager&) const (in /usr/local/lib/libxalan-c.so.110.0) ==9191== by 0x4D20E13: xalanc_1_10::XPathFunctionTable::InstallFunction(unsigned short const*, xalanc_1_10::Function const&) (in /usr/local/lib/libxalan-c.so.110.0) ==9191== by 0x4E462AD: xalanc_1_10::XSLTEngineImpl::installFunctions(xercesc_2_7::MemoryManager&) (in /usr/local/lib/libxalan-c.so.110.0) ==9191== by 0x4E4A24B: xalanc_1_10::XSLTEngineImpl::initialize(xercesc_2_7::MemoryManager&) (in /usr/local/lib/libxalan-c.so.110.0) ==9191== by 0x4E53811: xalanc_1_10::XSLTInit::initialize(xercesc_2_7::MemoryManager&) (in /usr/local/lib/libxalan-c.so.110.0) ==9191== by 0x4E53A6D: xalanc_1_10::XSLTInit::XSLTInit(xercesc_2_7::MemoryManager&) (in /usr/local/lib/libxalan-c.so.110.0) ==9191== by 0x4E53C0F: xalanc_1_10::XSLTInit::create(xercesc_2_7::MemoryManager&) (in /usr/local/lib/libxalan-c.so.110.0) ==9191== by 0x4E76204: xalanc_1_10::XalanTransformer::initialize(xercesc_2_7::MemoryManager&) (in /usr/local/lib/libxalan-c.so.110.0) ==9191== by 0x43529BB: Export::Export(int, int, std::string, pqxx::transaction<(pqxx::isolation_level)0>*, pqxx::basic_connection<pqxx::connect_direct>*) (Export.cpp:63) ==9191== by 0x43131F4: Engine::ProcessFunction(int, int, int, std::string, pqxx::transaction<(pqxx::isolation_level)0>*) (Engine.cpp:464) ==9191== by 0x4314665: Engine::AchieveRollbackActions(pqxx::transaction<(pqxx::isolation_level)0>*) (Engine.cpp:312) ==9191== Address 0x5251C38 is 0 bytes inside a block of size 4 free'd ==9191== at 0x401BEC1: operator delete(void*) (vg_replace_malloc.c:244) ==9191== by 0x45CAEBA: xercesc_2_7::MemoryManagerImpl::~MemoryManagerImpl() (in /home/simon/software/xerces-c-src_2_7_0/lib/libxerces-c.so.27.0) ==9191== by 0x45DA75A: xercesc_2_7::XMLPlatformUtils::Terminate() (in /home/simon/software/xerces-c-src_2_7_0/lib/libxerces-c.so.27.0) ==9191== by 0x43521E6: Export::~Export() (Export.cpp:106) ==9191== by 0x430BA2A: Engine::LastProcess() (Engine.cpp:497) ==9191== by 0x4314735: Engine::AchieveRollbackActions(pqxx::transaction<(pqxx::isolation_level)0>*) (Engine.cpp:314) ==9191== by 0x4397EB2: AdamaRollback::StartServer() (AdamaRollback.cpp:92) ==9191== by 0x4398702: main (AdamaRollback.cpp:130)