A symbolic name assigned to a symbolic data type file in the
SYMOPEN command. This parameter specifies the file in which
typename is to be found. If omitted, the last symbolic
file referenced is used.
typename
The name of the data structure to be formatted.
selector...
The selectors used to dereference particular components of the data
structure identified by typename. Multiple selectors are
permitted.
The following selectors, based on Pascal syntax, are recognized:
[index]
Array selector specifies a component of an array.
.field
Record selector specifies a field within a record.
^
Pointer selector specifies pointer dereferencing.
variantinfo
A list of variant tag values to be used when formatting tagless
variants, or to override the stored tag field if alternate variants are
to be displayed. Multiple tag values are specified as a simple list:
vartagvalue [ ,... ]
For each variant after the typename
[selector] specification, a vartagvalue
can be given to specify the desired variant. Multiple tag values may be
given, separated by commas, to specify tags for nested variants. The
order of the tags should match the order of the variants in the type
declaration. If tag value(s) are omitted and the tag is not stored as
part of the data structure, data are formatted according to the first
declared variant.
The variant descriptor can also be used to override stored tag values for
variant records. Normally, the symbolic formatter uses stored tags to
select the variants to be formatted. However, if the stored tags are
corrupt or the user wishes to have the data interpreted according to
different variants, vartagvalues may be used to specify
the desired variants.
Variable Substitution
System Debug variables may be used within a path specification.
Since the path specification is itself composed of a string, any
variable substitution must be performed with string variables. In
order for a System Debug variable to be recognized in a path specification,
it must be preceded by an exclamation mark. For example:
$nmdebug > VAR field "ID"
$nmdebug > FT "StudentRecord.!field"
INTEGER
The other area where System Debug variables may be used is in array subscripts.
In fact, array subscripts may consist of any valid System Debug expression.
Exclamation marks are not required to dereference variables in
this case.
$nmdebug > VAR type "StudentRecord"
$nmdebug > VAR field "Grades"
$nmdebug > VAR index 5
$nmdebug > FV data "!type.!field[ index - 1 ]"
42
$nmdebug >
Case Sensitivity
System Debug normally upshifts all characters in a path specification
before searching for names in a symbol file. This is desirable for
languages such as Pascal, which emit upshifted symbols. But for
languages such as C, which emit symbols with lower-case characters,
this automatic upshifting must be disabled. The environmental variable
SYMPATH_UPSHIFT controls whether or not pathspec upshifting occurs.
If your symbol file contains lower-case symbols, set this environmental
variable to FALSE as follows:
$nmdebug > ENV SYMPATH_UPSHIFT FALSE
The next two sections contain a variety of examples illustrating
the use of path specifications.