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