Displays information about the symbols in the debugger's run-time
symbol table (RST) for the current image.
NOTE
The current image is either the main image (by default) or
the image established as the current image by a previous SET
IMAGE command.
Format
SHOW SYMBOL symbol-name[, . . . ] [IN scope[, . . . ]]
1 – Parameters
symbol-name
Specifies a symbol to be identified. A valid symbol name is
a single identifier or a label name of the form %LABEL n,
where n is an integer. Compound names such as RECORD.FIELD
or ARRAY[1,2] are not valid. If you specify the asterisk (*)
wildcard character by itself, all symbols are listed. You can use
the wildcard within a symbol name.
scope
Specifies the name of a module, routine, or lexical block, or a
numeric scope. It has the same syntax as the scope specification
in a SET SCOPE command and can include path-name qualification.
All specified scopes must be in set modules in the current image.
The SHOW SYMBOL command displays only those symbols in the RST
for the current image that both match the specified name and
are declared within the lexical entity specified by the scope
parameter. If you omit this parameter, all set modules and the
global symbol table (GST) for the current image are searched
for symbols that match the name specified by the symbol-name
parameter.
2 – Qualifiers
2.1 /ADDRESS
Displays the address specification for each selected symbol. The
address specification is the method of computing the symbol's
address. It can merely be the symbol's memory address, but it can
also involve indirection or an offset from a register value. Some
symbols have address specifications too complicated to present in
any understandable way. These address specifications are labeled
"complex address specifications."
On Alpha processors, the command SHOW SYMBOL/ADDRESS procedure-
name displays both the code address and procedure descriptor
address of a specified routine, entry point, or Ada package.
2.2 /DEFINED
Displays symbols you have defined with the DEFINE command (symbol
definitions that are in the DEFINE symbol table).
2.3 /DIRECT
Displays only those symbols that are declared directly in the
scope parameter. Symbols declared in lexical entities nested
within the scope specified by the scope parameters are not shown.
2.4 /FULL
Displays all information associated with the /ADDRESS, /TYPE, and
/USE_CLAUSE qualifiers.
For C++ modules, if symbol-name is a class, SHOW SYMBOL/FULL also
displays information about the class.
2.5 /LOCAL
Displays symbols that are defined with the DEFINE/LOCAL command
(symbol definitions that are in the DEFINE symbol table).
2.6 /TYPE
Displays data type information for each selected symbol.
2.7 /USE_CLAUSE
(Applies to Ada programs.) Identifies any Ada package that a
specified block, subprogram, or package names in a use clause.
If the symbol specified is a package, also identifies any block,
subprogram, package, and so on, that names the specified symbol
in a use clause.
3 – Description
The SHOW SYMBOL command displays information that the debugger
has about a given symbol in the current image. This information
might not be the same as what the compiler had or even what
you see in your source code. Nonetheless, it is useful for
understanding why the debugger might act as it does when handling
symbols.
By default, the SHOW SYMBOL command lists all of the possible
declarations or definitions of a specified symbol that exist in
the RST for the current image (that is, in all set modules and
in the GST for that image). Symbols are displayed with their
path names. A path name identifies the search scope (module,
nested routines, blocks, and so on) that the debugger must follow
to reach a particular declaration of a symbol. When specifying
symbolic address expressions in debugger commands, use path
names only if a symbol is defined multiple times and the debugger
cannot resolve the ambiguity.
The /DEFINED and /LOCAL qualifiers display information about
symbols defined with the DEFINE command (not the symbols that
are derived from your program). The other qualifiers display
information about symbols defined within your program.
For information specific to Ada programs, type Help
Language_Support Ada.
Related commands:
DEFINE
DELETE
SET MODE [NO]LINE
SET MODE [NO]SYMBOLIC
SHOW DEFINE
SYMBOLIZE
4 – Examples
1.DBG> SHOW SYMBOL I
data FORARRAY\I
DBG>
This command shows that symbol I is defined in module FORARRAY
and is a variable (data) rather than a routine.
2.DBG> SHOW SYMBOL/ADDRESS INTARRAY1
data FORARRAY\INTARRAY1
descriptor address: 0009DE8B
DBG>
This command shows that symbol INTARRAY1 is defined in module
FORARRAY and has a memory address of 0009DE8B.
3.DBG> SHOW SYMBOL *PL*
This command lists all the symbols whose names contain the
string "PL".
4.DBG> SHOW SYMBOL/TYPE COLOR
data SCALARS\MAIN\COLOR
enumeration type (primary, 3 elements), size: 4 bytes
This command shows that the variable COLOR is an enumeration
type.
5.DBG> SHOW SYMBOL/TYPE/ADDRESS *
This command displays all information about all symbols.
6.DBG> SHOW SYMBOL * IN MOD3\COUNTER
routine MOD3\COUNTER
data MOD3\COUNTER\X
data MOD3\COUNTER\Y
DBG>
This command lists all the symbols that are defined in the
scope denoted by the path name MOD3\COUNTER.
7.DBG> DEFINE/COMMAND SB=SET BREAK
DBG> SHOW SYMBOL/DEFINED SB
defined SB
bound to: SET BREAK
was defined /command
DBG>
In this example, the DEFINE/COMMAND command defines SB as
a symbol for the SET BREAK command. The SHOW SYMBOL/DEFINED
command displays that definition.