Mit Symbolen greift man auf Daten des zu Grunde liegenden Diagnoseobjekts (Dumpfile, System) oder auf Metadaten des Programmes DAMP zu. Ein Symbol besitzt einen Namen beginnend mit einem Punkt, eine Relativadresse, einen Typ und eine Länge.
Symbole können nicht beliebig benannt werden, sondern müssen
dem Programm DAMP aus der Symboldatei bekannt sein,
mit der Anweisung ARRANGE innerhalb der PRODAMP-Prozedur erzeugt werden oder
intern, also vonseiten der Programmiersprache PRODAMP definiert sein.
Name, Relativadresse, Typ und Länge eines Symbols sind in den DAMP-Symboldateien bzw. den privaten, mit ADD-SYMBOLS zugewiesenen Symboldateien hinterlegt. Die Relativadresse bezieht sich immer auf den Anfang der Struktur (DSECT), in der das betreffende Symbol enthalten ist. Daraus ergibt sich, dass über ein Symbol nur dann auf eine Datenstruktur des Diagnoseobjekts zugegriffen werden kann, wenn man die Basis-Adresse der betreffenden Struktur angibt. Das wird auch in der Syntax für ein Symbol berücksichtigt.
Beispiele
.ETCBTFT
„.ETCBTFT“ ist durch den Punkt als Symbol erkennbar. Die explizite Angabe einer Basis-Adresse ist nicht erforderlich, da der TCB zu den durch DAMP automatisch lokalisierbaren Strukturen gehört (wie auch JCB, UVMT, SVMT oder EXVT).
A_FCB.ID1FILE
„A_FCB“ ist eine Variable, die die Basis-Adresse der betreffenden Struktur - hier eines TU-FCB - enthält. „ID1FILE“ ist ein Feldname aus der DSECT „ID1FCB“.
PTR.NKLCB_MDL.COPY_PARAMETER.USER_ALLOCATION.WAIT_FACTOR
Bei diesem Beispiel handelt es sich um Symbole in Substrukturen; diese werden durch Angabe der Substruktur-Schachtelung oder durch Aufruf der PRODAMP-Standardprozedur REFERENCE spezifiziert.
Die Angabe der DSECT (NKLCB_MDL) ist nur dann notwendig, wenn das erste Symbol (COPY_PARAMETER) hinsichtlich aller in der Symboldatei enthaltenen DSECTs nicht eindeutig ist.
Folgende Namen sind bei PRODAMP als Bezeichner reserviert und können nicht für Variable verwendet werden:
|
Folgende Namen sind bei PRODAMP als Symbolbezeichner gekoppelt mit CURRENT und INFIELDS reserviert. Sie können, falls sie nicht in der oben angeführten Liste enthalten sind, zwar als Variable, jedoch nicht zur Bezeichnung von Symbolen verwendet werden.
|
PRODAMP-Prozeduren mit diesen Namen können nicht als Benutzer-Unterprogramm aufgerufen werden.
Alle Bezeichner, die mit DMP_ beginnen, sind für künftige PRODAMP-Erweiterungen reserviert und sollten daher nicht in Benutzerprogrammen verwendet werden.