Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Using private symbol elements

&pagelevel(5)&pagelevel

DAMP is supplied with the standard library SYSSMB.DAMP.<ver>, which is merged into the library $TSOS.SYSSMB.DAMP. This library contains the most frequently used DSECTs. An overview of the DSECTs can be found in section "List of DSECTs from the standard symbol files".

It is also possible to generate, extend or modify symbol elements and to then assign them for the diagnosis. Typical examples are:

  • DSECT tables for DCM

  • DSECTs for the data structures used in a TU program (for evaluating user dumps generated by this program).

On opening the diagnosis object, DAMP automatically assigns the matching BS2000 system version symbol element.
This automatic function can be disabled by explicitly specifying a symbol element in the OPEN-DIAGNOSIS-OBJECT statement. This symbol element will then be used to process the object to be opened. You should, however, note that the standard BS2000 symbols must be included in this object.

Additional symbol elements can be assigned using the ADD-SYMBOLS statement. When a DSECT is subsequently specified, all assigned symbol elements are searched for the matching information, starting with the symbol element most recently entered.

All assignments are reset on switching the dump file.

Generating private symbol elements

You can generate your own symbol element in the following manner:

  • Assemble the additional or modified DSECTs with TEST-SUPPORT=*AID or with *COMOPT ISD (a dummy CSECT should be added to the source code after the last DSECT since the Assembler will otherwise calculate the length of the last DSECT incorrectly).

    In the case of SPL models, the option *COMOPT SYMTEST=ALL must be specified for the compiler.

    If a module containing symbol information already exists, a new compilation run is not necessary.

    C structures must be compiled using TEST-SUPPORT=YES. A pointer must be defined for each symbol (=type) to be generated, since the C compiler only stores the name of the variable. Structures and arrays are supported in this manner. The pointers should be defined in the same sequence as the structures to which they refer. Only in this manner can the reference between the structures and the pointers be analyzed, this also saves memory space. When performing a search for a symbol, DAMP does not differentiate between uppercase and lowercase which means that the sole distinction between the names of main structures (DSECTs) must not be in the form of uppercase and lowercase letters. For this reason, the symbol generator checks the generated main structures for uniqueness, keeps the first relevant structure it finds, and eliminates the next one.

  • After the statement /START-DAMP-SYMBOL-GENERATOR has been issued, the system queries whether symbols are to be generated (enter “g”) or whether symbol information is to be output (enter “i”). If you enter “g”, the system then asks for the module and library containing the system information. The symbol information is then stored in a PLAM library as a type X element. The system queries the name of the library and the element.

    The library for standard BS2000 symbols has the fixed name $TSOS.SYSSMB.DAMP. The element name is the same as that of the product to which the symbols refer, and the element version is likewise derived from the product version (e.g. BS2000/210 for BS2000 V21.0A) 

    If there is already a symbol library with the same name under the active user ID, the newly compiled DSECTs can be included in this library. If a symbol element with the same name already exists in the specified library, you can choose either to replace it or to supplement it with the new information.

  • If required, copy the symbol library or symbol element under the desired user ID or into the desired library and set the user option “SYSSMB” (see "Modification by the user (special window: OPTIONS)").

The following two examples illustrate the use of /START-DAMP-SYMBOL-GENERATOR.

Example 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.

Example 2

/START-DAMP-SYMBOL-GENERATOR can also be used to have the DSECTs, structures and symbols stored in symbol elements listed on the screen or saved in a file.

/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.