[Oberon] loading of dll procedures - unknown EIP

Patrick.Hunziker at unibas.ch Patrick.Hunziker at unibas.ch
Tue Sep 3 10:31:58 CEST 2002


Patrick.Hunziker at unibas.ch wrote:
I am calling a windows dll ( ODBC32.dll ) from a Module ODBC (originally 
derived from V4). 
Loading the dll and its procedures appears to work, and the procedure variable 
address of some dll procedure is, according to "System.State ODBC":
...
SQLDrivers = Unknown EIP = 1F819C05H
...

What is the 'unknown EIP' when an address is found anyway ?
It appears that the system has found ap procedure at the mentioned address.
However, when I actually call ODBC.SQLDrivers, I get the error:
------------------
TRAP access violation in thread Oberon.Loop
 
Unknown EIP = 77F821E1H EBP = 02EFF280H
SQLBase.EnumDrivers  PC = 3804
 attribActLen = 0
 attributes = ""
 cb = TestSQL.Enum  PC = 254
 cont = TRUE
 direction = 2
 driver = ""
 driverActLen = 0
 ret = 0
TestSQL.Do  PC = 403

Interestingly, the unknown EIP and the procedure address, when added, give 
always 80000000H .
Where does this mean, and how could this be remedied ?
 
BTW: did anybody succeed in working with ODBC with ETH Oberon, and what are the 
hints to succeed ? Any most simple example code ?

-----------------------
Pieter wrote:
Unknown EIP means the EIP address could not be associated with any
Oberon module and procedure.  Normally the display would be something like:
  SQLDrivers = Module.Procedure PC = 1234

Is this a procedure variable pointing to an external C procedure or
to an Oberon procedure?

-- Pieter

-----------------------

This is after 
a) loading an external dll (successful) written in an unknown language, 
probably C
b) assigning dll exported procedures to procedures variable defined according
to the structure of the exported variable.
the assignement of procedure variables seems to work, otherwise the procedure 
variable is usually =NIL.
The fact that calling the procedure variable fails with an EIP in the trap that 
is different from the EIP loaded (but complementary to 80000000H ) seems 
strange.


-------------------------------------------------
This mail sent through IMP: igor.urz.unibas.ch



More information about the Oberon mailing list