I've trapped one of the spurious exceptions when starting testOOrexx,
occurring while printing the "Searching for test containers...." dots.

I'm seeing the following (the "Stack frames" are a screen copy, as I don't
know how to export it to text).  Any ideas from you
more-experienced-than-me debuggers?

The offending instruction is the JMP almost at the very bottom, obviously
giving the illegal address at the top of the stack frames)

Stack frames:
[image: Inline image 1]
[image: Inline image 3]
...

Address: MemoryObject::markObjectsMain(RexxInternalObject *)

000007FEEA50DB71  mov         rdx,qword ptr [liveMark]
000007FEEA50DB76  mov         rax,qword ptr [rsp+28h]
000007FEEA50DB7B  mov         rcx,qword ptr [rax+18h]
000007FEEA50DB7F  call        RexxInternalObject::isObjectMarked
(07FEEA413E4Fh)
000007FEEA50DB84  movzx       eax,al
000007FEEA50DB87  test        eax,eax
000007FEEA50DB89  jne         MemoryObject::markObjectsMain+0D0h
(07FEEA50DBA0h)
000007FEEA50DB8B  mov         rax,qword ptr [rsp+28h]
000007FEEA50DB90  mov         rdx,qword ptr [rax+18h]
000007FEEA50DB94  lea         rcx,[memoryObject (07FEEA773DE0h)]
000007FEEA50DB9B  call        MemoryObject::mark (07FEEA41A010h)
        // Mark other referenced obj.  We can do this without checking
        // the references flag because we only push the object on to
        // the stack if it has references.
        allocations++;
000007FEEA50DBA0  mov         rax,qword ptr [this]
000007FEEA50DBA5  mov         rax,qword ptr [rax+0B08h]
000007FEEA50DBAC  inc         rax
000007FEEA50DBAF  mov         rcx,qword ptr [this]
000007FEEA50DBB4  mov         qword ptr [rcx+0B08h],rax
        markObject->live(liveMark);
000007FEEA50DBBB  mov         rax,qword ptr [rsp+28h]
000007FEEA50DBC0  mov         rax,qword ptr [rax]
000007FEEA50DBC3  mov         rdx,qword ptr [liveMark]
000007FEEA50DBC8  mov         rcx,qword ptr [rsp+28h]
000007FEEA50DBCD  call        qword ptr [rax+10h]
    }
000007FEEA50DBD0  jmp         MemoryObject::markObjectsMain+7Eh
(07FEEA50DB4Eh)
}
000007FEEA50DBD5  add         rsp,30h
000007FEEA50DBD9  pop         rdi
000007FEEA50DBDA  ret

000007FEEA50DB71  mov         rdx,qword ptr [liveMark]
000007FEEA50DB76  mov         rax,qword ptr [rsp+28h]
000007FEEA50DB7B  mov         rcx,qword ptr [rax+18h]
000007FEEA50DB7F  call        RexxInternalObject::isObjectMarked
(07FEEA413E4Fh)
000007FEEA50DB84  movzx       eax,al
000007FEEA50DB87  test        eax,eax
000007FEEA50DB89  jne         MemoryObject::markObjectsMain+0D0h
(07FEEA50DBA0h)
000007FEEA50DB8B  mov         rax,qword ptr [rsp+28h]
000007FEEA50DB90  mov         rdx,qword ptr [rax+18h]
000007FEEA50DB94  lea         rcx,[memoryObject (07FEEA773DE0h)]
000007FEEA50DB9B  call        MemoryObject::mark (07FEEA41A010h)
        // Mark other referenced obj.  We can do this without checking
        // the references flag because we only push the object on to
        // the stack if it has references.
        allocations++;
000007FEEA50DBA0  mov         rax,qword ptr [this]
000007FEEA50DBA5  mov         rax,qword ptr [rax+0B08h]
000007FEEA50DBAC  inc         rax
000007FEEA50DBAF  mov         rcx,qword ptr [this]
000007FEEA50DBB4  mov         qword ptr [rcx+0B08h],rax
        markObject->live(liveMark);
000007FEEA50DBBB  mov         rax,qword ptr [rsp+28h]
000007FEEA50DBC0  mov         rax,qword ptr [rax]
000007FEEA50DBC3  mov         rdx,qword ptr [liveMark]
000007FEEA50DBC8  mov         rcx,qword ptr [rsp+28h]
000007FEEA50DBCD  call        qword ptr [rax+10h]
    }
*000007FEEA50DBD0  jmp         MemoryObject::markObjectsMain+7Eh
(07FEEA50DB4Eh)  *
}
000007FEEA50DBD5  add         rsp,30h
000007FEEA50DBD9  pop         rdi
000007FEEA50DBDA  ret
------------------------------------------------------------------------------
_______________________________________________
Oorexx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to