Symbols are used to access the object being diagnosed (dump file or the active system) or the metadata of the DAMP program. Each symbol has a name beginning with a period, a relative address, a type and a length.
Symbols cannot be named freely, but must
be known to DAMP from the symbol file,
be created by means of the ARRANGE statement within the PRODAMP procedure or
be defined internally, i.e. by the PRODAMP programming language.
The name, relative address, type and length of a symbol are stored in the DAMP symbol files or in the private symbol files assigned by means of ADD-SYMBOLS. The relative address always refers to the beginning of the structure (DSECT) which contains the appropriate symbol. This means that a data structure in the diagnosis object can be accessed via a symbol only if the base address of the structure concerned is specified. This fact is taken into account in the syntax of a symbol.
Examples
.ETCBTFT
“.ETCBTFT” is identified as a symbol by the initial period. The base address does not need to be specified explicitly in this case because the TCB belongs to the structures which DAMP can localize automatically (other such structures are the JCB, UVMT, SVMT and EXVT).
A_FCB.ID1FILE
“A_FCB” is a variable which contains the base address of the structure concerned - in this case, a TU-FCB. “ID1FILE” is a field name in the DSECT “ID1FCB”.
PTR.NKLCB_MDL.COPY_PARAMETER.USER_ALLOCATION.WAIT_FACTOR
This example shows symbols in substructures. These are specified in terms of the nesting structure of the substructure or by calling the standard PRODAMP procedure REFERENCE.
It is only necessary to specify the DSECT (NKLCB_MDL) if the first symbol (COPY_PARAMETER) is not unique among all the DSECTS contained in the symbol file.
The following names are reserved as identifiers in PRODAMP and cannot be used for variables:
ABS-ADDRESSING ADDRESS ALET AND ARRANGE ASEL COMMAND CPU CURRENT DEC_BINARY DEC_STRING DMP_#REFRESH DO DSECT DUMP_MEMORY ELSE ELSIF END ENTER_MODULE EXTRACT FALSE FOLLOW HEX_BINARY HEX_STRING HSA IF IN INFIELDS INSERT INTERRUPT ITN LAYOUT LENGTH LIST LOCATION MESSAGE MOD NAME NEW_TASK NEXT_WINDOW NOT NUMBER NUMERIC OFF OFFSET ON OPC_TABLE OR OUTPUT PARAMETER PATTERN PCB PCK_BINARY READ READ_WINDOW REAL REFERENCE RELATIVE RETURN SET_HEADER SPID STRING SVC_TABLE THEN TID TRACE TRUE TSN TYPE UNDEFINED UNSIGNED_OFF UNSIGNED_ON VIRTUAL WHILE WINDOW WRITE
The following names are reserved as symbol identifiers in conjunction with CURRENT and INFIELDS in PRODAMP. If they are not included in the list above, they can be used as variables, but not as symbol names.
ADDRESS ALET ASEL ASID ATYPE COMMAND CONFIGURATION CPU CSMA DTYPE DUMPTIME ERROR FILENAME HSA ITN LAYOUT LENGTH LEVEL MARK1 MARK2 MARK3 MARK4 MARK5 MARK6 PARAMETER PCB PTYPE RELATIVE SEGMENT SPID STACK SYMBOL TIME TID TSN VERSION WNDNO WNDTSK
PRODAMP procedures with these names cannot be called as user subroutines.
All identifiers that begin with DMP_ are reserved for future PRODAMP extensions and should therefore not be used in user programs.