While running this simple ooRexx code, sometimes a crash in orexxole happens:

   say "... creating AutoCAD.Application"
   myApp = .oleobject~new("AutoCAD.Application")

AutoCAD needs quite a long time to get loaded.

Threads:

   Not Flagged          17016   0       Worker Thread   
ntdll.dll!TppWorkerThread       ntdll.dll!NtWaitForWorkViaWorkerFactory Normal
   *Not Flagged > 6512 0 Main Thread Main Thread orexxole.dll!fExploreTypeAttr 
Normal*
   Not Flagged          16852   0       Worker Thread   
ntdll.dll!TppWorkerThread       ntdll.dll!NtWaitForWorkViaWorkerFactory Normal
   Not Flagged          21536   0       Worker Thread   
ntdll.dll!TppWorkerThread       ntdll.dll!NtWaitForWorkViaWorkerFactory Normal
   Not Flagged          23708   0       Worker Thread   ANSI64.dll thread       
ANSI64.dll!0000000056bd2390     Normal
   Not Flagged          8812    0       Worker Thread   
combase.dll!CRpcThreadCache::RpcWorkerThreadEntry       
combase.dll!WaitCoalesced       Normal
   Not Flagged          5528    0       Worker Thread   
ntdll.dll!TppWorkerThread       ntdll.dll!NtWaitForWorkViaWorkerFactory Normal
   Not Flagged          20300   0       Worker Thread   
ntdll.dll!TppWorkerThread       ntdll.dll!NtWaitForWorkViaWorkerFactory Normal

Here The Call Stack:

   *> orexxole.dll!fExploreTypeAttr(ITypeInfo * pTypeInfo=0x000001fdec7e54a8, 
tagTYPEATTR *
   pTypeAttr=0x000001fde96650c0, _OLECLASSINFO * pClsInfo=0x000001fde962d810) 
Line 2329 C++****orexxole.dll!fExploreTypeInfo(ITypeInfo * 
pTypeInfo=0x000001fde962e0a8, _OLECLASSINFO *
   pClsInfo=0x000001fde962d810) Line 2507 
C++****orexxole.dll!OLEObject_Init_impl(RexxMethodContext_ * 
context=0x0000000c2a6acc98,
   _RexxObjectPtr * self=0x000001fdeb7aebd0, const char * 
pszArg=0x000001fdeb79e724, const char *
   eventString=0x0000000000000000, _RexxObjectPtr * 
getObjectFlag=0x0000000000000000) Line 3036 
C++****orexxole.dll!OLEObject_Init(RexxMethodContext_ * 
context=0x0000000c2a6acc98, _ValueDescriptor *
   arguments=0x0000000c2a6acb80) Line 2738 C++***       
rexx.dll!NativeActivation::run(MethodClass * _method=0x000001fdeb710a20, 
NativeMethod * _code=0x000001fdeb713630, RexxObject * _receiver=0x000001fdeb7aebd0, 
RexxString * _msgname=0x000001fdeb571660, RexxObject * * 
_arglist=0x000001fdec3a3128, unsigned __int64 _argcount=1, ProtectedObject & 
resultObj={...}) Line 1307       C++
        rexx.dll!NativeMethod::run(Activity * activity=0x000001fdeb791cb0, 
MethodClass * method=0x000001fdeb710a20, RexxObject * receiver=0x000001fdeb7aebd0, 
RexxString * messageName=0x000001fdeb571660, RexxObject * * 
argPtr=0x000001fdec3a3128, unsigned __int64 count=1, ProtectedObject & 
result={...}) Line 329     C++
        rexx.dll!MethodClass::run(Activity * activity=0x000001fdeb791cb0, 
RexxObject * receiver=0x000001fdeb7aebd0, RexxString * msgname=0x000001fdeb571660, 
RexxObject * * argPtr=0x000001fdec3a3128, unsigned __int64 count=1, ProtectedObject 
& result={...}) Line 172   C++
        rexx.dll!RexxObject::messageSend(RexxString * msgname=0x000001fdeb571660, 
RexxObject * * arguments=0x000001fdec3a3128, unsigned __int64 count=1, 
ProtectedObject & result={...}) Line 902   C++
        rexx.dll!RexxObject::sendMessage(RexxString * message=0x000001fdeb571660, 
RexxObject * * args=0x000001fdec3a3128, unsigned __int64 argCount=1, 
ProtectedObject & result={...}) Line 510     C++
        rexx.dll!RexxClass::completeNewObject(RexxObject * 
obj=0x000001fdeb7aebd0, RexxObject * * initArgs=0x000001fdec3a3128, unsigned 
__int64 argCount=1) Line 1899   C++
        rexx.dll!RexxObject::newRexx(RexxObject * * 
arguments=0x000001fdec3a3128, unsigned __int64 argCount=1) Line 2672        C++
        rexx.dll!CPPCode::run(Activity * activity=0x000001fdeb791cb0, MethodClass * 
method=0x000001fdeb570d10, RexxObject * receiver=0x000001fdeb70dd20, RexxString * 
messageName=0x000001fdeb79e690, RexxObject * * argPtr=0x000001fdec3a3128, unsigned 
__int64 count=1, ProtectedObject & result={...}) Line 147  C++
        rexx.dll!MethodClass::run(Activity * activity=0x000001fdeb791cb0, 
RexxObject * receiver=0x000001fdeb70dd20, RexxString * msgname=0x000001fdeb79e690, 
RexxObject * * argPtr=0x000001fdec3a3128, unsigned __int64 count=1, ProtectedObject 
& result={...}) Line 172   C++
        rexx.dll!RexxObject::messageSend(RexxString * msgname=0x000001fdeb79e690, 
RexxObject * * arguments=0x000001fdec3a3128, unsigned __int64 count=1, RexxClass * 
startscope=0x000001fdeb56b8c0, ProtectedObject & result={...}) Line 955        
C++
        rexx.dll!RexxActivation::forward(RexxObject * 
target=0x000001fdeb70dd20, RexxString * message=0x000001fdeb79e690, RexxClass * 
superClass=0x000001fdeb56b8c0, RexxObject * * arguments=0x000001fdec3a3128, 
unsigned __int64 argcount=1, bool continuing=false) Line 1280 C++
        rexx.dll!RexxInstructionForward::execute(RexxActivation * 
context=0x000001fdeb7ae170, ExpressionStack * stack=0x000001fdeb7ae2d8) Line 
235      C++
        rexx.dll!RexxActivation::run(RexxObject * _receiver=0x000001fdeb70dd20, 
RexxString * name=0x000001fdeb79e690, RexxObject * * _arglist=0x000001fdec3a3128, 
unsigned __int64 _argcount=1, RexxInstruction * start=0x0000000000000000, 
ProtectedObject & resultObj={...}) Line 594     C++
        rexx.dll!RexxCode::run(Activity * activity=0x000001fdeb791cb0, MethodClass 
* method=0x000001fdeb70f490, RexxObject * receiver=0x000001fdeb70dd20, RexxString * 
msgname=0x000001fdeb79e690, RexxObject * * argPtr=0x000001fdec3a3128, unsigned 
__int64 argcount=1, ProtectedObject & result={...}) Line 211  C++
        rexx.dll!MethodClass::run(Activity * activity=0x000001fdeb791cb0, 
RexxObject * receiver=0x000001fdeb70dd20, RexxString * msgname=0x000001fdeb79e690, 
RexxObject * * argPtr=0x000001fdec3a3128, unsigned __int64 count=1, ProtectedObject 
& result={...}) Line 172   C++
        rexx.dll!RexxObject::messageSend(RexxString * msgname=0x000001fdeb79e690, 
RexxObject * * arguments=0x000001fdec3a3128, unsigned __int64 count=1, 
ProtectedObject & result={...}) Line 902   C++
        rexx.dll!ExpressionStack::send(RexxString * message=0x000001fdeb79e690, 
unsigned __int64 count=1, ProtectedObject & result={...}) Line 80   C++
        rexx.dll!RexxExpressionMessage::evaluate(RexxActivation * 
context=0x000001fdeb7ad710, ExpressionStack * stack=0x000001fdeb7ad878) Line 
191      C++
        rexx.dll!RexxInstructionAssignment::execute(RexxActivation * 
context=0x000001fdeb7ad710, ExpressionStack * stack=0x000001fdeb7ad878) Line 
129   C++
        rexx.dll!RexxActivation::run(RexxObject * _receiver=0x0000000000000000, 
RexxString * name=0x000001fdeb798460, RexxObject * * _arglist=0x000001fdeb797cc0, 
unsigned __int64 _argcount=0, RexxInstruction * start=0x0000000000000000, 
ProtectedObject & resultObj={...}) Line 594     C++
        rexx.dll!RexxCode::call(Activity * activity=0x000001fdeb791cb0, 
RoutineClass * routine=0x000001fdeb7ad6d0, RexxString * 
routineName=0x000001fdeb798460, RexxObject * * argPtr=0x000001fdeb797cc0, unsigned 
__int64 argcount=0, RexxString * calltype=0x000001fdeb5def00, RexxString * 
environment=0x000001fdeb7767a0, ActivationContext context=PROGRAMCALL, 
ProtectedObject & result={...}) Line 188       C++
        rexx.dll!RoutineClass::runProgram(Activity * activity=0x000001fdeb791cb0, 
RexxObject * * arguments=0x000001fdeb797cc0, unsigned __int64 argCount=0, 
ProtectedObject & result={...}) Line 265        C++
        rexx.dll!CallProgramDispatcher::run() Line 242  C++
        rexx.dll!NativeActivation::run(ActivityDispatcher & dispatcher={...}) 
Line 1641     C++
        rexx.dll!Activity::run(ActivityDispatcher & target={...}) Line 3313 C++
        rexx.dll!CallProgram(RexxThreadContext_ * c=0x000001fdeb791cd8, const 
char * p=0x000001fde959d54d, _RexxArrayObject * a=0x000001fdeb797c60) Line 516  
  C++
        rexx.exe!RexxThreadContext_::CallProgram(const char * 
n=0x000001fde959d54d, _RexxArrayObject * a=0x000001fdeb797c60) Line 999   C++
        rexx.exe!main(int argc=2, char * * argv=0x000001fde959d530) Line 226    
C++
        rexx.exe!invoke_main() Line 65  C++
        rexx.exe!__scrt_common_main_seh() Line 253      C++
        rexx.exe!__scrt_common_main() Line 296  C++
        rexx.exe!mainCRTStartup() Line 17       C++
        kernel32.dll!BaseThreadInitThunk()     Unknown
        ntdll.dll!RtlUserThreadStart() Unknown

This is with a 64-bit debug version of the latest ooRexx (r12388).

Sometimes the creation is successful, sometimes it crashes.

---

Leaving the debugger open in case more information is necessary. (Will be off 
for a while though.)

---rony

---rony

_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to