Although the eyecatcher on SAVE (one byte length field at EPA+4 followed by the
message) seems to be kind of part of the OS linkage conventions, no other IBM
language processor like the PL/1 compiler or LE ever used it - I never
understood this. This discourages the use of SYSUDUMP for error diagnose
heavily. Same goes for the lack of forward save area chaining by LE - SYSUDUMP
is only capable of printing a forward save area chain, if the LSA pointers in
the save areas are filled correctly.
For decades, we tried to restore the forward chain on every call, by calling
special ASSEMBLER routines after every PL/1 procedure entry; just to have the
SYSUDUMP forward chain in the case of an error. What a mess! In the end, we
removed this, and wrote our own error recovery and dump printing routine, which
we use in every environment, and which does not rely on the forward chain, like
CEEDUMP - it restores the forward chain only in the error situation, when needed
- for us it works better than CEEDUMP, and it also works in environments where
we don't have LE - in an LE environment, the dump printing routine is called by
an LE exit and replaces CEEDUMP.
I sometimes had the impression that the designers of LE never talked with the
opsys people and both didn't talk with the compiler people and vice versa ...
how sad ...
Ok, I see one possible reason for this: LE has to work on EVERY opsys, and so
may not rely on features that are specific to a special opsys. This may be the
reasons for some of the trouble we have here.
Kind regards
Bernd
Am 11.04.2013 20:23, schrieb A.G.:
> M.S. wrote:
>> Amen. I saw it first in code in 1976, with the eyecatcher preceded by a
>> one-byte length field for the eyecatcher. That one byte length is
>> used by
>> the dump formatter to print the eyecatchers when formatting the save
>> area
>> chain.
>
> ... and the eyecatcher, the 3rd operand of SAVE reg[,T,*]
>
> 181 SAVE (14,12),T,'ACMDXL00 &VERS &ASMDTE'
> 182+ B 24(0,15) BRANCH AROUND ID
> 01-SAVE
> 183+ DC AL1(19) LENGTH OF IDENTIFIER
> 01-SAVE
> 184+ DC CL8'ACMDXL00' IDENTIFIER
> 01-SAVE
> 185+ DC CL8' 1.1 030' IDENTIFIER
> 01-SAVE
> 186+ DC CL3'102' IDENTIFIER
> 01-SAVE
> 187+ STM 14,12,12(13) SAVE REGISTERS
> 01-SAVE
> 188 LR R12,R15 LOAD PGM BASE REG = EP
> ADDRESS
>
> The above was assembled 10 years ago by HLASM R4.0. The SAVE macro is at
> least 45 years old. Frequently the bytes following the eyecatcher /
> dump-id
> were used for version/PTF id's and for "global" address vector tables.
>
> A.G.
>
|