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