Hi Bryan,

At 10.05 11/09/2006 -0400, Bryan Barnett wrote:
Hi Alberto,

Sorry for the repeat of the original message.

Yes, the intermittent crash even happened when compiled for debug and running in gdb. It still crashed at a different place each time.

Tried recompiling/re-instrumenting DOMMemTest this morning with different purify options and got a little farther. Purify now reports "Fatal core dump" at line 335 of DOMImplementationImpl.cpp which is the end of "DOMImplementationImpl::getDOMImplementation(unsigned short const*) const". More helpful perhaps is the report of

Address 0xffbedd30 is 4 bytes above stack pointer in function non-virtual thunk to xercesc_2_7::DOMImplementationImpl::getDOMImplementation(unsigned short const*) const

This makes me think linker problem, but I don't really know what a "non-virtual thunk" is.

Have you been able to run with GCC 4.0.3 on solaris? Perhaps it is my combination with the GNU binutils.

No, I haven't used gcc 4.0.3 on Solaris 2.7; given the Purify error, and the fact that the crashes occurs at different places, it should be a memory corruption problem. The release notes for gcc say something like "the combination Sun as + GNU ld is known to cause memory corruption at runtime in some cases for C++ programs"; can you check you are really using the GNU binutils and no native Sun tools?

Alberto


Bryan

Alberto Massari wrote:
At 12.26 06/09/2006 -0400, Bryan Barnett wrote:
Has anyone had any success with Xerces-C 2.7.0 on solaris 2.7 and the GCC 4.0.3 compilers? How about GCC 4.0.3 on other platforms?

Xerces-C successfully compiles with g++ 4.0.3, but the DOMMemTest fails and applications using SAX fail intermittently (different points in the document each time) with "Illegal Instruction", "Bus Error", or seg faults. I am also using GNU binutils 2.16.1 instead of the native sun utilities.

Compiling xerces-c in debug mode, Purify repeatedly reports "Stack array bounds read" and write errors, and "Fatal core dump", at line 125 of DOMMemTest.cpp. I have not been able to get Purify to report deeper into the library (?!).

Any insight would be appreciated. Thanks for your time.
Hi Bryan,
in order to get Purify to report from inside the Xerces library, you should rebuild Xerces using the Purify front end (sorry, cannot give you more directions, as I haven't used Purify for a few years). However, it looks something is really broken, as line 125 is doc = DOMImplementationRegistry::getDOMImplementation(X("Core"))->createDocument();
and I cannot see what could be crashing there.
Did you reproduce the intermittent crash while running inside gdb?
Alberto

Reply via email to