System Debug Reference Manual (32650-90888)
302 Chapter7
Symbolic Formatting Symbolic Access
The Path Specification
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,
vartagvalue
s 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