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