I can't provide any assistance myself, but I note that someone filed a related bug in Jira (http://issues.apache.org/jira/browse/XERCESC-1310) a couple of months back. You might attach a comment to the bug or contact the reporter directly to see what progress, if any, has been made. Maybe he's already encountered and resolved this issue.


From: Johnson, Sarah (Basestar) [mailto:[EMAIL PROTECTED]
Sent: Monday, February 14, 2005 1:55 PM
To: xerces-c-dev@xml.apache.org
Subject: request help with XERCES 2.5 OVMS port - SAMPLES programs accvio accessing parent in isKidOK; ported 2.0 works fine on OVMS

Hi,
 
i'm attempting to port XERCES 2.5 to OVMS... i have a clean build, but all the sample programs accvio in the same place... the HP compiler folks tell me the field being accessed is compiler generated (i have no C++, XML or XERCES experience), but they don't know what source code (constructor) is being executed in the 2.0 code that sets it properly, and i can't figure what what is not setting it in the 2.5...
 
below is a debugger 2.0 and 2.5 run with some comments... if anyone can point me to the constructor code being run when (the 2.0) address 12841960 is set with 6341976, i'll be very grateful! 
 
the 2.5 code that accvios is always:
 
stepped to DOMDocumentImpl::isKidOK\%LINE 82344 in THREAD 1
 82344:       int p=parent->getNodeType();
(see below for more details)
 
i welcome all thoughts/suggestions!
 
thank-you!
sarah johnson
 
************************
2.0
first, just showing DOMCount runs OK on 2.0:
 
$ dc20 personal.xml
         OpenVMS Alpha Debug64 Version V8.2-016
%DEBUG-I-INITIAL, Language: C++, Module: DOMCount
%DEBUG-I-NOTATMAIN, Type GO to reach MAIN program
DBG> Go
break at routine DOMCount\main in THREAD 1
 87511:     if (argC < 2)
DBG> go
personal.xml: 3149 ms (37 elems).
%DEBUG-I-EXITSTATUS, is '%SYSTEM-S-NORMAL, normal successful completion'
DBG> exit
$
 
now a rerun, with a watchpoint set at the address that 'parent' is at in isKidOK
it seems to be set in the constructor for DOMDocumentImpl, but i can't figure out what source corresponds to that
 
watch of 12841960 at DOMDocumentImpl::DOMDocumentImpl()\%LINE 65494+300 in THREAD 1
 65494: DOMDocumentImpl::DOMDocumentImpl()
   old value: 6376760
   new value: 6341976
break at DOMDocumentImpl::DOMDocumentImpl()\%LINE 65519
 
DBG> sho call
 module name    routine name     line           rel PC           abs PC
*DOMDocumentImpl
                DOMDocumentImpl()
                                65519       0000000000001CCC 000000000075F61C
*DOMImplementationImpl
                *createDocument()
                                92422       00000000000011D8 0000000000779758
*AbstractDOMParser
                startDocument
                               108527       00000000000046B4 00000000006FE6B4
*IGXMLScanner   scanDocument   116270       0000000000002D0C 00000000007E9E7C
*XMLScanner     scanDocument(const XMLCh *const)
                                68081       0000000000003A08 00000000008F44A8
*XMLScanner     scanDocument(const char *const)
                                68089       0000000000003AD8 00000000008F4578
*AbstractDOMParser
                parse(const char *const)
                               108249       0000000000003154 00000000006FD154
*DOMBuilderImpl *parseURI(const char *const)
                                76967       0000000000002618 0000000000754EE8
 SHARE$DOMCount                             0000000000003794 0000000000073794
 
 65494: DOMDocumentImpl::DOMDocumentImpl()
 65495:     : fNode(this),
 65496:       fParent(this),
...
 65516:       errorChecking(true)
 65517: {
 65518:         //sj
->5519:         printf("\n\nDOMDocumentImpl::DOMDocumentImpl PRE fNamePool\n");
 65520:     fNamePool    = new (this) DOMStringPool(257, this);
 65521:         //sj
 65522:         printf("\n\nDOMDocumentImpl::DOMDocumentImpl POST fNamePool\n");
 65523: };
 
now break on isKidOK... parent is initialized fine, and code runs to the end...
DBG> sho call
 module name    routine name     line           rel PC           abs PC
*DOMDocumentImpl
                isKidOK         66125       00000000000049C0 0000000000762310
*DOMParentNode  insertBefore    44859       000000000000121C 00000000007866FC
*DOMDocumentImpl
                insertBefore    65921       0000000000003BC4 0000000000761514
*DOMDocumentImpl
                appendChild     66178       0000000000004BEC 000000000076253C
*DOMDocumentImpl
                setDocumentType
                                65595       0000000000002264 000000000075FBB4
*AbstractDOMParser
                doctypeDecl    108999       0000000000006778 0000000000700778
*IGXMLScanner   scanDocTypeDecl
                               117327       0000000000005A5C 00000000007ECBCC
*XMLScanner     scanProlog      68842       0000000000005B44 00000000008F65E4
*IGXMLScanner   scanDocument   116274       0000000000002D24 00000000007E9E94
*XMLScanner     scanDocument(const XMLCh *const)
                                68081       0000000000003A08 00000000008F44A8
*XMLScanner     scanDocument(const char *const)
                                68089       0000000000003AD8 00000000008F4578
*AbstractDOMParser
                parse(const char *const)
                               108249       0000000000003154 00000000006FD154
*DOMBuilderImpl *parseURI(const char *const)
                                76967       0000000000002618 0000000000754EE8
 SHARE$DOMCount                             0000000000003794 0000000000073794
 
DBG> Step
stepped to DOMDocumentImpl::isKidOK\%LINE 66155 in THREAD 1
 66155:       int p=parent->getNodeType();
DBG> ex parent
DOMDocumentImpl::isKidOK::parent:       12841960
DBG> ex *parent
*DOMDocumentImpl::isKidOK::parent: class DOMNode
    __vptr:     6341976
DBG>
DBG> ex 6341976
DOMDocumentImpl\__vtbl2_7DOMNode11DOMDocument15DOMDocumentImpl[0]:      5635296
DBG>
**********************************************************************************
now the 2.5 code... breakpoint again set on the address that parent will be at in isKidOK, but no value is ever written there... break on isKidOK
 
(had watchpoint set on 14240064... never changed)
 
DBG> Step
stepped to DOMDocumentImpl::isKidOK\%LINE 82344 in THREAD 1
 82344:       int p=parent->getNodeType();
DBG> ex parent
DOMDocumentImpl::isKidOK::parent:       14240064
DBG> ex *parent
*DOMDocumentImpl::isKidOK::parent: class DOMNode
    __vptr:     0
DBG> sho call
 module name    routine name     line           rel PC           abs PC
*DOMDocumentImpl
                isKidOK         82344       0000000000005580 00000000007EE5C0
*DOMParentNode  insertBefore    52367       0000000000000FDC 000000000081C7DC
*DOMDocumentImpl
                insertBefore    82114       0000000000004624 00000000007ED664
*DOMDocumentImpl
                appendChild     82364       00000000000056C8 00000000007EE708
*DOMDocumentImpl
                setDocumentType
                                81797       0000000000002974 00000000007EB9B4
*AbstractDOMParser
                doctypeDecl    175041       0000000000006DB4 0000000000770DB4
*IGXMLScanner   scanDocTypeDecl
                               166906       000000000000792C 000000000089BC0C
*XMLScanner     scanProlog     132154       0000000000006838 00000000009F83C8
*IGXMLScanner   scanDocument   165667       0000000000003A88 0000000000897D68
*XMLScanner     scanDocument(const XMLCh *const)
                               131372       0000000000004174 00000000009F5D04
*XMLScanner     scanDocument(const char *const)
                               131380       000000000000448C 00000000009F601C
*AbstractDOMParser
                parse(const char *const)
                               174314       00000000000039D8 000000000076D9D8
*DOMBuilderImpl *parseURI(const char *const)
                               148345       0000000000002D48 00000000007DE648
 SHARE$DOMCount                             0000000000003C34 0000000000073C34
and so it accvios
 
DBG> s
%SYSTEM-F-ACCVIO, access violation, reason mask=00, virtual address=000000000000
000C, PC=00000000007EE5E8, PS=0000001B
break on unhandled exception at DOMDocumentImpl::isKidOK\%LINE 82344+40 in THREAD 1
 82344:       int p=parent->getNodeType();
DBG>
 
just from poking around, i found the address 3 bytes back 'seemed' valid...
DBG> ex 14240061
14240061:       6602808
DBG> ex 6602808
DOMDocumentImpl\__vtbl2_7DOMNode11DOMDocument15DOMDocumentImpl[0]:      5672808
so i re-ran, and forced that value into 'parent' just to see what would happen...
 
it goes further, but accvios later...
 
DBG> Step
stepped to DOMDocumentImpl::isKidOK\%LINE 82344 in THREAD 1
 82344:       int p=parent->getNodeType();
DBG> ex parent
DOMDocumentImpl::isKidOK::parent:       14240064
DBG> ex *parent
*DOMDocumentImpl::isKidOK::parent: class DOMNode
    __vptr:     0
DBG> ex 14240061
14240061:       6602808
DBG> dep 14240064 = 6602808
DBG> ex 6602808
DOMDocumentImpl\__vtbl2_7DOMNode11DOMDocument15DOMDocumentImpl[0]:      5672808
DBG> Go
 
%SYSTEM-F-ACCVIO, access violation, reason mask=00, virtual address=000000003864
C078, PC=000000000076E1A0, PS=0000001B
break on unhandled exception at AbstractDOMParser::docComment\%LINE 174434+40 in
 THREAD 1
174434:         fCurrentParent->appendChild(dcom);
DBG> ex dcom
AbstractDOMParser::docComment::%LINE 174433::dcom:      14283728
DBG> ex 14283728
14283728:       6627896
DBG>
 
 
 
 
 
 
 

Reply via email to