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

Reply via email to