Re: [BLACKBOX] Trap when calling a DLL

From: [at]} <Romiras>
Date: Sat, 6 Oct 2012 21:45:35 +0200


Trap "illegal memory read" (#203) may point to problem with garbage collection in module Kernel. One of possible reasons is incorrect declaration of foreign interface (pointer arithmetics with SYSTEM), but it is not a your case.


An error is occurred when GC is tries to collect garbage:


1. when program tries to allocate memory by NEW
        
2. when too many files open

Does program crashes immediately when calling DLL?

Is program work intensively with dynamic memory? "Memory hungry" program?



Questions about environment:

1. In which version of BlackBox trap occurred?
        
2. In which version of OS?

Try to apply GC patches to Kernel from topic "Windows 7" in mailing list (see last messages of user luowy). It may help.



2012/10/6 Rainer Neubauer <neubauer.rainer{([at]})nowhere.xy


        Hi all,
        I have a serious problem when calling a DLL procedure.
        The DLL is a third party product (an API to a big relational data base) and is in deployment in the
        production area in the company I am with on many systems.
        It is used by many programms written in different languages (C, C++, Visual Basic).
        
        
        Calling the DLL procedures with CP works well on some systems. On other systems I
        get an error message or even a trap when I call the initialisation routine of the DLL
        which has to be the first call before using the DLL.
        
        
        The initialisation routine has an input parameter (a string), an output parameter (a pointer
        to a string) and returns an integer value. I expect the parameter passing from CP to the
        routine to contain no error because it works on some systems.
        
        
        On some systems calling the initialisation routine produces a trap looking like this:
        
        
        illegal memory read (ad = 15FEAB80H)
        ?(???(?(?(?(?(???(?(???(?(?(?(?? 01X
         
<system> (pc=7711E3BEH, fp=0028E5CCH)
<system> (pc=7711E022H, fp=0028E5E4H)
<system> (pc=74E914DCH, fp=0028E5F8H)
<system> (pc=7C342189H, fp=0028E640H)
<system> (pc=6DA140B0H, fp=64CA8000H)
         
        This trap window looks different from the usual traps I get when I e.g. try to access memory with a NIL pointer.
        
        
        Does anybody have an idea what the trap information tells ?
        - does it tell my input string to the DLL procedure may be invalid ?
        - does it tell the DLL code has an internal problem ?
        - does it tell an invalid memory access with the output parameter ?
        
        
        When I put a HALT statement right after the DLL call the HALT will not be executed.
        It would be helpful to have any idea about what is going on when I want to ask the vendor of the DLL for a solution.
        
        
        
        
        Thanks for any hints and best regards,
        Rainer
        
        
        
        
        
        
        
        
        
        

        ---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy


---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy
Received on Sat Oct 06 2012 - 21:45:35 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:29:55 UTC