 |
OpenVMS Debugger Manual
SHOW RADIX
Identifies the current radix for the entry and display of integer data
or, if you specify /OVERRIDE, the current override radix.
Format
SHOW RADIX
Qualifiers
/OVERRIDE
Identifies the current override radix.
Description
The debugger can interpret and display integer data in any one of four
radixes: binary, decimal, hexadecimal, and octal. The current radix for
the entry and display of integer data is the radix last established
with the SET RADIX command.
If you did not enter a SET RADIX command, the default radix for both
data entry and display is decimal for most languages. The exceptions
are BLISS and MACRO, which have a default radix of hexadecimal.
The current override radix for the display of all data is the override
radix last established with the SET RADIX/OVERRIDE command. If you did
not enter a SET RADIX/OVERRIDE command, the override radix is
"none".
Related commands:
DEPOSIT
EVALUATE
EXAMINE
(SET,CANCEL) RADIX
Examples
#1 |
DBG> SHOW RADIX
input radix: decimal
output radix: decimal
DBG>
|
This command identifies the input radix and output radix as decimal.
#2 |
DBG> SET RADIX/OVERRIDE HEX
DBG> SHOW RADIX/OVERRIDE
output override radix: hexadecimal
DBG>
|
In this example, the SET RADIX/OVERRIDE command sets the override radix
to hexadecimal and the SHOW RADIX/OVERRIDE command indicates the
override radix. This means that commands such as EXAMINE display all
data as hexadecimal integer data.
SHOW SCOPE
Identifies the current scope search list for symbol lookup.
Format
SHOW SCOPE
Description
The current scope search list designates one or more program locations
(specified by path names or other special characters) to be used in the
interpretation of symbols that are specified without pathname prefixes
in debugger commands.
The current scope search list is the scope search list last established
with the SET SCOPE command. By default, if you did not enter a SET
SCOPE command, the current scope search list is 0,1,2,...,n.
The default scope search list specifies that, for a symbol without a
pathname prefix, a symbol lookup such as EXAMINE X first looks for X in
the routine that is currently executing (scope 0); if no X is visible
there, the debugger looks in the caller of that routine (scope 1), and
so on down the call stack; if X is not found in scope n, the
debugger searches the rest of the run-time symbol table (RST)---that
is, all set modules and the global symbol table (GST), if necessary.
If you used a decimal integer in the SET SCOPE command to represent a
routine in the call stack, the SHOW SCOPE command displays the name of
the routine represented by the integer, if possible.
Related commands:
(SET,CANCEL) SCOPE
Examples
#1 |
DBG> CANCEL SCOPE
DBG> SHOW SCOPE
scope:
* 0 [ = EIGHTQUEENS\TRYCOL\REMOVEQUEEN ],
1 [ = EIGHTQUEENS\TRYCOL ],
2 [ = EIGHTQUEENS\TRYCOL 1 ],
3 [ = EIGHTQUEENS\TRYCOL 2 ],
4 [ = EIGHTQUEENS\TRYCOL 3 ],
5 [ = EIGHTQUEENS\TRYCOL 4 ],
6 [ = EIGHTQUEENS ]
DBG> SET SCOPE/CURRENT 2
DBG> SHOW SCOPE
scope:
0 [ = EIGHTQUEENS\TRYCOL\REMOVEQUEEN ],
1 [ = EIGHTQUEENS\TRYCOL ],
* 2 [ = EIGHTQUEENS\TRYCOL 1 ],
3 [ = EIGHTQUEENS\TRYCOL 2 ],
4 [ = EIGHTQUEENS\TRYCOL 3 ],
5 [ = EIGHTQUEENS\TRYCOL 4 ],
6 [ = EIGHTQUEENS ]
DBG>
|
The CANCEL SCOPE command restores the default scope search list, which
is displayed by the (first) SHOW SCOPE command. In this example,
execution is suspended at routine REMOVEQUEEN, after several recursive
calls to routine TRYCOL. The asterisk (*) indicates that the scope
search list starts with scope 0, the scope of the routine in which
execution is suspended.
The SET SCOPE/CURRENT command resets the start of the scope search list
to scope 2. Scope 2 is the scope of the caller of the routine in which
execution is suspended. The asterisk in the output of the (second) SHOW
SCOPE command indicates that the scope search list now starts with
scope 2.
#2 |
DBG> SET SCOPE 0,STACKS\R2,SCREEN_IO,\
DBG> SHOW SCOPE
scope:
0, [= TEST ],
STACKS\R2,
SCREEN_IO,
\
DBG>
|
In this example, the SET SCOPE command directs the debugger to look for
symbols without pathname prefixes according to the following scope
search list. First the debugger looks in the PC scope (denoted by 0,
which is in module TEST). If the debugger cannot find a specified
symbol in the PC scope, it then looks in routine R2 of module STACKS;
if necessary, it then looks in module SCREEN_IO, and then finally in
the global symbol table (denoted by the global scope (\)). The SHOW
SCOPE command identifies the current scope search list for symbol
lookup. No asterisk is shown in the SHOW SCOPE display unless the
default scope search list is in effect or you have entered a SET
SCOPE/CURRENT command.
SHOW SEARCH
Identifies the default qualifiers (/ALL or /NEXT, /IDENTIFIER or
/STRING) currently in effect for the SEARCH command.
Format
SHOW SEARCH
Description
The default qualifiers for the SEARCH command are the default
qualifiers last established with the SET SEARCH command. If you did not
enter a SET SEARCH command, the default qualifiers are /NEXT and
/STRING.
Related commands:
SEARCH
(SET,SHOW) LANGUAGE
SET SEARCH
Example
|
DBG> SHOW SEARCH
search settings: search for next occurrence, as a string
DBG> SET SEARCH IDENT
DBG> SHOW SEARCH
search settings: search for next occurrence, as an identifier
DBG> SET SEARCH ALL
DBG> SHOW SEARCH
search settings: search for all occurrences, as an identifier
DBG>
|
In this example, the first SHOW SEARCH command displays the default
settings for the SET SEARCH command. By default, the debugger searches
for and displays the next occurrence of the string.
The second SHOW SEARCH command indicates that the debugger searches for
the next occurrence of the string, but displays the string only if it
is not bounded on either side by a character that can be part of an
identifier in the current language.
The third SHOW SEARCH command indicates that the debugger searches for
all occurrences of the string, but displays the strings only if they
are not bounded on either side by a character that can be part of an
identifier in the current language.
SHOW SELECT
Identifies the displays currently selected for each of the display
attributes: error, input, instruction, output, program, prompt, scroll,
and source.
Note
This command is not available in the HP DECwindows Motif for OpenVMS user interface to
the debugger.
|
Format
SHOW SELECT
Description
The display attributes have the following properties:
- A display that has the error attribute displays
debugger diagnostic messages.
- A display that has the input attribute echoes your
debugger input.
- A display that has the instruction attribute
displays the decoded instruction stream of the routine being debugged.
The display is updated when you enter an EXAMINE/INSTRUCTION command.
- A display that has the output attribute displays
any debugger output that is not directed to another display.
- A display that has the program attribute displays
program input and output. Currently only the PROMPT display can have
the program attribute.
- A display that has the prompt attribute is where
the debugger prompts for input. Currently, only the PROMPT display can
have the PROMPT attribute.
- A display that has the scroll attribute is the
default display for the SCROLL, MOVE, and EXPAND commands.
- A display that has the source attribute displays
the source code of the module being debugged, if available. The display
is updated when you enter a TYPE or EXAMINE/SOURCE command.
Related commands:
SELECT
SHOW DISPLAY
Example
|
DBG> SHOW SELECT
display selections:
scroll = SRC
input = none
output = OUT
error = PROMPT
source = SRC
instruction = none
program = PROMPT
prompt = PROMPT
DBG>
|
The SHOW SELECT command identifies the displays currently selected for
each of the display attributes. These selections are the defaults for
languages.
SHOW SOURCE
Identifies the source directory search lists and search methods
currently in effect.
Format
SHOW SOURCE
Qualifiers
/DISPLAY
Identifies the search list used when the debugger displays source code.
/EDIT
Identifies the search list to be used during execution of the
debugger's EDIT command.
Description
The SET SOURCE/MODULE=module-name command establishes a source
directory search list for a particular module. The SET SOURCE command
establishes a source directory search list for all modules not
explicitly mentioned in a SET SOURCE/MODULE=module-name
command. When you have used those commands, SHOW SOURCE identifies the
source directory search list associated with each search category.
If a source directory search list has not been established by using the
SET SOURCE or SET SOURCE/MODULE=module-name command, the SHOW
SOURCE command indicates that no directory search list is currently in
effect. In this case, the debugger expects each source file to be in
the same directory that it was in at compile time (the debugger also
checks that the version number and the creation date and time of a
source file match the information in the debugger's symbol table).
The /EDIT qualifier is needed when the files used for the display of
source code are different from the files to be edited by using the EDIT
command. This is the case with Ada programs. For Ada programs, the SHOW
SOURCE command identifies the search list of files used for source
display (the copied source files in Ada program libraries); the SHOW
SOURCE/EDIT command identifies the search list for the source files you
edit when using the EDIT command.
For information specific to Ada programs, type Help Language_Support
Ada.
Related commands:
(SET,CANCEL) SOURCE
Examples
#1 |
DBG> SHOW SOURCE
no directory search list in effect,
match the latest source file version
DBG> SET SOURCE [PROJA],[PROJB],DISK:[PETER.PROJC]
DBG> SHOW SOURCE
source directory search list for all modules,
match the latest source file version:
[PROJA]
[PROJB]
DISK:[PETER.PROJC]
DBG>
|
In this example, the SET SOURCE command directs the debugger to search
the directories [PROJA],[PROJB], and DISK:[PETER.PROJC]. By default,
the debugger searches for the latest version of source files.
#2 |
DBG> SET SOURCE/MODULE=CTEST/EXACT [], DISK$2:[PROJD]
DBG> SHOW SOURCE
source directory search list for CTEST,
match the exact source file version:
[]
DISK$2:[PROJD]
source directory search list for all other modules,
match the latest source file version:
[PROJA]
[PROJB]
DISK:[PETER.PROJC]
DBG>
|
In this example, the SET SOURCE command directs the debugger to search
the current default directory ([]) and directory DISK$2:[PROJD] for
source files to use with the module CTEST. The /EXACT qualifier
specifies that the search will locate the exact version of the CTEST
source files found in the debug symbol table.
SHOW STACK
Displays information on the currently active routine calls.
Format
SHOW STACK [integer]
Parameters
integer
Specifies the number of frames to display. If you omit the parameter,
the debugger displays information about all call frames.
Qualifiers
/START_LEVEL=n
Directs SHOW STACK to begin displaying information at call frame level
n. For example, to see stack information for only frame 3,
enter the following command:
DBG> SHOW STACK/START=3 1
|
To see details for the 4th and 5th stack frames, enter the following
command:
DBG> SHOW STACK/START=4 2
|
Description
For each call frame, the SHOW STACK command displays information such
as stack pointers, condition handler, saved register values (Alpha),
and local register allocation (Integrity servers). Note that an
argument passed through a register or an argument list may contain the
addresses of the actual argument. In such cases, use the EXAMINE
address-expression command to display the values of these
arguments.
On Integrity server and Alpha processors, a routine invocation can
result in:
- A stack frame procedure, with a call frame on the memory stack,
- A register frame procedure, with a call frame stored in the
register set (Alpha) or on the register stack (Integrity servers), or
- A null frame procedure, without a call frame
The SHOW STACK command provides information on all three procedures:
stack frame, register frame, and null frame. (See the examples below.)
Related command:
SHOW CALLS
Examples
Alpha example:
DBG> SHOW STACK
invocation block 0
FP: 000000007F907AD0
Detected what appears to be a NULL frame
NULL frames operate in the same invocation context as their caller
NULL Procedure Descriptor (0000000000010050):
Flags: 3089
KIND: PDSC$K_KIND_FP_STACK (09)
Signature Offset 0000
Entry Address: MAIN\FFFF
Procedure Descriptor (0000000000010000):
Flags: 3089
KIND: PDSC$K_KIND_FP_STACK (09)
FP is Base Register
Rsa Offset: 0008
Signature Offset 0000
Entry Address: MAIN
Ireg Mask: 20000004 <R2,FP>
RA Saved @ 000000007F907AD8: FFFFFFFF8255A1F8
R2 Saved @ 000000007F907AE0: 000000007FFBF880
FP Saved @ 000000007F907AE8: 000000007F907B30
Freg Mask: 00000000
Size: 00000020
invocation block 1
FP: 000000007F907B30
Procedure Descriptor (FFFFFFFF8255D910):
Flags: 3099
KIND: PDSC$K_KIND_FP_STACK (09)
Handler Valid
FP is Base Register
Rsa Offset: 0048
Signature Offset 0001
Entry Address: -2108317536
Ireg Mask: 20002084 <R2,R7,R13,FP>
RA Saved @ 000000007F907B78: 000000007FA28160
R2 Saved @ 000000007F907B80: 0000000000000000
R7 Saved @ 000000007F907B88: 000000007FF9C9E0
R13 Saved @ 000000007F907B90: 000000007FA00900
FP Saved @ 000000007F907B98: 000000007F907BB0
Freg Mask: 00000000
Size: 00000070
Condition Handler: -2108303104
DBG>
|
In the above example, note that sections of routine prologues and
epilogues appear to the debugger to be null frames. The portion of the
prologue before the change in the frame pointer (FP) and the portion of
the epilogue after restoration of the FP each look like a null frame,
and are reported accordingly.
Integrity servers example:
The following abbreviations are used in the example:
GP---Global data segment Pointer (%R1)
PC---Program Counter (Instruction Pointer + instruction slot number)
SP---Stack Pointer (memory stack)
BSP---Backing Store Pointer (register stack)
CFM---Current Frame Marker
DBG> SHOW STACK
Invocation block 0 Invocation handle 000007FDC0000270
GP: 0000000000240000
PC: MAIN\FFFF
In prologue region
RETURN PC: MAIN\%LINE 15
SP: 000000007AD13B40
Is memory stack frame:
previous SP: 000000007AD13B40
BSP: 000007FDC0000270
Is register stack frame:
previous BSP: 000007FDC0000248
CFM: 0000000000000005
No locals Outs R32 : R36
Invocation block 1 Invocation handle 000007FDC0000248
GP: 0000000000240000
PC: MAIN\%LINE 15
RETURN PC: 0FFFFFFFF80C2A200
SP: 000000007AD13B40
Is memory stack frame:
previous SP: 000000007AD13B70
BSP: 000007FDC0000248
Is register stack frame:
previous BSP: 000007FDC0000180
CFM: 000000000000028A
Ins/Locals R32 : R36 Outs R37 : R41
Invocation block 2 Invocation handle 000007FDC0000180
GP: 0FFFFFFFF844DEC00
PC: 0FFFFFFFF80C2A200
RETURN PC: SHARE$DCL_CODE0+5AB9F
SP: 000000007AD13B70
Is memory stack frame:
previous SP: 000000007AD13BC0
BSP: 000007FDC0000180
Is register stack frame:
previous BSP: 000007FDC00000B8
Has handler:
function value: 0FFFFFFFF842DFBD0
CFM: 0000000000000C20
Ins/Locals R32 : R55 Outs R56 : R63
DBG>
|
See OpenVMS Calling Standard for more information.
SHOW STEP
Identifies the default qualifiers (/INTO, /INSTRUCTION, /NOSILENT and
so on) currently in effect for the STEP command.
Format
SHOW STEP
Description
The default qualifiers for the STEP command are the default qualifiers
last established by the SET STEP command. If you did not enter a SET
STEP command, the default qualifiers are /LINE, /OVER, /NOSILENT, and
/SOURCE.
Enabling screen mode by pressing PF1-PF3 enters the SET STEP NOSOURCE
command as well as the SET MODE SCREEN command (to eliminate redundant
source display in output and DO displays). In that case, the default
qualifiers are /LINE, /OVER, /NOSILENT, and /NOSOURCE.
Related commands:
STEP
SET STEP
Example
|
DBG> SET STEP INTO,NOSYSTEM,NOSHARE,INSTRUCTION,NOSOURCE
DBG> SHOW STEP
step type: nosystem, noshare, nosource, nosilent, into routine calls,
by instruction
DBG>
|
In this example, the SHOW STEP command indicates that the debugger take
the following actions:
- Steps into called routines, but not those in system space or in
shareable images
- Steps by instruction
- Does not display lines of source code while stepping
SHOW SYMBOL
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[,...]]
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.
Qualifiers
/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, 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.
/DEFINED
Displays symbols you have defined with the DEFINE command (symbol
definitions that are in the DEFINE symbol table).
/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.
/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.
/LOCAL
Displays symbols that are defined with the DEFINE/LOCAL command (symbol
definitions that are in the DEFINE symbol table).
/TYPE
Displays data type information for each selected symbol.
/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.
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
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.
|