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