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 Bryan Barnett <ba...@ll.mit.edu> on 2006/09/06 18:26:29 UTC
xerces-c 2.7.0, solaris 2.7, and gcc 4.0.3
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.
Bryan
Re: xerces-c 2.7.0, solaris 2.7, and gcc 4.0.3
Posted by Alberto Massari <am...@datadirect.com>.
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
Re: xerces-c 2.7.0, solaris 2.7, and gcc 4.0.3
Posted by Bryan Barnett <ba...@ll.mit.edu>.
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.
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
Re: xerces-c 2.7.0, solaris 2.7, and gcc 4.0.3
Posted by Alberto Massari <am...@datadirect.com>.
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