Ashley Zinyk wrote:
Hi,

We ran into a problem running Xalan-C 1.10 that I don't know how to solve.

The environment is AIX 5.2.  We compiled our code with VACPP 5.0, and we
used XercesC, XalanC, and ICU 3.2.1 libraries compiled with VACPP 6.0 (with
-qnamemangling=v5).

We built XalanC like this:

./runConfigure -paix -cxlc_r -xxlC_r -b32 -d -m icu "-z -qstaticinline -z
-qnamemangling=v5"
Hi Ashley,

You might want to try compiling the Xalan-C, Xerces-C, and the ICU with VACPP 5.0 to see if perhaps there is some compatibility issue between the two compilers.


It fails on line 138 of XalanDocumentPrefixResolver.cpp:

  120
XalanDocumentPrefixResolver::NamespaceNodesTreeWalker::startNode(const
XalanNode*       node)
  121   {
  122           assert(node != 0);
  123
  124           switch(node->getNodeType())
  125           {
  126           case XalanNode::ELEMENT_NODE:
  127                   {
  128                           const XalanElement*     theElementNode =
  129   #if defined(XALAN_OLD_STYLE_CASTS)
  130                                   (const XalanElement*)node;
  131   #else
  132                                   static_cast<const
XalanElement*>(node);
  133   #endif
  134
  135                           const XalanNamedNodeMap* const    atts =
theElementNode->getAttributes();
  136                           assert(atts != 0);
  137
  138                           const unsigned int    theSize =
atts->getLength();

Illegal instruction in . at 0x0 ($t1)
0x00000000 00000000       Invalid opcode.
So the code is attempting to execute an instruction at address 0, which means there's probably a null function pointer.


"atts" is set up like this:

stopped in xalanc_1_10::XalanSourceTreeElementNA::getAttributes() const at
line 93
   90   const XalanNamedNodeMap*
   91   XalanSourceTreeElementNA::getAttributes() const
   92   {
   93           return &s_emptyAttributes;
   94   }

(dbx) print atts
0x2036d0d8

It could be a problem with the virtual function table, so I would look at the documentation for VACPP 6.0 to see if there are additional compatibility switches that you might need. If you look at the disassembly, you should be able to verify if the call to the virtual function is what's crashing.

Dave

Reply via email to