Handling errors during TTE formatting
If your USRn formatting routine encounters a program check, the
ESTAE for the system trace formatter controller gets control. The
ESTAE tests the completion code. If it is X'0C6' through X'0CF',
indicating a likely data-dependent arithmetic or conversion error,
the following takes place:
- A message is printed in the trace table output saying that the USRn format routine failed and is disabled.
- The USRn TTE that caused the failure is formatted by ITRFDEFU, the default USRn formatter routine.
- Future USRn TTEs that would have been formatted by the failing routine will also be formatted.
Figure 1 is a sample of the assembler language
code needed to format a USRn trace table entry. The sample CSECT formats
a USR0 TTE that was created by the following PTRACE:
PTRACE TYPE=USR0,REGS=(2,4),SAVEAREA=STANDARD
Figure 1. Sample Code for Formatting USRn
Trace Table Entries
ITRF007F CSECT ,
ITRF007F AMODE 31
ITRF007F RMODE ANY
*---------------------------------REGISTER EQUATES
R0 EQU 0
R1 EQU 1
R2 EQU 2
TTEPTR EQU 7 TTE ADDRESSABILITY
R8 EQU 8 MODULE ADDRESSABILITY
R9 EQU 9 DATA AREA ADDRESSABILITY
TROBPTR EQU 12 TROB ADDRESSABILITY
R12 EQU 12
R13 EQU 13
R14 EQU 14
R15 EQU 15
*---------------------------------STANDARD ENTRY LINKAGE
DS 0H
USING *,R15 TEMPORARY MODULE ADDRESSABILITY
DROP R15 DROP TEMPORARY ADDRESSABILITY
STM R14,R12,12(R13) SAVE REGISTERS
BALR R8,0
USING *,R8 MODULE ADDRESSABILITY
*****************************************************************************
* OBTAIN ADDRESSABILITY TO THE PARAMETERS *
*****************************************************************************
L R9,12(,R1) ADDRESS OF THE AUTOMATIC DATA AREA
* IS THE FOURTH PARAMETER
USING DATA,R9 DATA AREA ADDRESSABILITY
ST R13,SAVE0001+4 BACKWARD CHAIN SAVEAREAS
LA R2,SAVE001 ADDRESS OF MODULE SAVEAREA
ST R2,8(R13) FORWARD CHAIN SAVEAREAS
LR R13,R2 POINT TO CURRENT SAVEAREA
*---------------------------------SAVE THE TOKEN
L R2,0(,R1) ADDRESS OF THE TOKEN
ST R2,TOKEN SAVE TOKEN IN AUTOMATIC AREA
*---------------------------------TRACE OUTPUT BUFFER ADDRESSABILITY
L TROBPTR,4(,R1) GET TROB ADDRESS FROM PARMLIST
USING TROB,TROBPTR TROB ADDRESSABILITY
*---------------------------------USR0 TTE ADDRESSABILITY
L TTEPTR,8(,R1) ADDRESS OF THE CURRENT TTE
USING TTE,TTEPTR SET USR0 TTE ADDRESSABILITY
***********************************************************************
* FORMAT A HIGHLIGHTING MESSAGE *
***********************************************************************
L R2,TOKEN TOKEN TO BE PASSED
ST R2,ETPBLIST SET 1ST PARAMETER(TOKEN)
LA R2,HILITE 120 CHAR MESSAGE TO BE OUTPUT
ST R2,ETPBLIST+4 SET 2ND PARAMETER
LA R2,LINE1 RELATIVE LINE NUMBER OF THE LINE
* TO BE PRINTED
ST R2,ETPBLIST+8 SET 3RD PARAMETER
LA R2,MAXLINES NUMBER OF LINES OF OUTPUT EXPECTED
ST R2,ETPBLIST+12 SET 4TH PARAMETER
LA R2,CPMSG THE OUTPUT IS A MESSAGE
ST R2,ETPBLIST+16 SET 5TH PARAMETER
LA R1,ETPBLIST LOAD ADDRESS OF PARAMETER LIST
L R15,IEAVETPB LOAD ADDRESS OF IEAVETPB ROUTINE
BALR R14,R15 CALL IEAVETPB
***********************************************************************
* INITIALIZE THE OUTPUT BUFFER WITH USR0 DATA WORDS *
***********************************************************************
MVC WORK5,TTEWRD5 MOVE USER WORD TO WORK AREA
UNPK WORK10,WORK5 UNPACK USER DATA WORD 1
TR WORK10,EBCTABL TRANSLATE TO PRINTABLE HEX
MVC TROBUNQ1,WORK10+1 MOVE TO OUTPUT BUFFER UNIQUE1 COLUMN
MVC WORK5,TTEWRD6 MOVE USER WORD TO WORK AREA
UNPK WORK10,WORK5 UNPACK USER DATA WORD 2
TR WORK10,EBCTABL TRANSLATE TO PRINTABLE HEX
MVC TROBUNQ2,WORK10+1 MOVE TO OUTPUT BUFFER UNIQUE2 COLUMN
MVC WORK5,TTEWRD7 MOVE USER WORD TO WORK AREA
UNPK WORK10,WORK5 UNPACK USER DATA WORD 3
TR WORK10,EBCTABL TRANSLATE TO PRINTABLE HEX
MVC TROBUNQ3,WORK10+1 MOVE TO OUTPUT BUFFER UNIQUE3 COLUMN
***********************************************************************
* FORMAT THE USR0 TRACE TABLE ENTRY *
***********************************************************************
L R2,TOKEN TOKEN TO BE PASSED
ST R2,ETPBLIST SET 1ST PARAMETER(TOKEN)
LA R2,TROB TROB TO BE OUTPUT
ST R2,ETPBLIST+4 SET 2ND PARAMETER
LA R2,LINE1 RELATIVE LINE NUMBER OF THE LINE
* TO BE PRINTED
ST R2,ETPBLIST+8 SET 3RD PARAMETER
LA R2,MAXLINES NUMBER OF LINES OF OUTPUT EXPECTED
ST R2,ETPBLIST+12 SET 4TH PARAMETER
LA R2,CPTTE THE OUTPUT IS A PART OF A TTE
ST R2,ETPBLIST+16 SET 5TH PARAMETER
LA R1,ETPBLIST LOAD ADDRESS OF PARAMETER LIST
L R15,IEAVETPB LOAD ADDRESS OF IEAVETPB ROUTINE
BALR R14,R15 CALL IEAVETPB
***********************************************************************
* RETURN TO THE CALLER WITH A RETURN CODE OF 0 *
***********************************************************************
EXIT LA R15,0 LOAD UP THE RETURN CODE
L R13,4(R13) LOCATE CALLERS SAVE AREA
L R14,12(R13) RESTORE THE RETURN ADDRESS
LM R0,R12,20(R13) RESTORE REGISTERS
BR 14
*---------------------------------CONSTANTS
DS 0D
EBCTABL EQU * TRANSLATE TABLE FOR PRINTABLE HEX
ORG *+240
DC C'0123456789ABCDEF'
LINE1 DC F'1' RELATIVE LINE NUMBER 1 FOR HILITE
MAXLINES DC F'1' TOTAL NUMBER OF OUTPUT LINES
HILITE DC CL120'*****************THE MUCH AWAITED USR0 TRACE EVENT
HAS OCCURRED! ********************************'
*---------------------------------
CPTTE DC X'80000000' IEAVETPB OPTIONS WORD VALUE
* THE OUTPUT IS A TTE
CPMSG DC X'01000000' IEAVETPB OPTIONS WORD VALUE
* THE OUTPUT IS A MESSAGE
*---------------------------------
IEAVETPB DC V(IEAVETPB) ADDRESS OF IEAVETPB ROUTINE
*---------------------------------DYNAMIC DATA AREA
DATA DSECT
SAVE0001 DS 18F STANDARD SAVEAREA
ETPBLIST DS 5F IEAVETPB PARAMETER LIST
TOKEN DS F ADDRESS OF THE TOKEN TO BE PASSED
* TO IEAVETPB
WORK5 DS CL5 INPUT WORK AREA FOR USER DATA
DS 0F
WORK10 DS CL10 OUTPUT WORK AREA FOR USER DATA
ENDDATA EQU *
ITRF007F CSECT
SIZDATA DC AL4(((ENDDATA-DATA+7)/8)*8)
IHATROB
IHATTE USRN=YES
END