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