Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Private Symbolelemente verwenden

&pagelevel(5)&pagelevel

Standardmäßig wird mit DAMP die Bibliothek SYSSMB.DAMP.<ver> ausgeliefert und in die Bibliothek $TSOS.SYSSMB.DAMP eingemischt. Sie enthält die von DAMP benötigten und weitere häufig benutzte DSECTs. Eine Übersicht über die DSECTs erhalten Sie im Abschnitt „Liste der DSECTs aus den Standard-Symboldateien".

Für Spezialdiagnosen können zusätzlich Symbolelemente generiert, erweitert oder geändert und anschließend für die Diagnose zugewiesen werden, zum Beispiel

  • DSECT-Tabellen für DCM

  • DSECTs für Datenstrukturen, die in einem TU-Programm verwendet werden (zur Auswertung von Userdumps dieses Programms).

Beim Öffnen des Diagnoseobjekts wird von DAMP automatisch das entsprechende BS2000-Systemversions-Symbolelement zugewiesen.
Dieser Automatismus lässt sich ausschalten, indem bei der Anweisung OPEN-DIAGNOSIS-OBJECT explizit ein Symbolelement angegeben wird, das für die Verarbeitung des zu öffnenden Objekts herangezogen wird. Es ist jedoch zu beachten, dass die BS2000-Standard-Symbole in diesem Element enthalten sein müssen.

Weitere Symbolelemente können mit der Anweisung ADD-SYMBOLS zugewiesen werden. Bei Angabe einer DSECT werden dann alle zugewiesenen Symbolelemente durchsucht, wobei mit dem zuletzt eingegebenen Symbolelement begonnen wird.

Beim Wechsel des Objekts werden alle Zuweisungen zurückgesetzt.

Private Symbolelemente erzeugen

Ein privates Symbolelement erzeugen Sie folgendermaßen:

  • Assemblieren der zusätzlichen oder geänderten DSECTs mit TEST-SUPPORT=*AID bzw. mit *COMOPT ISD (nach der letzten DSECT sollte eine Dummy-CSECT in den Source aufgenommen werden, da der Assembler ansonsten eine falsche Länge für die letzte DSECT berechnet).

    Bei SPL-Models sollte für den Compiler die Option *COMOPT SYMTEST=ALL angegeben werden.

    Ist bereits ein Modul mit Symbolinformationen vorhanden, muss nicht neu übersetzt werden.

    C-Strukturen müssen mit TEST-SUPPORT=YES übersetzt werden. Für jedes zu generierende Symbol (=Typ) muss ein Pointer definiert werden, da der C-Compiler nur den Namen der Variablen ablegt. Strukturen und Arrays werden auf diese Weise unterstützt. Die Pointer sollten in der gleichen Reihenfolge wie die Strukturen, auf die sie zeigen, definiert werden. Nur so können die Bezüge zwischen den Strukturen und den Pointern ausgewertet werden, zudem wird so Speicher gespart. DAMP unterscheidet beim Suchen nach einem Symbol nicht zwischen Groß- und Kleinschreibung, sodass sich die Namen von Hauptstrukturen (DSECTs) nicht nur durch die Groß- und Kleinschreibung unterscheiden dürfen. Deshalb prüft der Symbolgenerator die generierten Hauptstrukturen auf Eindeutigkeit in diesem Sinn ab, behält die jeweils erste und eliminiert die nächsten.

  • Nach dem Aufruf von /START-DAMP-SYMBOL-GENERATOR wird im Dialog abgefragt, ob Symbole generiert werden sollen (Eingabe: „g“) oder ob Symbolinformationen ausgegeben werden sollen (Eingabe: „i“). Bei Eingabe von „g“ lautet die nächste Abfrage, welches Modul aus welcher Bibliothek die Symbolinformationen enthält.
    Diese Symbolinformationen werden dann als Element vom Typ X einer PLAM-Bibliothek abgelegt. Der Name der Bibliothek und des Elements werden im Dialog abgefragt. 

    Die Bibliothek für Standard-BS2000-Symbole hat den festen Namen $TSOS.SYSSMB.DAMP. Der Elementname ist gleich dem Namen des Produkts, auf das sich die Symbole beziehen, ebenso geht die Elementversion aus der Version des Produkts hervor (z.B.: BS2000/210 für BS2000 V21.0A).

    Ist eine Symbolbibliothek gleichen Namens unter der aktiven Kennung bereits vorhanden, können die neu übersetzten DSECTs in die bestehende Bibliothek eingefügt werden. Ist ein Symbolelement gleichen Namens in der angegebenen Bibliothek bereits vorhanden, kann das Element wahlweise ersetzt werden oder durch die neuen Informationen ergänzt werden.

  • Ggf. Kopieren der Symbolbibliothek oder des Symbolelements unter die gewünschte Benutzerkennung oder in die gewünschte Bibliothek und Einstellen der Benutzeroption SYSSMB (siehe "Modifikationen durch den Benutzer (Spezialfenster OPTIONS)").

Anhand zweier Beispiele soll die Verwendung von /START-DAMP-SYMBOL-GENERATOR erläutert werden.

Beispiel 1

/start-damp-symbol-generator
You wish to :  - Generate symbols ?                             -->  g
               - Get information about symbols ?                -->  i
*g
  Creation of a DAMP-Symbolfile.
  Please give name of :    - library with object module or
                           - old symbol file for conversion
*my.object.lib
  Please enter name and type of object module
  (e. g. 'MODNAME/R' [type R is default])
  In C it is the R-element with "@" as termination.
  In SPL it is the 8 B long R-element with "@" as termination.
*dmpbs2a/r
  Element DMPBS2A/@/R
  from library MY.OBJECT.LIB successfully opened.
  Symbolic information will be taken from LSD-cards.
  The symbol information is from BS2000 V210, PVLU E1.
  Proposal :  The element BS2000/210.E1
              will be generated in the library
              SYSSMB.DAMP
  Please enter one of the following answers :
  Y[ES]      -> You accept the proposal.
  L[IBR]     -> You will further be asked for the name
                of the output library where the element
                BS2000/210.E1
                will be generated.
  U[SER]     -> By user, you will further be asked
                for the name of the output library and
                for the name and version of the element.
  P[ROD]/N[O]-> You will further be asked for the name,
                the version and the PVLU of the product.
                Lib : SYSSMB.<prod>.<vers>.<PVLU>
                El : <prod>/<vers>.<PVLU>
  I[NPUT]    -> Output library/element/version =
                Input library/element/version.
                Output element type = X.
*u
  Please enter valid names !!!
  1. -> Enter library name :
*my.symbol.lib
  2. -> Enter element name :
*my_element
  3. -> Enter element version :
*210 
  Output Symbol Library : MY.SYMBOL.LIB
  Output Symbol Element : MY_ELEMENT/210 
  Element MY_ELEMENT/210 from
  library MY.SYMBOL.LIB successfully opened.
  Starting to write symbol element.
  There are to be generated 75 structures.
  Symbol element written.
  There have been written 75 structures into the file.
  Program terminated normally.

Beispiel 2

Mit /START-DAMP-SYMBOL-GENERATOR kann man sich auch die in Symbolelementen abgelegten DSECTs, Strukturen und Symbole auf dem Bildschirm oder in einer Datei auflisten lassen.

/start-damp-symbol-generator
  You wish to :  - Generate symbols ?                           -->  g
                 - Get information about symbols ?              -->  i
*i
Please enter the library name :
*syssmb.damp.<ver>
You wish to :  - list the library elements and the contained symbols
                 on screen ?                                    -->  s
               - write the names of the DSECTs into a file ?    -->  n
               - write a DSECT, converted to a Pascal-Record,
                 into a file ?                                  -->  r
               - search for a symbol with wildcards ?           -->  w
               - write the alphabetical list of symbols into EDT-->  a
               - show the global info of a symbol element       -->  g
               - go to EDT ?                                    -->  @
               - assign a new library ?                         -->  l
               - terminate the program ?                        -->  e
*s
The library SYSSMB.DAMP.<ver> contains the following elements :
BS2000/190        BS2000/200        BS2000/210
BS2000-USER/190   BS2000-USER/200   BS2000-USER/210
NSDI0/190         NSDI0/200         NSDI0/210
STATUS/006        STATUS/010        XA2000/190
XA2000-USER/190   XA2000/200        XA2000-USER/200
XA2000/210        XA2000-USER/210
You wish to :  - list the symbols    --> name/version
               - stop this function  --> *e, *end
*BS2000/210
   ASAVDSSM                            ASIMDBHD
   ASIPUCON                            BS_CTX_VECTOR_REC_MDL
   CTX_VECTOR_REC_MDL                  DBL_OPTIONS_COM_MDL
   DBL_OPTIONS_P_C_MDL                 DBL_OPTIONS_S_P_MDL
   DSTE                                DWQE
   DWQH                                EBWL
   ECSA                                ECSE
   ECSX                                ECTLP
...
You wish to :  - list the library elements and the contained symbols
                 on screen ?                                    -->  s
               - write the names of the DSECTs into a file ?    -->  n
               - write a DSECT, converted to a Pascal-Record,
                 into a file ?                                  -->  r
               - search for a symbol with wildcards ?           -->  w
               - write the alphabetical list of symbols into EDT-->  a
               - show the global info of a symbol element       -->  g
               - go to EDT ?                                    -->  @
               - assign a new library ?                         -->  l
               - terminate the program ?                        -->  e
*e
Program terminated normally.