Hi there,
> For this one:
>
> Scenario 1: 32-bit Windows (not tested on 64-bit Windows), exception
> in "rexx.exe":
>
> Here I may get the following exception
>
>> rexx.dll!00337328()
>>
> [Frames below may be incorrect and/or missing, no symbols loaded for
> rexx.dll]
> rexx.dll!002ff218()
> rexx.dll!002e9490()
> rexx.dll!00303462()
> rexx.dll!003473c9()
> kernel32.dll!7c80b729()
>
> You're not going to get anywhere with this, you need to use a debug version
> of the interpreter and BSF so you can see what functions these are.
>
> If, you have a scenario that produces the exception 100% of the time with
> a non-debug build, and then never produces the exception with a debug
> version - well that's going to be hard. It also is very rare. But,
> if it is the case,
> you'll need to at least track the addresses down in the map file and use the
> *.asm files to see exactly where this sequence is.
>
O.K. done that, created and installed "ooRexx400_5165-x86_32-debug.exe".
Running the tests eventually (the 7th time running the BSF4Rexx suite)
will cause the following stack trace:
*
> rexx.dll!SourceLocation::getLineNumber() Line 51 + 0xa bytes C++
rexx.dll!RexxInstruction::getLineNumber() Line 79 + 0x12 bytes C++
rexx.dll!RexxActivation::getContextLineNumber() Line 2511 C++
rexx.dll!RexxActivation::createStackFrame() Line 4272 + 0x22 bytes
C++
rexx.dll!RexxActivationFrame::createStackFrame() Line 58 C++
rexx.dll!RexxActivity::createExceptionObject(long errcode=40900,
RexxString * description=0x00000000, RexxArray * additional=0x7d3eeb50,
RexxObject * result=0x00000000) Line 906 + 0xd bytes C++
rexx.dll!RexxActivity::raiseException(long errcode=40900, RexxString *
description=0x00000000, RexxArray * additional=0x7d3eeb50, RexxObject *
result=0x00000000) Line 753 + 0x18 bytes C++
rexx.dll!RexxActivity::reportAnException(long errcode=40900, RexxObject
* substitution1=0x7dc112c8) Line 505 C++
rexx.dll!reportException(long error=40900, RexxObject * a1=0x7dc112c8)
Line 159 C++
rexx.dll!RaiseException1(RexxThreadContext_ * c=0x7f3e5ca4, unsigned
int n=40900, _RexxObjectPtr * o1=0x7dc112c8) Line 1715 C++
BSF4Rexx.dll!RexxThreadContext_::RaiseException1(unsigned int n=40900,
_RexxObjectPtr * o=0x7dc112c8) Line 1284 C++
BSF4Rexx.dll!RexxCallContext_::RaiseException1(unsigned int n=40900,
_RexxObjectPtr * o=0x7dc112c8) Line 2629 C++
BSF4Rexx.dll!BSF_impl(RexxCallContext_ * context=0x07f6f870,
_RexxArrayObject * argArray=0x7f0e17d8) Line 5199 C++
BSF4Rexx.dll!BSF(RexxCallContext_ * context=0x07f6f870, ValueDescriptor
* arguments=0x07f6f88c) Line 5146 + 0x17 bytes C++
rexx.dll!RexxNativeActivation::callNativeRoutine(RoutineClass *
_routine=0x7f224268, RexxNativeRoutine * _code=0x7f224248, RexxString *
functionName=0x7f196a28, RexxObject * * list=0x7e2a38cc, unsigned int count=2,
ProtectedObject & resultObj={...}) Line 1319 C++
rexx.dll!RexxNativeRoutine::call(RexxActivity * activity=0x7f3e5c90,
RoutineClass * routine=0x7f224268, RexxString * functionName=0x7f196a28,
RexxObject * * argPtr=0x7e2a38cc, unsigned int count=2, ProtectedObject &
result={...}) Line 316 C++
rexx.dll!RoutineClass::call(RexxActivity * activity=0x7f3e5c90,
RexxString * msgname=0x7f196a28, RexxObject * * argPtr=0x7e2a38cc, unsigned int
argcount=2, ProtectedObject & result={...}) Line 234 C++
rexx.dll!PackageManager::callNativeRoutine(RexxActivity *
activity=0x7f3e5c90, RexxString * name=0x7f196a28, RexxObject * *
arguments=0x7e2a38cc, unsigned int argcount=2, ProtectedObject & result={...})
Line 658 C++
rexx.dll!SystemInterpreter::invokeExternalFunction(RexxActivation *
activation=0x7d539800, RexxActivity * activity=0x7f3e5c90, RexxString *
target=0x7f196a28, RexxObject * * arguments=0x7e2a38cc, unsigned int
argcount=2, RexxString * calltype=0x7fd5cb00, ProtectedObject & result={...})
Line 272 + 0x17 bytes C++
rexx.dll!RexxActivation::externalCall(RexxString * target=0x7f196a28,
unsigned int _argcount=2, RexxExpressionStack * _stack=0x7d5398c0, RexxString *
calltype=0x7fd5cb00, ProtectedObject & resultObj={...}) Line 2626 + 0x25 bytes
C++
rexx.dll!RexxExpressionFunction::evaluate(RexxActivation *
context=0x7d539800, RexxExpressionStack * stack=0x7d5398c0) Line 225 C++
rexx.dll!RexxExpressionMessage::evaluate(RexxActivation *
context=0x7d539800, RexxExpressionStack * stack=0x7d5398c0) Line 97 + 0x1b
bytes C++
rexx.dll!RexxInstructionReturn::execute(RexxActivation *
context=0x7d539800, RexxExpressionStack * stack=0x7d5398c0) Line 70 + 0x1b
bytes C++
rexx.dll!RexxActivation::run(RexxObject * _receiver=0x7dd904a8,
RexxString * msgname=0x7fcc4c20, RexxObject * * _arglist=0x00000000, unsigned
int _argcount=0, RexxInstruction * start=0x00000000, ProtectedObject &
resultObj={...}) Line 521 C++
rexx.dll!RexxCode::run(RexxActivity * activity=0x7f3e5c90, RexxMethod *
method=0x7f1c0288, RexxObject * receiver=0x7dd904a8, RexxString *
msgname=0x7fcc4c20, RexxObject * * argPtr=0x00000000, unsigned int argcount=0,
ProtectedObject & result={...}) Line 136 C++
rexx.dll!RexxMethod::run(RexxActivity * activity=0x7f3e5c90, RexxObject
* receiver=0x7dd904a8, RexxString * msgname=0x7fcc4c20, RexxObject * *
argPtr=0x00000000, unsigned int count=0, ProtectedObject & result={...}) Line
325 C++
rexx.dll!RexxObject::messageSend(RexxString * msgname=0x7fcc4c20,
RexxObject * * arguments=0x00000000, unsigned int count=0, ProtectedObject &
result={...}) Line 793 C++
rexx.dll!RexxObject::sendMessage(RexxString * message=0x7fcc4c20,
ProtectedObject & result={...}) Line 439 + 0x1b bytes C++
rexx.dll!RexxObject::sendMessage(RexxString * message=0x7fcc4c20) Line
618 C++
rexx.dll!RexxObject::uninit() Line 2238 C++
rexx.dll!UninitDispatcher::run() Line 55 C++
rexx.dll!RexxNativeActivation::run(TrappingDispatcher &
dispatcher={...}) Line 1642 C++
rexx.dll!RexxActivity::run(TrappingDispatcher & target={...}) Line
3061 C++
rexx.dll!RexxMemory::runUninits() Line 553 C++
rexx.dll!RexxMemory::checkUninitQueue() Line 198 + 0x18 bytes C++
rexx.dll!RexxActivation::run(RexxObject * _receiver=0x7f595b98,
RexxString * msgname=0x7dbcfad8, RexxObject * * _arglist=0x7e2a3834, unsigned
int _argcount=2, RexxInstruction * start=0x00000000, ProtectedObject &
resultObj={...}) Line 558 C++
rexx.dll!RexxCode::run(RexxActivity * activity=0x7f3e5c90, RexxMethod *
method=0x7f02bc08, RexxObject * receiver=0x7f595b98, RexxString *
msgname=0x7dbcfad8, RexxObject * * argPtr=0x7e2a3834, unsigned int argcount=2,
ProtectedObject & result={...}) Line 136 C++
rexx.dll!RexxMethod::run(RexxActivity * activity=0x7f3e5c90, RexxObject
* receiver=0x7f595b98, RexxString * msgname=0x7dbcfad8, RexxObject * *
argPtr=0x7e2a3834, unsigned int count=2, ProtectedObject & result={...}) Line
325 C++
rexx.dll!RexxObject::messageSend(RexxString * msgname=0x7dbcfad8,
RexxObject * * arguments=0x7e2a3834, unsigned int count=2, ProtectedObject &
result={...}) Line 793 C++
rexx.dll!RexxExpressionStack::send(RexxString * message=0x7dbcfad8,
unsigned int count=2, ProtectedObject & result={...}) Line 74 + 0x33 bytes C++
rexx.dll!RexxInstructionMessage::execute(RexxActivation *
context=0x7f3e3b80, RexxExpressionStack * stack=0x7f3e3c40) Line 229 C++
rexx.dll!RexxActivation::run(RexxObject * _receiver=0x7f3af310,
RexxString * msgname=0x7db939f8, RexxObject * * _arglist=0x7e2a38ac, unsigned
int _argcount=7, RexxInstruction * start=0x00000000, ProtectedObject &
resultObj={...}) Line 521 C++
rexx.dll!RexxActivation::dispatch() Line 377 + 0x33 bytes C++
rexx.dll!RexxActivity::runThread() Line 125 C++
rexx.dll!call_thread_function(void * arguments=0x7f3e5c90) Line 63
C++
kernel32.dll!7c80b729()
[Frames below may be incorrect and/or missing, no symbols loaded for
kernel32.dll]
rexx.dll!ActivityManager::cacheActivation(RexxActivationBase *
activation=0x00000000) Line 510 C++
000001f0()
* The reported exception is:
Unhandled exception at 0x00479c3a (rexx.dll) in rexx.exe: 0xC0000005:
Access violation reading location 0x00000014.
* The code in rexx.exe the debugger points to "SourceLocation.hpp"
and there to the first public inline method:
inline size_t getLineNumber() { return startLine; }
Not sure what I can/should do from here on, so please advise.
---rony
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel