Sean Johnston wrote:
I'm struggling with an unexpected crash. It seems that when I link with
Oracle OCI libraries on HPUX ia64 the parser crashes. It is fine when
linking with ODBC (easysoft) libraries.

The code changes in my application between the two builds are well
encaspulated and none of that code is executed before doing the parse.

This problem does not occur on Solaris. On both platforms I'm using a 64bit
build. I've tried a 32bit build on HPUX but that still falls over. A Windows
(32bit) build is also fine.

It looks like it is falling over in IGXMLScanner2.cpp:1286 where it calls
resetDocument() on the document handler. It ends up at BaseRefVectorOf.c:68
with ThrowXMLwithMemMgr.
Since that's a template, the compiler has had to generate an instantiation of that class. Where is the object code for that instantiation?


I'm setting a content handler and an error handler and using the
SAX2XMLReader created from the XMLReaderFactory::createXMLReader. Using
version 2.8.0.

It fails with a SIGILL, though in my various tweaking to try and get it
working I've had an address align signal at some point too.

I suspect this is a linker issue somehow given that it works without the
Oracle libraries linked in and on other platforms, but it's doing my head in
and I'm not sure where to go from here.

Does this ring any bells with anyone?
I would check two things:

1. Verify that all of your binaries are linking with the same -A option. That is, make sure you aren't mixing -AA and -AP. I would suspect the Oracle library was built with -AP.

2. Verify that the Oracle library you're using isn't also linking with Xerces-C or some variant of the Xerces-C library.

Dave

Reply via email to