 |
» |
|
|
 |
Path specifications are used to qualify data structure references
to some desired level of granularity. Syntax |  |
[ symname : ] typename [ selector... ][, variantinfo ] Parameters |  |
- symname
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.
|