The debugger built-in symbols provide options for specifying
program entities and values in debugger commands, as follows:
Function Symbols
Specify %Rn, %R31, %AP, %FP, %SP, %PC, %PSL, %Vn, %VCR,
Alpha %VLR, %VMR, %Fn, %F31
and VAX
registers
Specify %ARn, %Bn, %CRn, %Fn, %IPn, %IR0, %PRED, %Pn, %Rn,
Itanium[R] %SR
registers
%LANGUAGE Specify the current language
%NAME Construct identifiers
%PARCNT Count parameters passed in command procedures
%BIN, %DEC, Control radix
%HEX, %OCT
%CURLOC, Specify consecutive program locations and the
%NEXTLOC, current value of an entity
%PREVLOC,
%CURVAL
%LABEL, Specify numeric labels and line numbers
%LINE
%ADDR, Specify the argument passing mechanism for the
%DESCR, CALL command
%REF, %VAL
Specify %ADAEXC_NAME, %EXC_FACILITY, %EXC_NAME, %EXC_
processes, NUM, %EXC_SEVERITY, %PROCESS_NAME, %PROCESS_PID,
tasks, or %PROCESS_NUMBER, %NEXT_PROCESS, %PREVIOUS_PROCESS,
information %VISIBLE_PROCESS, %ACTIVE_TASK, %CALLER_TASK,
about %NEXT_TASK, %TASK. %VISIBLE_TASK
exceptions
Specify %PAGE, %WIDTH, %DECWINDOWS, %CURDISP, %CURSCROLL,
information %NEXTDISP, %NEXTINST, %NEXTOUTPUT, %NEXTSCROLL,
about the %NEXTSOURCE, %SOURCE_SCOPE, %INST_SCOPE, %CURRENT_
interface SCOPE_ENTRY, %NEXT_SCOPE_ENTRY, %PREVIOUS_SCOPE_
ENTRY
1 – %ARn
On I64 systems, specifies the following application registers:
Register
Symbol Definition
%AR0 . . . Kernel registers
%AR7
%AR16 Register Stack Configuration
%AR17 Backing Store Pointer
%AR18 Backing Store Pointer for Memory Stores
%AR19 RSE NaT Collection
%AR32 Compare and Exchange Compare Value
%AR36 User NaT Collection
%AR40 Floating=point Status
%AR64 Previous Function State
%AR65 Loop Count
%AR66 Epilog Count
2 – %AP
On VAX systems, specifies the VAX argument pointer register
(%R12).
3 – %Bn
On I64 systems, specifies branch registers %B0 through %B7, as
follows:
Register
Symbol Definition
%B0 Branch register 0; return pointer
%B1 . . . %B7 Branch registers 1 to 7
4 – %CRn
On I64 systems, specifies control registers %CR0 through %CR81,
as follows:
Register
Symbol Definition
%CR0 Default control
%CR1 Interval timer match (SCD only)
%CR2 Interruption vector address (SCD only)
%CR8 Page table address (SCD only)
%CR16,%IPSR Interruption processor status
%CR17 Interruption status
%CR19 Interruption instruction pointer
%CR20 Interruption faulting address
%CR21 Interruption TLB insertion
%CR22 Interruption instruction previous
%CR23 Interruption function state
%CR24 Interruption immediate
%CR25 Interruption hash address
%CR64 Local interrupt ID (SCD only)
%CR66 Task priority (SCD only)
%CR68 - External interrupt request 0 to 3 (SCD only)
%CR71
%CR72 Interval timer (SCD only)
%CR73 Performance monitoring (SCD only)
%CR74 Corrected machine check vector (SCD only)
%CR80 . . . Local redirection 0 and 1 (SCD only)
%CR81
5 – %Fn
On Alpha systems, specifies the Alpha floating-point registers
%F0 through %F30. On I64 systems, specifies IEEE floating-point
registers %F0 through %F127.
6 – %F31
On Alpha systems, specifies the ReadAsZero/Sink floating-point
register. This register is permanently assigned the value zero.
7 – %FP
On VAX systems, specifies the VAX frame pointer register (%R13).
On Alpha systems, specifies the Alpha stack frame base register
(%R29).
8 – %GP
On I64 systems, specifies general registers R0 through R127.
9 – %IP
On I64 systems, specifies a special register for the program
counter (i.e., Instruction pointer; slot number). Equivlient to
%PC.
10 – %Pn
On I64 systems, specifies a predicate (single-bit) registers 0 to
63.
11 – %PC
On VAX or Alpha, specifies the program counter (PC) register
containing the address of the next instruction to be executed by
the processor. On I64, specifies the instruction bundle address
(from the %IP register) and the slot offset within this bundle.
VAX Examples:
DBG> EXAMINE %PC ! Display the value in the PC
MOD3\%PC: 1554
! address of next instruction to execute
DBG> EXAMINE %PC ! Display the value at the address in the PC
MOD3\%LINE 12: MOVL B^12(R11),R1
! next instruction to execute
12 – %PRED
On I64 systems, specifies a 64-bit predicate collection register,
PRED, representing predicate registers P0 through P63. Individual
predicate registers can be examined using the syntax in the
following example:
PRn,1,0
where n is the predicate register number
13 – %PS
On Alpha systems, specifies the Alpha processor status register.
14 – %PSL
On VAX systems, specifies the VAX processor status longword.
15 – %Rn
On VAX systems, specifies the VAX general purpose registers %R0
through %R11. On Alpha systems, specifies the Alpha integer
registers %R0 through %R28. On I64 systems, specifies integer
registers %R0 through %R127, as follows:
Register
Symbol Definition
%R0 General integer register 0
%R1 (%GP) Global Data Pointer
%R2 . . . %R11 General integer registers 2 to 11
%R12 Stack Pointer
%R13 Thread Pointer
%R14 . . . General integer registers 14 to 24
%R24
%R25 Argument information
%R26 . . . General integer registers 26 to 127 (%R32 to %R127
%R127 may or may not be allocated/active)
Example:
DBG> DEPOSIT %R1 = 23
16 – %R31
On Alpha systems, specifies the ReadAsZero/Sink register. This
register is permanently assigned the value zero.
17 – %SP
On VAX systems, specifies the VAX stack pointer register (%R14).
On Alpha systems, specifies the Alpha stack pointer register
(%R30). On I64 systems, specifies the I64 stack pointer register
(%R12).
18 – %SR
On I64 systems, specifies the invocation handle (%IH).
19 – %Vn
On VAX systems, specifies the VAX vector registers %V0 through
%V15.
20 – %VLR
On VAX systems, specifies the VAX vector length register (%VLR).
The VLR limits the highest element of a vector register that is
processed by a vector instruction.
21 – %VMR
On VAX systems, specifies the VAX vector mask register (%VMR).
The VMR specifies a mask (a bit pattern) that a vector
instruction uses in order to operate on only certain elements
of a vector register operand.
22 – %LANGUAGE
Specifies the current language. The current language is the
language last established with the SET LANGUAGE command. BY
default, if you did not enter a SET LANGUAGE command, the current
language is the language of the module containing the main
program (image transfer address).
Example:
DBG> EVALUATE %LANGUAGE
'FORTRAN'
DBG> SET LANGUAGE ADA
DBG> EVALUATE %LANGUAGE
"ADA"
23 – %NAME
Enables you to constuct identifiers that are not ordinarily legal
in the current language.
Format:
%NAME id-char-string
%NAME 'any-char-string'
Examples:
DBG> EXAMINE %NAME 12 ! Examine variable nameD '12'
DBG> EXAMINE %NAME 'P.AAA' ! Examine generated label P.AAA
24 – %PARCNT
Specifies the number of actual parameters to the current command
procedure. Use %PARCNT in command procedures that can take a
variable number of actual parameters. You can use %PARCNT only
inside command procedures; it is not defined when commands are
entered from the terminal.
For example, suppose the command procedure ABC is executed with
the command @ABC 111,222,333. Inside ABC, %PARCNT then has the
value 3 because there are three parameters on this particular
call to ABC.
Example:
EVALUATE %PARCNT
FOR I = 1 TO %PARCNT DO (DECLARE X:VALUE; EVALUATE X)
25 – %BIN
Specifies that a following numeric literal (or all numeric
literals in a following parenthesized expression) be interpreted
in binary radix.
Examples:
DBG> EVALUATE/DEC %BIN 10
2
DBG> EVALUATE/DEC %BIN (10 + 10)
4
26 – %DEC
Specifies that a following numeric literal (or all numeric
literals in a following parenthesized expression) be interpreted
in decimal radix.
Examples:
DBG> EVALUATE/HEX %DEC 10
0A
DBG> DBG> EVALUATE/HEX %DEC (10 + 10)
14
27 – %HEX
Specifies that a following numeric literal (or all numeric
literals in a following parenthesized expression) be interpreted
in hexadecimal radix.
Examples:
DBG> EVALUATE/HEX %DEC 10
16
DBG> EVALUATE/DEC %HEX (10 + 10)
32
28 – %OCT
Specifies that a following numeric literal (or all numeric
literals in a following parenthesized expression) be interpreted
in octal radix.
Examples:
DBG> EVALUATE/DEC %OCT 10
8
DBG> EVALUATE/DEC %OCT (10 + 10)
16
29 – %CURLOC
Specifies the current logical entity (that is, the program
location last referenced by an EXAMINE, DEPOSIT, or
EVALUATE/ADDRESS command). You can also use the period character
(.) for this purpose.
Example:
DBG> EXAMINE RADIUS
CIRCLE\RADIUS: 0.0000000E+00
DBG> DEPOSIT %CURLOC = 1 ! Set RADIUS to 1
DBG> DEPOSIT . = 2 ! Set RADIUS to 2
30 – %NEXTLOC
Specifies the logical successor of the current entity (that is,
the program location that logically follows the location last
referenced by an EXAMINE, DEPOSIT, or EVALUATE/ADDRESS command).
The EXAMINE command without a parameter is equivalent to EXAMINE
%NEXTLOC.
Example:
DBG> EXAMINE PRIMES(4)
SIEVE\PRIMES(4): 7
DBG> EXAMINE %NEXTLOC
SIEVE\PRIMES(5): 11
DBG> EXAMINE ! Equivalent to EXAMINE %NEXTLOC
SIEVE\PRIMES(6): 13
31 – %PREVLOC
Specifies the logical predecessor of the current entity (that is,
the program location that logically precedes the location last
referenced by an EXAMINE, DEPOSIT, or EVALUATE/ADDRESS command).
You can also use the circumflex character (^) for this purpose.
Examples:
DBG> EXAMINE PRIMES(6)
SIEVE\PRIMES(6): 13
DBG> EXAMINE %PREVLOC
SIEVE\PRIMES(5): 11
DBG> EXAMINE ^ ! Equivalent to EXAMINE %PREVLOC
SIEVE\PRIMES(4): 7
32 – %CURVAL
Specifies the value last displayed by an EVALUATE or EXAMINE
command, or deposited by a DEPOSIT command. You can also use the
backslash character (\) for this purpose. These two symbols are
not affected by an EVALUATE/ADDRESS command.
Example:
DBG> EXAMINE RADIUS
CIRCLE\RADIUS: 0.0000000E+00
DBG> EVALUATE %CURVAL
0.0000000E+00
33 – %LABEL
%LABEL n is the debugger syntax for referring to label n in your
program. This is intended for languages like FORTRAN which have
numeric program labels. You can qualify the label with a pathname
specifying the containing module.
Example:
DBG> SET BREAK MODULENAME\%LABEL 10
The old syntax of %LABEL MODULENAME\n is no longer accepted.
34 – %LINE
%LINE n is the debugger syntax for referring to line n in
your program. You can qualify the line number with a pathname
specifying the containing module.
Example:
DBG> SET BREAK MODULENAME\%LINE 10
The old syntax of %LINE MODULENAME\n is no longer accepted.
35 – %PAGE
Specifies the current height of the screen, in lines, as used by
the debbuger.
For example, the following command defines a screen mode window
named MIDDLE that occupies a region around the middle of the
screen:
DBG> SET WINDOW MIDDLE AT -
_DBG> (%PAGE/4,%PAGE/2,%WIDTH/4,%WIDTH/2)
36 – %WIDTH
Specifies the current width of the screen, in columns, as used by
the debugger.
For example, the following command defines a screen mode window
named MIDDLE that occupies a region around the middle of the
screen:
DBG> SET WINDOW MIDDLE AT -
_DBG> (%PAGE/4,%PAGE/2,%WIDTH/4,%WIDTH/2)
37 – %DECWINDOWS
Enables you to determine whether you are using the debugger's
command interface or DECwindows Motif interface. With the
DECwindows Motif interface, the value of %DECWINDOWS is 1 (TRUE).
With the command interface, the value is 0 (FALSE). For example:
DBG> EVALUATE %DECWINDOWS
0
The following example shows how to use %DECWINDOWS in a debugger
initialization file to position the debugger source window, SRC,
at debugger startup:
IF %DECWINDOWS THEN
! DECwindows Motif (workstation) syntax:
(DISPLAY SRC AT (100,300,100,700))
ELSE
! Screen-mode (terminal) syntax:
(DISPLAY SRC AT (AT H1))
38 – %ADDR
(Default.) Used with the CALL command to specify the argument
passing mechanism. The %ADDR symbol specifies that the argument
is passed by address. See the CALL command.
39 – %DESCR
Used with the CALL command to specify the argument passing
mechanism. The %DESCR symbol specifies that the argument is
passed by descriptor. See the CALL command.
40 – %REF
Used with the CALL command to specify the argument passing
mechanism. The %REF symbol specifies that the argument is passed
by reference. See the CALL command.
41 – %VAL
Used with the CALL command to specify the argument passing
mechanism. The %VAL symbol specifies that the argument is passed
by value. See the CALL command.
42 – %CURDISP
Specifies the current display (screen mode). This is the display
most recently referenced with a DISPLAY command (that is, the
least occluded display.)
Example:
DBG> SELECT/SCROLL %CURDISP
43 – %CURSCROLL
Specifies the current (screen mode) scrolling display. This is
the default display for the SCROLL, MOVE, and EXPAND commands, as
well as for the associated keypad keys (KP2, KP4, KP6, and KP8).
Example:
DBG> EXPAND/DOWN:5 %CURSCROLL
44 – %NEXTDISP
Specifies the next display after the current display in the
screen-mode display list. The next display is the display
that follows the topmost display. Because the display list is
circular, this is the display at the bottom of the pasteboard
(the most occluded display).
Example:
DBG> DISPLAY/POP %NEXTDISP
45 – %NEXTINST
Specifies the next instruction display after the current
instruction display in the screen-mode display list. The current
instruction display is the display that receives the output from
EXAMINE/INSTRUCTION commands.
Example:
DBG> DISPLAY/REMOVE %NEXTINST
46 – %NEXTOUTPUT
Specifies the next output display after the current output
display in the screen-mode display list. An output display
receives debugger output that is not already directed to another
display.
Example:
DBG> EXTRACT %NEXTOUTPUT OUT4.TXT
47 – %NEXTSCROLL
Specifies the next display after the current scrolling display in
the screen-mode display list.
Example:
DBG> SELECT/SCROLL %NEXTSCROLL
48 – %NEXTSOURCE
Specifies the next source display after the current source
display in the screen-mode display list. The current source
display is the display which receives the output from TYPE and
EXAMINE/SOURCE commands.
Example:
DBG> SELECT/SOURCE %NEXTSOURCE
49 – %SOURCE SCOPE
Specifies the scope, relative to the call stack, for which source
code is displayed in a screen-mode source display. If source code
is not available for display in that scope, the debugger displays
source code for the next level down the call stack for which it
is available.
The %SOURCE_SCOPE symbol is used in the definition of the
predefined screen-mode source display SRC:
DBG> DISPLAY SRC AT H1 SOURCE -
_DBG> (EXAMINE/SOURCE .%SOURCE_SCOPE\%PC)
50 – %INST SCOPE
Specifies the scope, relative to the call stack, for which
decoded instructions are displayed in a screen-mode instruction
display.
The %INST_SCOPE symbol is used in the definition of the
predefined screen-mode instruction display INST:
DBG> DISPLAY INST AT H1 INSTRUCTION -
_DBG> (EXAMINE/INST .%INST_SCOPE\%PC)
51 – %CURRENT SCOPE ENTRY
Specifies the call frame that the debugger is currently using as
reference when displaying source code or decoded instructions, or
when searching for symbols. By default, this is call frame 0.
The %CURRENT_SCOPE_ENTRY symbol returns an integer value that
denotes a call frame on the call stack. Call frame 0 denotes
the routine at the top of the call stack, where execution is
suspended. Call frame 1 denotes the calling routine, and so on.
52 – %NEXT SCOPE ENTRY
Specifies the next frame down the call stack from the call frame
denoted by %CURRENT_SCOPE_ENTRY.
The %NEXT_SCOPE_ENTRY symbol returns an integer value that
denotes a call frame on the call stack. Call frame 0 denotes
the routine at the top of the call stack, where execution is
suspended. Call frame 1 denotes the calling routine, and so on.
53 – %PREVIOUS SCOPE ENTRY
Specifies the next frame up the call stack from the call frame
denoted by %CURRENT_SCOPE_ENTRY.
The %PREVIOUS_SCOPE_ENTRY symbol returns an integer value that
denotes a call frame on the call stack. Call frame 0 denotes
the routine at the top of the call stack, where execution is
suspended. Call frame 1 denotes the calling routine, and so on.
54 – %PROCESS NAME
Applies to a multiprocess debugging configuration (when
DBG$PROCESS has the value MULTIPROCESS).
When specifying a process name in a debugger command string, you
can optionally precede the name with the symbol %PROCESS_NAME.
Example:
DBG_2> EXIT %PROCESS_NAME JONES_4
55 – %PROCESS PID
Applies to a multiprocess debugging configuration (when
DBG$PROCESS has the value MULTIPROCESS).
When specifying a process identification number (PID) in a
debugger command string, you must precede the PID with the symbol
%PROCESS_PID.
Example:
DBG_2> CONNECT %PROCESS_PID 258001B6
56 – %PROCESS NUMBER
Applies to a multiprocess debugging configuration (when
DBG$PROCESS has the value MULTIPROCESS).
When specifying a debugger-assigned process number in a debugger
command string, you must precede the number with %PROCESS_NUMBER
(or the abbreviation %PROC).
Example:
DBG_2> SHOW PROCESS %PROC 3
57 – %NEXT PROCESS
Applies to a multiprocess debugging configuration (when
DBG$PROCESS has the value MULTIPROCESS). Specifies the next
process in the debugger's process list after the visible process.
Example:
DBG_3> SET PROCESS/HOLD %NEXT_PROCESS
58 – %PREVIOUS PROCESS
Applies to a multiprocess debugging configuration (when
DBG$PROCESS has the value MULTIPROCESS). Specifies the previous
process in the debugger's process list before the visible
process.
Example:
DBG_3> SHOW PROCESS/FULL %PREVIOUS_PROCESS
59 – %VISIBLE PROCESS
Applies to a multiprocess debugging configuration (when
DBG$PROCESS has the value MULTIPROCESS). Specifies the visible
process. This is the process whose stack, register set, and
images are the current context for looking up symbols, register
values, routine calls, breakpoints, and so on.
Example:
DBG_2> DO/PROCESS=(%VISIBLE_PROCESS,%NEXT_PROCESS) -
_DBG_2> (EXAMINE X)
60 – %ADAEXC NAME
A special form of %EXC_NAME for ADA programs. In ADA, an
exception can be raised with syntax such as "raise XXX;". In
this case, the exception name in the operating system sense is
just "EXCEPTION," which is what %E returns. The ADA exception
name ("XXX") is returned by %ADAEXC_NAME.
Example:
DBG> SET BREAK/EXCEPTION WHEN -
_DBG> (%ADAEXC_NAME = "XXX")
61 – %EXC FACILITY
Gives you the facility of the current exception. This provides a
way of qualifying exception breaks.
Example:
DBG> EVALUATE %EXC_FACILITY
"SYSTEM"
DBG> SET BREAK/EXC WHEN -
_DBG> (%EXC_FAC = "SYSTEM")
62 – %EXC NAME
Gives you the name of the current exception. This provides a way
of qualifying exception breaks.
Example:
DBG> EVALUATE %EXC_NAME
"FLTDIV_F"
DBG> SET BREAK/EXC WHEN (%EXC_NAME = "FLTDIV_F")
63 – %EXC NUM
Gives you the current exception number. This provides a way of
qualifying exception breaks.
Example:
DBG> EVALUATE %EXC_NUM
12
DBG> EVALUATE/COND %EXC_NUM
%SYSTEM-F-ACCVIO, access violation at PC !XL,
virtual address !XL
DBG> SET BREAK/EXC WHEN (%EXC_NUM = 12)
64 – %EXC SEVERITY
Gives you the severity code of the current exception. This
provides a way of qualifying exception breaks.
Example:
DBG> EVALUATE %EXC_SEVERITY
"F"
DBG> >U>(SET BREAK/EXC WHEN (%EXC_SEV = "F"))
65 – %ACTIVE TASK
(Applies only to tasking programs.) Gives you the currently
active task (the one that was running when the debugger last
took control). See the SET TASK/ACTIVE command.
Example:
DBG> EVALUATE %ACTIVE_TASK
%TASK 2
66 – %CALLER TASK
(Applies only to Ada tasking programs.) Gives you the task which
is the entry caller of the active task during a task rendezvous.
If the active task (%ACTIVE_TASK) is not currently executing
an accept statement (that is, a rendezvous is not in progress),
%CALLER_TASK returns %TASK 0.
Example:
The following command sets a breakpoint within an accept
statement. The breakpoint is triggered only when %TASK 3 is the
task making the entry call of the rendezvous.
DBG> TYPE 51:53
module SAMPLE
51: accept RENDEZVOUS do
52: PUT_LINE("Beginning the rendezvous");
53: end RENDEZVOUS;
DBG> SET BREAK %LINE 52 WHEN (%CALLER_TASK = %TASK 3)
67 – %NEXT TASK
(Applies only to tasking programs.) Gives you the next task after
the one currently visible (%VISIBLE_TASK). "Next" in this context
is just an internal ordering that cycles through all the tasks.
This lets you set up command procedures that cycle through all
tasks.
Example:
DBG> WHILE %NEXT NEQ %ACTIVE DO -
_DBG> (SET TASK %NEXT; SHOW CALLS)
68 – %TASK
(Applies only to tasking programs.)
%TASK n (where n is a positive decimal integer) is the debugger
syntax for referring to a task by its task ID. The task ID is
a unique number associated with a task at the time the task
is created. The task number n can be obtained using the SHOW
TASK/ALL command or by examining task objects.
Example:
DBG> EXAMINE T1
T1: %TASK 2
DBG> SET TASK %TASK 2
69 – %VISIBLE TASK
(Applies only to tasking programs.) Gives you the task that the
debugger is using to do symbol lookups. This is the default task
assumed by debugging commands when you do not (or cannot) specify
a task. For example, the EXAMINE %R0 command displays register 0
of the visible task.
This is normally the same as %ACTIVE_TASK but can be changed
using the SET TASK command.
Example:
DBG> SET TASK %TASK 2
DBG> EVALUATE %VISIBLE
%TASK 2