On 29 November 2016 at 16:08, Peter Hunkeler <[email protected]> wrote:
> I'm not as used to LE control blocks as you might think. So, please, yes,
post it. Would save me some work, and will
> be most appreciated.

Of course this is all for non-XPLINK, which I know virtually nothing about.

The entry point of LE code looks about like this (I've stripped out some
but not all junk):



EPNAME   B     OVER            For C/C++ this is usually 47F0F022

         DC    X'xxC3C5C5'     C'.CEE' But watch for X'*00*C3C5C5' vs X'*01*
C3C5C5'

         DC    F'size of local storage for this routine'

         DC    A(PPA1-EPNAME)  Signed offset and is often negative!

* other code & stuff

OVER     STM   ...             May not be 14,12 - often it's 14,6

[...]



* If above .CEE was X'*00*C3C5C5':

PPA1     DC    AL1(PPANL002-*)  Offset to the entry name length in bytes.

* But if it was X'*01*C3C5C5' then it's:

PPA1     DC    AL1((PPANL002-*)/2)  Offset to the entry name length in
halfwords.

         DC    X'CE'            E/370  Indicator.

         DC    B'........'      PPA flags

         DC    X'00'            Member flags

         DC    A(PPA2-EPNAME)   Addr of Compile Unit Block (PPA2)    Often
negative!

         DC    A(0)

         DC    A(0)             Data Descriptors for this entry point

         DS    0H

[...]

PPANL002 DC    AL2(n)        .  Length of Entry Point Name

         DC    CLn'blah'     .  Entry Point Name

CEEINPL  DS    0D

         DC    A(PPA2M002)

         DC    A(CEEINPLSTST-CEEINPL)

CEEINPLSTST DS 0F

         DC    F'7'            Number of items.

         DC    A(PPA2M002)    . A of A(first entry point in comp unit)

         DC    V(CEESTART)    . A(Address of CEESTART)

         DC    V(CEEBETBL)

         DC    A(03)          . Member id

         DC    A(0)

         DC    XL4'00020000'          . EXECOPS(ON), PLIST

         DS    0H


[...]



PPA2     DS    0F

         DC    AL1(03)          Member ID (*3 is C/C++*)

         DC    AL1(0)           Sub ID

         DC    AL1(0)           Member defined

         DC    AL1(1)           Level of PPAx control blocks

PPA2S002 DC    A(CEESTART)      A(CEESTART for this load module)

         DC    A(0)             A(Compile Debug Information (CDI) )

         DC    A(CEETIMES-PPA2) A(Offset to time stamp)  Often negative!


PPA2M002 DC    A(mainep)        A(first entry point in comp. unit)

[...]



*        Time Stamp

*,Time Stamp = 2003/09/04 17:14:00

*,Version 1 Release 1 Modification 0

CEETIMES DS    0F

         DC    CL4'2003'          Year

         DC    CL2'09'            Month

         DC    CL2'04'            Day

         DC    CL2'17'            Hours

         DC    CL2'14'            Minutes

         DC    CL2'00'            Seconds

         DC    CL2'1'             Version

         DC    CL2'1'             Release

         DC    CL2'0'             Modification

I think writing some REXX to chase this in a dump should not be too hard,
but as I said, this assumes you have the entry point(s) already. I'm not
sure if you can get those from a Binder map or from something in the dump.
All bets are off if it's all DLLs or something.

Good luck...

Tony H.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to