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