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.