% Librarian T09-20EO?J'P?JUV5Q DEBUG G)1 DEBUG> The Debugger Command Dictionary contains detailed referenceA information about all debugger commands, organized as follows:= o Command Format explains how to enter debugger commands.= o Commands Disabled in DECwindows lists commands that areC disabled in the command/message view of the debugger's Compaq2 DECwindows Motif for OpenVMS user interface.B o Messages gives general information about debugger diagnosticA messages. The Debugger Command Dictionary contains detailed8 reference information about the debugger commands. 2 New_Features9 For more information, see the OpenVMS Debugger Manual.< This section describes the following new OpenVMS Debugger features:. o New commands for examining process dumps o Multiprocess debugging3 o New /VARIANT qualifier to the EXAMINE command &3 New_Process_Dump_Tools_(Alpha_only)< The OpenVMS Version 7.3 debugger contains new comands for@ processing dump files. Note that these new-style process dumpC and process dump analysis tools are not compatible with the old-B style process dumps. That is, if you have a problem you want toC analyze with the new tools, you must generate a new process dump$ using the new process dump image.2 The following subtopics describe the new tools. (4 Debugger_ANALYZE_PROCESS_DUMP_Command" The debugger has a new command:= ANALYZE/PROCESS_DUMP/IMAGE_PATH[=directory-spec] dumpfile.@ This command is available only in the kept debugger. The kept@ debugger is the image you invoke with the command DEBUG/KEEP,; which allows you to run and rerun programs from the same debugging session.B The qualifier /PROCESS_DUMP is required, and distinguishes thisD command from the one that invokes the System Dump Debugger (SDD), ANALYZE/CRASH_DUMP.8 For more information, see the OpenVMS Debugger Manual 4 Debugger_SDA_Command@ The new debugger SDA command invokes the System Dump AnalyzerC (SDA) from within the OpenVMS debugger. You can then use SDA for1 additional process dump analysis. For example: DBG> SDA, OpenVMS (TM) Alpha process dump analyzer SDA> .. . . SDA> EXIT DBG>A This allows you to use SDA for additional analysis of a system/ dump without terminating a debugger session.8 For more information, see the OpenVMS Debugger Manual "3 Multiprocess_Debugg ing_EnhancedB For Version 7.3, debugger support for multiprocess programs hasB been extensively overhauled. Bugs have been fixed and the user- interface has been improved.@ The multiprocess debugging enhancements include the following features:; o Greater control over individual process and groups of processes, including:8 Execution of processes (or groups of processes)9 Suspension of processes (or groups of processes)D Exiting processes (or groups of processes), with or without exit handler execution8 o Ability to create user-defined groups of processesD o Simpler to start a multiprocess debugging session; the default> configuration of the kept debugger is for a multiprocess sessionB o Applications that use $HIBER WAIT (LIB$WAIT, $SCHDWH, and soB on) can now be debugged using normal debugger configurations? These enhancements make it much easier to debug multiprocess program s.? For more detailed information, refer to the OpenVMS Debugger Manual. 3 EXAMINE/VARIANT_Command@ The EXAMINE command has a new /VARIANT qualifier that enablesA the debugger to display the correct item when it encounters an anonymous variant.A In a C program, a union contains members, only one of which isD valid at any one time. When displaying a union, the debugger doesA not know which member is currently valid. In a PASCAL program,> a record with a var iant part contains variants, only one ofC which is valid at any one time. When displaying a record with anC anonymous variant part, the debugger does not know which variant< is currently valid, and displays all variants by default.? You can use the /VARIANT qualifier to select which member of? a union (C program) or anonymous variant (PASCAL program) to% display. The format is as follows:2 DBG> EXAMINE /VARIANT=var-selector address-exp9 DBG> EXAMINE /VARIANT=(var-s elector,...) address-exp8 The variant selector var-selector specifies a name, aA discriminant (PASCAL only), or a position; that is, one of the following: o NAME = name-string o DISCRIMINANT = expression o POSITION = expression/ For more information, see the EXAMINE topic. 2 Address_Expressions@ Several debugger commands require that you specify an address@ expression. An address expression is an entity that denotes a? memory address or a register. Commands for which you specify address expressions are:, (SET,ACTIVATE,DEACTIVATE,CANCEL) BREAK, (SET,ACTIVATE,DEACTIVATE,CANCEL) TRACE, (SET,ACTIVATE,DEACTIVATE,CANCEL) WATCH EVALUATE/ADDRESS EXAMINE- DEPOSIT (at the left of the equal sign)C In general, you can specify address expressions using the syntax. of the currently set language. For example:" DBG> EXAMINE A(1) ! FORTRAN! DBG> SET WATCH A[1] ! Pascal DBG> EXAMINE C OF R ! COBOLD In addition, you can specify address expressions numerically, andB you can also use the built-in symbols %LINE and %LABEL to refer to code locations: DBG> EXAMINE 512 DBG> SET BREAK %LINE 10@ You can also use the following operators to specify addresses< that you might not be able to access by name (nonsymbolic addresses): + - * Arithmetic operators / @ or . Indirection Select bit field> For example, examine the instruction 3 bytes after line 10: DBG> EXAMINE %LINE 10 + 3( Examine the location pointed to by P: DBG> EXAMINE @PC Do not confuse an address expression with a language expression,< which denotes a value rather than a program location. TheD following examples show how the same command parameter is treated> either as an address expression or as a language expression depending on the command:; Show the address of the variable X (address expression): DBG> EVALUATE/ADDR X 5124 Show the current value of X (address expression): DBG> EXAMINE X X: 0$ Evaluate X (language expression): DBG> EVALUATE X 0& Evaluate X+1 (language expression): DBG> EVALUATE X+1 1= Show value at location X plus 1 byte (address expression): DBG> EXAMINE X+1 513: 0 53 Using_Symbols_and_Operators_in_Address_ExpressionsD The symbols and operators that can be used in address expressions? are listed below. A unary o perator has one operand. A binary operator has two operands. Symbol DescriptionC %LABEL Specifies that the numeric literal that followsB is a program label (for languages like FORTRAN> that have numeric program labels). You canB qualify the label with a path-name prefix that4 specifies the containing module.C %LINE Specifies that the numeric literal that follows=  is a line number in your program. You canC qualify the line number with a path-name prefix9 that specifies the containing module.? Backslash (\) When used within a path name, delimits eachB element of the path name. In this context, theC backslash cannot be the leftmost element of the' complete path name.B When used as the prefix to a symbol, specifiesD  that the symbol is to be interpreted as a globalB symbol. In this context, the backslash must beA the leftmost element of the symbol's complete path name.B At sign (@) Unary operators. In an address expression, theA Period (.) at sign (@) and period (.) each function as? a "contents-of" operator. The "contents-of"D operator causes its operand to be interpreted as C a memory address and thus requests the contents; of (or value residing at) that address.; Bit field Unary operator. You can apply bit fieldA selection to an address-expression. To select@ a bit field, you supply a bit offset (p), aB bit length (s), and a sign extension bit (e),& which is optional.B Plus sign (+) Unary or binary operator. As a unary operator,A indicates the unchanged value of its operand.D As a binary operator, adds the preceding operand4 and succeeding operand together.B Minus sign (-) Unary or binary operator. As a unary operator,> indicates the negation of the value of its@ operand. As a binary operator, subtracts theB succeeding operand from the preceding operand.= Multiplication Binary operator. Multiplies the preceding6 sign (*) operand by the succeeding operand.B Division sign Binary operator. Divides the preceding operand. (/) by the succeeding operand.> The examples in the additional topics illustrate the use of9 built-in symbols and operators in address expressions. 4 %LINE_and_%LABEL_OperatorsC The following command sets a tracepoint at line 26 of the module- in which execution is currently suspended: DBG> SET TRACE %LINE 26A The next command displays the source line associated with line 47: DBG> EXAMINE/SOURCE %LINE 47 module MAIN2 47: procedure SWAP(X,Y: in out INTEGER) is DBG>A The next command sets a breakpoint at label 10 of module MOD4: DBG> SET BREAK MOD4\%LABEL 10 4 Path-Name_OperatorsA The following command displays the value of the variable COUNTB that is declared in routine ROUT2 of module MOD4. The backslash= (\) path-name delimiter separates the path-name elements: DBG> EXAMINE MOD4\ROUT2\COUNT MOD4\ROUT2\COUNT: 12 DBG>C The following command sets a breakpoint on line 26 of the module QUEUMAN:" DBG> SET BREAK QUEUMAN\%LINE 26C The following command displays the value of the global symbol X: DBG> EXAMINE \X 4 Arithmetic_Operators? The order in which the debugger evaluates the elements of anA address expression is similar to that used by most programming< languages. The order is determined by the following threeB factors, listed in decreasing order of precedence (first listed have higher precedence):@ 1. The use of delimiters (usually parentheses or brackets) to. group operands with particular operators: 2. The assignment of relative priority to each operator) 3. Left-to-right priority of operators; The debugger operators are listed in decreasing order of precedence as follows:, 1. Unary operators ((.), (@), (+), (-))7 2. Multiplication and division operators ((*), (/))4 3. Addition and subtraction operators ((+), (-))= For example, when evaluating the following expression, theD debugger first adds the operands within parentheses, then divides5 the result by 4, then subtracts the result from 5. 5--(T+5)/4C The following command displays the value contained in the memory location X + 4 bytes: DBG> EXAMINE X + 4 4 Contents-of_Operator; The following examples illustrate use of the contents-of@ operator. In the next example, the instruction at the currentC PC value is obtained (the instruction whose address is contained, in the PC and which is about to execute): DBG> EXAMINE .%PC MOD\%LINE 5: PUSHL S^#8 DBG>A In the next example, the source line at the PC value one levelA down the call stack is obtained (at the call to routine SWAP): DBG> EXAMINE/SOURCE .1\%PC module MAIN! MAIN\%LINE 134: SWAP(X,Y); DBG>B  For the next example, assume that the value of pointer variableA PTR is 7FF00000 hexadecimal, the address of an entity that youC want to examine. Assume further that the value of this entity isC 3FF00000 hexadecimal. The following command shows how to examine the entity: DBG> EXAMINE/LONG .PTR 7FF00000: 3FF00000 DBG>< In the next example, the contents-of operator (at sign orA period) is used with the current location operator (period) toD examine a linked list of three quadword-integer pointer variablesC (identified as L1, L2, and L3 in the illustration that follows).D P is a pointer to the start of the list. The low longword of eachB pointer variable contains the address of the next variable; theC high longword of each variable contains its integer value (8, 6, and 12, respectively). +------+3 P: | 9B40 |--+ L1 L2 L36 +------+ | +------+ +------+ +------+6 +- ->| 9BDA |--->| 9BF4 |--->| 0000 |6 |------| |------| |------|6 | 8 | | 6 | | 12 |6 +------+ +------+ +------+%DBG> SET TYPE QUADWORD; SET RADIX HEX>DBG> EXAMINE .P ! Examine the entity whose address1 ! is contained in P.>00009BC2: 00000008 00009BDA ! High word has value 8, low wordA ! has address of next entity (9BDA).>DBG> EXAMINE @. ! Examine the entity whose addressB ! is contained in the current entity.>00009BDA: 00000006 00009BF4 ! High word has value 6, low wordA ! has address of next entity (9BF4).>DBG> EXAMINE .. ! Examine the entity whose addressB ! is contained in the current entity.F00009BF4: 0000000C 00000000 ! High word has value 12 (dec.), low word; ! has address 0 (end !of list). 4 Bit-Field_OperatorA The following example shows how to use the bit-field operator.A For example, to examine the address expression X_NAME startingD at bit 3 with a length of 4 bits and no sign extension, you would enter the following command: DBG> EXAMINE X_NAME <3,4,0> 2 Built_in_Symbols? The debugger built-in symbols provide options for specifying@ program entities and values in debugger commands, as follows: Function Symbols"A Specify %Rn, %R31, %AP, %FP, %SP, %PC, %PSL, %Vn, %VCR,' Alpha %VLR, %VMR, %Fn, %F31 and VAX 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, %CURVAL9 %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_B processes, NUM, %EXC_SEVERITY, %PROCESS_NAME, %PROCESS_PID,D tasks, or %PROCESS_NUMBER, %NEXT_PROCESS, %PREVIOUS_PROCESS,? information %VISIBLE_PROCESS, %ACTIVE_TASK, %CALLER_TASK,2 about %NEXT_TASK, %TASK. %VISIBLE_TASK excep$tionsC Specify %PAGE, %WIDTH, %DECWINDOWS, %CURDISP, %CURSCROLL,A information %NEXTDISP, %NEXTINST, %NEXTOUTPUT, %NEXTSCROLL,D about the %NEXTSOURCE, %SOURCE_SCOPE, %INST_SCOPE, %CURRENT_B interface SCOPE_ENTRY, %NEXT_SCOPE_ENTRY, %PREVIOUS_SCOPE_ ENTRY 3 %Rn> On VAX systems, specifies the VAX general purpose registersB %R0 through %R11. On Alpha systems, specifies the Alpha integer registers %R0 through %R28. Example:% DBG> DEPOSIT %R1 = 23 3 %AP> On VAX systems, specifies the VAX argument pointer register (%R12). 3 %FPC On VAX systems, specifies the VAX frame pointer register (%R13).B On Alpha systems, specifies the Alpha stack frame base register (%R29). 3 %SPC On VAX systems, specifies the VAX stack pointer register (%R14).? On Alpha systems, specifies the Alpha stack pointer register (%R30). 3 %PC> Specifies the VAX or Alpha program counter re&gister. The PCA contains the address of the next instruction to be executed by the processor. VAX Examples:3 DBG> EXAMINE %PC ! Display the value in the PC> MOD3\%PC: 1554 ! address of next instruction to executeB DBG> EXAMINE %PC ! Display the value at the address in the PC& MOD3\%LINE 12: MOVL B^12(R11),R13 ! next instruction to execute 3 %PSL? On VAX systems, specifies the VAX processor status longword. 3 %VnA ' On VAX systems, specifies the VAX vector registers %V0 through %V15. 3 %VCRB On VAX systems, specifies the VAX vector count register (%VCR).A The VCR specifies the length of the offset vector generated by the IOTA instruction. 3 %VLRC On VAX systems, specifies the VAX vector length register (%VLR).B The VLR limits the highest element of a vector register that is% processed by a vector instruction. 3 %VMRA On VAX systems, specifies the VAX vecto(r mask register (%VMR).9 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. 3 %R31A On Alpha systems, specifies the ReadAsZero/Sink register. This3 register is permanently assigned the value zero. 3 %PSC On Alpha systems, specifies the Alpha processor status register. 3 %FnA On Alpha systems, specifies the Alpha floating-point registers %F0 through %)F30. 3 %F31A On Alpha systems, specifies the ReadAsZero/Sink floating-pointB register. This register is permanently assigned the value zero. 3 %LANGUAGE> Specifies the current language. The current language is the> language last established with the SET LANGUAGE command. BYD 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> EV*ALUATE %LANGUAGE 'FORTRAN' DBG> SET LANGUAGE ADA DBG> EVALUATE %LANGUAGE "ADA" 3 %NAMED 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 3 %PARCNTC Specifies the number of actual parameters to the current co+mmand? procedure. Use %PARCNT in command procedures that can take aA variable number of actual parameters. You can use %PARCNT onlyA inside command procedures; it is not defined when commands are entered from the terminal.B For example, suppose the command procedure ABC is executed withA 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 %PARCNT8 , FOR I = 1 TO %PARCNT DO (DECLARE X:VALUE; EVALUATE X) 3 %BIN= Specifies that a following numeric literal (or all numericC 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 3 %DEC= Specifies that a following numeric literal (or all numericC literals in a following parenthesized expression) be interpreted in decimal radix. Exa-mples: DBG> EVALUATE/HEX %DEC 10 0A# DBG> EVALUATE/HEX %DEC (10 + 10) 14 3 %HEX= Specifies that a following numeric literal (or all numericC 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 3 %OCT= Specifies that a following numeric literal (or all numericC literals in a following parenthesized expression) b.e interpreted in octal radix. Examples: DBG> EVALUATE/DEC %OCT 10 8# DBG> EVALUATE/DEC %OCT (10 + 10) 16 3 %CURLOC= Specifies the current logical entity (that is, the program6 location last referenced by an EXAMINE, DEPOSIT, orC 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 3 %NEXTLOCB Specifies the logical successor of the current entity (that is,@ the program location that logically follows the location lastC referenced by an EXAMINE, DEPOSIT, or EVALUATE/ADDRESS command).C 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): 113 DBG> EXAMINE ! Equivalent to E0XAMINE %NEXTLOC SIEVE\PRIMES(6): 13 3 %PREVLOCD Specifies the logical predecessor of the current entity (that is,A the program location that logically precedes the location lastC referenced by an EXAMINE, DEPOSIT, or EVALUATE/ADDRESS command).C 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): 113 DBG> EXAMINE ^ ! Equivalent to EXAMINE1 %PREVLOC SIEVE\PRIMES(4): 7 3 %CURVAL? Specifies the value last displayed by an EVALUATE or EXAMINEC command, or deposited by a DEPOSIT command. You can also use theC 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 3 %LABELC %LABEL n is the debugger syntax for referring to label 2n in yourB program. This is intended for languages like FORTRAN which have@ numeric program labels. You can qualify the label with a path) name specifying the containing module. Example:& DBG> SET BREAK MODULENAME\%LABEL 10? The old syntax of %LABEL MODULENAME\n is no longer accepted. 3 %LINE< %LINE n is the debugger syntax for referring to line n inA your program. You can qualify the line number with a path name$ specifying the containing module. E3xample:% DBG> SET BREAK MODULENAME\%LINE 10> The old syntax of %LINE MODULENAME\n is no longer accepted. 3 %PAGEC Specifies the current height of the screen, in lines, as used by the debbuger.B 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) 3 %WIDTHD Specifies the current width of the 4screen, in columns, as used by the debugger.B 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) 3 %DECWINDOWS@ Enables you to determine whether you are using the debugger's@ command interface or Compaq DECwindows Motif for OpenVMS user? interface. With the Compaq DECwindows Motif for OpenVMS userD inter5face, the value of %DECWINDOWS is 1 (TRUE). With the command2 interface, the value is 0 (FALSE). For example: DBG> EVALUATE %DECWINDOWS 0C The following example shows how to use %DECWINDOWS in a debuggerC 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 A6T (AT H1)) 3 %ADDR? (Default) Used with the CALL command to specify the argumentB passing mechanism. The %ADDR symbol specifies that the argument. is passed by address. See the CALL command. 3 %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. 3 %REF= Used with the CALL command to specify the argument passingC mechanism. The %REF7 symbol specifies that the argument is passed& by reference. See the CALL command. 3 %VAL= Used with the CALL command to specify the argument passingC mechanism. The %VAL symbol specifies that the argument is passed" by value. See the CALL command. 3 %CURDISPC 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 %CURDI8SP 3 %CURSCROLLA Specifies the current (screen mode) scrolling display. This isD the default display for the SCROLL, MOVE, and EXPAND commands, asC well as for the associated keypad keys (KP2, KP4, KP6, and KP8). Example: DBG> EXPAND/DOWN:5 %CURSCROLL 3 %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@ circu9lar, this is the display at the bottom of the pasteboard (the most occluded display). Example: DBG> DISPLAY/POP %NEXTDISP 3 %NEXTINST; Specifies the next instruction display after the currentC instruction display in the screen-mode display list. The currentC instruction display is the display that receives the output from EXAMINE/INSTRUCTION commands. Example: DBG> DISPLAY/REMOVE %NEXTINST 3 %NEXTOUTPUT= Specifies the next output displ:ay after the current output= display in the screen-mode display list. An output displayC receives debugger output that is not already directed to another display. Example:$ DBG> EXTRACT %NEXTOUTPUT OUT4.TXT 3 %NEXTSCROLLD Specifies the next display after the current scrolling display in the screen-mode display list. Example:! DBG> SELECT/SCROLL %NEXTSCROLL 3 %NEXTSOURCE= Specifies the next source display after the current source> dis;play in the screen-mode display list. The current sourceA display is the display which receives the output from TYPE and EXAMINE/SOURCE commands. Example:! DBG> SELECT/SOURCE %NEXTSOURCE 3 %SOURCE_SCOPED Specifies the scope, relative to the call stack, for which sourceD code is displayed in a screen-mode source display. If source codeD is not available for display in that scope, the debugger displaysB source code for the next level down the call stack for whic<h 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) 3 %INST_SCOPE= Specifies the scope, relative to the call stack, for whichB decoded instructions are displayed in a screen-mode instruction display.: The %INST_SCOPE symbol is used in the definition of the3 predefined screen-mode instruction display INST:( = DBG> DISPLAY INST AT H1 INSTRUCTION -( _DBG> (EXAMINE/INST .%INST_SCOPE\%PC) 3 %CURRENT_SCOPE_ENTRYC Specifies the call frame that the debugger is currently using asD 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 isB suspended. Call frame 1 denotes the calling routine, and so on. 3 %NEXT_SCOPE_ENTRYC 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 isB suspended. Call frame 1 denotes the calling routine, and so on. 3 %PREVIOUS_S ?COPE_ENTRYA Specifies the next frame up the call stack from the call frame# denoted by %CURRENT_SCOPE_ENTRY.A 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 isB suspended. Call frame 1 denotes the calling routine, and so on. 3 %PROCESS_NAMEC When specifying a process name in a debugger command string, youA can optionally preced@e the name with the symbol %PROCESS_NAME. Example:" all> EXIT %PROCESS_NAME JONES_4 3 %PROCESS_PIDC When specifying a process identifier (PID) in a debugger commandA string, you must precede the PID with the symbol %PROCESS_PID. Example:% all> CONNECT %PROCESS_PID 258001B6 3 %PROCESS_NUMBERC When specifying a debugger-assigned process number in a debuggerB command string, you can precede the number with %PROCESS_NUMBER (or the abbreviation A%PROC). Example: all> SHOW PROCESS %PROC 3 3 %NEXT_PROCESSB Specifies the next process in the debugger's process list after the visible process. Example:! all> SET PROCESS %NEXT_PROCESS 3 %PREVIOUS_PROCESS@ Specifies the previous process in the debugger's process list before the visible process. Example:+ all> SHOW PROCESS/FULL %PREVIOUS_PROCESS 3 %VISIBLE_PROCESSB Specifies the visible process. This is the process whosBe stack,B register set, and images are the current context for looking upC symbols, register values, routine calls, breakpoints, and so on. Example:2 all> %VISIBLE_PROCESS,%NEXT_PROCESS > EXAMINE X 3 %ADAEXC_NAME; A special form of %EXC_NAME for Ada programs. In Ada, an? exception can be raised with syntax such as "raise XXX;". InA this case, the exception name in the operating system sense is@ just "EXCEPTION," which is what %E returns. The Ada exception, C name ("XXX") is returned by %ADAEXC_NAME. Example:" DBG> SET BREAK/EXCEPTION WHEN - _DBG> (%ADAEXC_NAME = "XXX") 3 %EXC_FACILITYC 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/EXCEPTION WHEN - _DBG> (%EXC_FAC = "SYSTEM") 3 %EXC_NAMEC Gives you the name of the current exception. This provides a way" of qualifying eDxception breaks. Example: DBG> EVALUATE %EXC_NAME "FLTDIV_F"9 DBG> SET BREAK/EXCEPTION WHEN (%EXC_NAME = "FLTDIV_F") 3 %EXC_NUMA Gives you the current exception number. This provides a way of qualifying exception breaks. Example: DBG> EVALUATE %EXC_NUM 12 DBG> EVALUATE/COND %EXC_NUM0 %SYSTEM-F-ACCVIO, access violation at PC !XL, virtual address !XL0 DBG> SET BREAK/EXCEPTION WHEN (%EXC_NUM = 12) 3 %EXC_SEVERITY= GEives you the severity code of the current exception. This1 provides a way of qualifying exception breaks. Example: DBG> EVALUATE %EXC_SEVERITY "F"1 DBG> SET BREAK/EXCEPTION WHEN (%EXC_SEV = "F") 3 %ACTIVE_TASK> (Applies only to tasking programs.) Gives you the currently? active task (the one that was running when the debugger last2 took control). See the SET TASK/ACTIVE command. Example: DBG> EVALUATE %ACTIVE_TASK %TASK 2 3 %CALLER F_TASKC (Applies only to Ada tasking programs.) Gives you the task whichC is the entry caller of the active task during a task rendezvous.? If the active task (%ACTIVE_TASK) is not currently executingB 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 acceptB statement. The breakpoint is triggered only when %TASK 3 is the0 task making the entry call of the renGdezvous. DBG> TYPE 51:53 module SAMPLE' 51: accept RENDEZVOUS do; 52: PUT_LINE("Beginning the rendezvous");" 53: end RENDEZVOUS;8 DBG> SET BREAK %LINE 52 WHEN (%CALLER_TASK = %TASK 3) 3 %NEXT_TASKD (Applies only to tasking programs.) Gives you the next task afterD the one currently visible (%VISIBLE_TASK). "Next" in this contextB is just an internal ordering that cycles through all the tasks.A This lets you set up commHand procedures that cycle through all tasks. Example:$ DBG> WHILE %NEXT NEQ %ACTIVE DO -% _DBG> (SET TASK %NEXT; SHOW CALLS) 3 %TASK& (Applies only to tasking programs.)B %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 SHOW1 TASK/ALL command or by examining Itask objects. Example: DBG> EXAMINE T1 T1: %TASK 2 DBG> SET TASK %TASK 2 3 %VISIBLE_TASKB (Applies only to tasking programs.) Gives you the task that theC debugger is using to do symbol lookups. This is the default taskD assumed by debugging commands when you do not (or cannot) specifyC 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 SJET TASK command. Example: DBG> SET TASK %TASK 2 DBG> EVALUATE %VISIBLE %TASK 2 2 Client-Server_InterfaceC The OpenVMS Debugger has an optional client/server configurationB that allows you to access the debugger and its functions from a PC or a workstation.> The debugger client/server retains the functionality of the: OpenVMS kept debugger, but splits the debugger into twoC components, the debug server and the debug client. The interface= of the KCompaq DECwindows Motif for OpenVMS debug client is= similar to the Motif interface of the standalone debugger.B The debug server runs on an OpenVMS system, similar to the keptA debugger without the user interface. The debug client containsA the user interface, and runs on an OpenVMS system using Compaq= DECwindows Motif for OpenVMS, or on a PC running Microsoft& Windows 95 or Microsoft Windows NT.B The following table shows the systems on which the debug client and tLhe debug server run: Debug Debug Client Server System# X X OpenVMS VAX% X X OpenVMS Alpha2 X Microsoft Windows 95 Intel2 X Microsoft Windows 98 Intel2 X Microsoft Windows NT Alpha2 X Microsoft Windows NT Intel@ The OpenVMS client-server configuration allows the following:? o Remote access to OpenVMS Debug Servers from other OpenVMSB M systems or from PCs running Windows 95 or Windows NT Version 3.51 or laterD o Client access to multiple servers, each running on the same or different OpenVMS nodesC o Multiple clients on different nodes to simultaneously connect7 to the same server for teaching or team debuggingA o Debugging of multi-tier client/server applications that are6 distributed among several mixed-platform systems 3 Required_SoftwareD The Compaq DECwindows Motif f Nor OpenVMS debug client requires the following system software:1 OpenVMS Version 7.0 or later (VAX or Alpha)> Compaq DECwindows Motif for OpenVMS Version 1.2 or laterD The debug server requires OpenVMS Version 7.0 or later running on a VAX or Alpha node.A The OpenVMS debugger client/server configuration also requiresB that the following be installed on the OpenVMS node running the? server and any nodes running the Compaq DECwindows Motif for OpenVMS clienOt: o A TCP/IP stack o DCE RPC& NOTEB If you are running TCP/IP Services for OpenVMS (UCX) VersionA 4.1, you must have ECO2 installed. You can also run a later version of UCX.B The client and server communicate using DCE RPC over one of the following transports: TCP/IP UDP DECnet 3 Starting_the_Debug_ServerB You can start the debug server after logging in directly to theC OpenVMS sysPtem. You can also log in remotely with a product suchA as eXcursion, or a terminal emulator such as Telnet. Note thatA you can run Telnet directly from the Microsoft Windows client.> To start the server on an OpenVMS node, enter the following command: $ DEBUG/SERVER? The server displays its network binding strings, which allowD Compaq DECwindows Motif for OpenVMS and Microsoft Windows clients6 to specify this server for connection. For example: $ DEBUG/SERVE QR5 %DEBUG-I-SPEAK: TCP/IP: YES, DECnet: YES, UDP: YESC %DEBUG-I-WATCH: Network Binding: ncacn_ip_tcp:16.32.16.138[1034]I %DEBUG-I-WATCH: Network Binding: ncacn_dnet_nsp:19.10[RPC224002690001]C %DEBUG-I-WATCH: Network Binding: ncadg_ip_udp:16.32.16.138[1045]1 %DEBUG-I-AWAIT: Ready for client connection...> To connect to the server, you must know the nodename of theC node running the server, and the port number. The port number isB displayed in the square brackets of tRhe network binding string.@ The following table matches the network binding string prefix) with its associated network transport: Network+ Transport NetworK Binding String Prefix TCP/IP ncacn_ip_tcp DECnet ncacn_dnet_nsp: UDP ncadg_ip_udp& NOTEB You must hold the DBG$ENABLE_SERVER identifier in the rights@ database to be able to run the debug server. Exercise careB when using the debug server. Onc Se a debug server is running,= anyone on the network has the ability to connect to the debug server.? Before granting the DBG$ENABLE_SERVER identifier, the system> manager must create it by entering the command DEBUG/SERVER@ from an account with write access to the rights database. The@ system manager needs to do this only once. The system managerD can then run the Authorize utility to grant the DBG$ENABLE_SERVER; identifier to the user's account in the rights databaTse. "3 Starting_the_Motif_Debug_ClientB Once the debug server is running, start the Motif debug client.) To do so, enter the following command: $ DEBUG/CLIENT6 The debugger displays the Server Connection dialog.- From the Server Connection dialog, you can% o Select a session for connection) o Select a network transport protocol5 o Specify the number of secondary clients allowed> o Connect to a selected server to begin and activate a new/U session or reactivate an existing session o Disconnect from a session( o Test whether a server is available o Stop the server: o Cancel a connection operation and dismiss the dialog& NOTEA Messages and program output appear by default in the window= in which you start the server. You can redirect program+ output to another window as required. (3 Primary_Clients_and_Secondary_ClientsC The primary cli Vent is the first client to connect to the server.C A secondary client is an additional client that has connected toB the same server. The primary client controls whether or not anyA secondary clients can connect to the server through the ServerC Options dialog. Click Options on the Server Connection dialog to% display the Server Options dialog. 3 Establishing_a_Server_Session@ A session is the connection between a particular client and aB particular server. Each sessi Won is identified within the clientB by the network binding string the client used to connect to the server.> When you start the client, the debugger displays the Server@ Connection dialog, to let you specify the server, the networkC transport protocol, and the number of secondary clients allowed.A In the Server Connection dialog the Connection [local]: dialogB bar contains the default network binding string. This string isA based on the last string you entered, or the noXde on which theB client is running. There is not necessarily a server associated# with the default binding string.@ To specify the server, you can accept the default, or you canC enter the node name of the OpenVMS node running the debug server$ and the port number. For example: NODNAM[1234]> To specify the network transport protocol and the number of: secondary clients allowed, perform the following steps:9 1. Click Options to display the Server Options dialog.YC 2. In the Server Options dialog, click on the network transport: TCP/IP, DECnet, or UDP.A 3. In the Server Options dialog, enter the number of secondary# clients (0-30) to be allowed.4 4. Click OK to dismiss the Server Options dialog.5 Click Connect to connect the client to the server. 3 Switching_Between_Sessions@ Each time you connect to a server and initiate a session, the= session is listed in the Active Sessions dialog bar in theB Server ZConnection dialog. You can switch back and forth between@ sessions. Each time you switch to a new session, the debuggerB updates the contents of any open debugger displays with the new context.A To switch to a different session, perform the following steps: 1. Open the File menu. 2. Click Server Connection.A 3. Click the Active Sessions dialog bar to display the list of active sessions.D 4. Double click the required session in the Active Sessions list.D [ This selects the session as the current session, dismisses theA Server Connection dialog, and updates the debugger displays with the current context.> Note that you cannot change the number of secondary clientsC allowed on a session while that session is active. To change theB number of clients allowed on a session, you must be the primary+ client, and perform the following steps: 1. Open the File menu.8 2. Specify the network binding string of the sess\ion. 3. Click Disconnect. 4. Click Options.C 5. In the Server Options dialog, click on the network transport: TCP/IP, DECnet, or UDP.B 6. In the Server Options dialog, select the number of secondary# clients (0-31) to be allowed.4 7. Click OK to dismiss the Server Options dialog.5 8. In the Server Connection dialog, click Connect. "3 Closing_a_Client/Server_Session@ Click on Exit Debug? from the File menu to invoke the Confirm Exit dialog].D Once you have invoked the Confirm Exit dialog, perform one of the following:A o To terminate both the client and the server (default) click OK.C o To dismiss the Confirm Exit dialog without taking any action, click Cancel.? o To terminate only the debug client, perform the following steps: o Click Exit Server. o Click OK.? o To terminate only the debug server, perform the following steps: o Click Exi^t Client. o Click OK.C If you do not terminate the debug server, you can connect to the@ server from another debug client. If you do not terminate theC client, you can connect to another server for which you know the network binding string. 2 Command_FormatC You can enter debugger commands interactively at the keyboard orB store them within a command procedure to be executed later with% the execute procedure (@) command. 3 General_Rules? A com_mand string is the complete specification of a debugger@ command. Although you can continue a command on more than oneD line, the term command string is used to define an entire command" that is passed to the debugger.> A debugger command string consists of a verb and, possibly, parameters and qualifiers.? The verb specifies the command to be executed. Some debuggerC command strings might consist of only a verb or a verb pair. For example: DBG> GO DBG> SHOW ` IMAGEC A parameter specifies what the verb acts on (for example, a file? specification). A qualifier describes or modifies the actionD taken by the verb. Some command strings might include one or moreA parameters or qualifiers. In the following examples, COUNT, I,A J, and K, OUT2, and PROG4.COM are parameters (@ is the execute: procedure command); /SCROLL and /OUTPUT are qualifiers. DBG> SET WATCH COUNT DBG> EXAMINE I,J,K! DBG> SELECT/SCROLL/OUTPUT OUT2 DBG a> @PROG4.COMC Some commands accept optional WHEN or DO clauses. DO clauses are0 also used in some screen display definitions.; A WHEN clause consists of the keyword WHEN followed by a@ conditional expression (within parentheses) that evaluates to> true or false in the current language. A DO clause consists< of the keyword DO followed by one or more command stringsA (within parentheses) that are to be executed in the order that> they are listed. You must separate multiple b command stringsA with semicolons (;). These points are illustrated in the next example.B The following command string sets a breakpoint on routine SWAP.? The breakpoint is triggered whenever the value of J equals 4C during execution. When the breakpoint is triggered, the debugger? executes the two commands SHOW CALLS and EXAMINE I,K, in the order indicated.@ DBG> SET BREAK SWAP WHEN (J = 4) DO (SHOW CALLS; EXAMINE I,K)@ The debugger checks the syntax of the c commands in a DO clauseB when it executes the DO clause. You can nest commands within DO clauses. 3 Interactive_Input_RulesB When entering a debugger command interactively at the keyboard,B you can abbreviate a keyword (verb, qualifier, parameter) to asC few characters as are needed to make it unique within the set ofC all debugger keywords. However, some commonly used commands (forC example, EXAMINE, DEPOSIT, GO, STEP) can be abbreviated to theirA first characters. d Also, in some cases, the debugger interprets= nonunique abbreviations correctly on the basis of context.? Pressing the Return key terminates the current line, causing@ the debugger to process it. To continue a long command stringA on another line, type a hyphen (-) before pressing Return. As? a result, the debugger prompt is prefixed with an underscoreA character (_DBG>), indicating that the command string is still being accepted.< You can enter more than one comma end string on one line by2 separating command strings with semicolons (;).B To enter a comment (explanatory text recorded in a debugger logC file but otherwise ignored by the debugger), precede the comment? text with an exclamation point (!). If the comment wraps to; another line, start that line with an exclamation point.? The command line editing functions that are available at theC DCL prompt ($) are also available at the debugger prompt (DBG>),B including command r fecall with the up arrow and down arrow keys.B For example, pressing the left arrow and right arrow keys moves@ the cursor one character to the left and right, respectively;= pressing Ctrl/H or Ctrl/E moves the cursor to the start orA end of the line, respectively; pressing Ctrl/U deletes all the3 characters to the left of the cursor, and so on.B To interrupt a command that is being processed by the debugger,( press Ctrl/C. See the Ctrl/C command. 3 Command_Procedure_R gules? To maximize legibility, it is best not to abbreviate command= keywords in a command procedure. Do not abbreviate commandB keywords to less than four significant characters (not countingC the negation /NO . . . ), to avoid potential conflicts in future releases.D Start a debugger command line at the left margin. (Do not start aD command line with a dollar sign ($) as you do when writing a DCL command procedure.)B The beginning of a new line ends the previous c hommand line (theA end-of-file character also ends the previous command line). To? continue a command string on another line, type a hyphen (-) before starting the new line.< You can enter more than one command string on one line by2 separating command strings with semicolons (;).@ To enter a comment (explanatory text that does not affect the@ execution of the command procedure), precede the comment textB with an exclamation point (!). If the comment wraps to another3 i line, start that line with an exclamation point. 2 Command_Summary? The additional topics list all the debugger commands and anyA related DCL commands in functional groupings, along with brief descriptions. *3 Starting_and_Ending_a_Debugging_SessionD The commands listed below are used to start the debugger, bring aD program under debugger control, and interrupt and end a debugging> session. Except where otherwise specified, all commands are debugger commands. j. DEBUG/KEEP (DCL) Starts the debuggerB RUN filespec Brings a program under debugger control= RERUN Reruns the program currently under+ debugger controlB RUN filespec (DCL) If the specified image was linked using> LINK/DEBUG, starts the debugger and? also brings the image under debuggerB control. When you start the debugger in? k this manner, you cannot then use the> debugger RUN or RERUN commands. YouA can use the /[NO]DEBUG qualifiers withA the RUN command to control whether theB debugger is started when the program is$ executed.B EXIT, Ctrl/Z Ends a debugging session, executing all( exit handlers; QUIT Ends a ldebugging session without? executing any exit handlers declared) in the programA Ctrl/C Aborts program execution or a debugger; command without interrupting the, debugging session< (SET,SHOW) ABORT_KEY (Assigns, identifies) the defaultA Ctrl/C abort function to another Ctrl-@ key sequence, identifies the Ctrl-k meyC sequence currently defined for the abort# function? Ctrl/Y-DEBUG (DCL) Interrupts a program that is running> without debugger control and startsB the debugger; not supported in the Kept1 Debugger configurationC ATTACH Passes control of your terminal from the= current process to another process@ SPAWN n Creates a subprocess, enabling you to> execute DCL commands without ending= a debugging session or losing your, debugging context /3 Controlling_and_Monitoring_Program_ExecutionA The following commands are used to control and monitor program execution:= GO Starts or resumes program executionC STEP Executes the program up to the next line,? o instruction, or specified instruction= (SET,SHOW) STEP (Establishes, displays) the default9 qualifiers for the STEP command? (SET,SHOW,CANCEL) (Sets, displays, cancels) breakpoints BREAKA (ACTIVATE,DEACTIVATE) (Activates, deactivates) previously set% BREAK breakpoints? (SET,SHOW,CANCEL) (Sets, displays, cancels) tracepoints TRACEA (ACTIVATE,DEACTIVATE) (Activates, deactivates) previ pously set% TRACE tracepoints? (SET,SHOW,CANCEL) (Sets, displays, cancels) watchpoints WATCHA (ACTIVATE,DEACTIVATE) (Activates, deactivates) previously set% WATCH watchpointsA SHOW CALLS Identifies the currently active routine calls@ SHOW STACK Gives additional information about the8 currently active routine calls) CALL Calls a routine q "3 Examining_and_Manipulating_DataB The following commands are used to examine and manipulate data:A EXAMINE Displays the value of a variable or the8 contents of a program locationC SET MODE [NO]OPERANDS Controls whether the address and contentsC of the instruction operands are displayed9 when you examine an instruction@ DEPOSIT Changes the value of a variable or the8 r contents of a program location> DUMP Displays the contents of memory in aA manner similar to the DCL command DUMP.D EVALUATE Evaluates a language or address expression@ MONITOR (Applies only to the debugger's Compaq; DECwindows Motif for OpenVMS user@ interface). Displays the current valueA of a variable or language ex spression inC the Monitor View of the Compaq DECwindows; Motif for OpenVMS user interface. 3 Type_Selection_and_Radix@ The following commands are used to control type selection and radix:? (SET,SHOW,CANCEL) (Establishes, displays, restores) the: RADIX radix for data entry and display? (SET,SHOW,CANCEL) (Establishes, displays, restores) theA TYPE type for program locations t that are notC associated with a compiler-generated type; SET MODE [NO]G_FLOAT Controls whether double-precisionB floating-point constants are interpreted/ as G_FLOAT or D_FLOAT $3 Symbol_Searches_and_SymbolizationA The following commands are used to control symbol searches and symbolization:: SHOW SYMBOL Displays symbols in your program= (SET,SHOW,CANCEL) Sets a module by loa uding its symbol@ MODULE information into the debugger's symbolA table, identifies, cancels a set module@ (SET,SHOW,CANCEL) Sets a shareable image by loading data? IMAGE structures into the debugger's symbol@ table, identifies, cancels a set image= SET MODE [NO]DYNAMIC Controls whether or not modules and@ shareable images are set automatically@ vwhen the debugger interrupts execution? (SET,SHOW,CANCEL) (Establishes, displays, restores) the3 SCOPE scope for symbol searchesA SYMBOLIZE Converts a memory address to a symbolic, address expression@ SET MODE [NO]LINE Controls whether program locations are? displayed in terms of line numbers or4 routine-name + byte offset@ SET MODE [NO]SYMBOLIC Controls whether pro wgram locations are? displayed symbolically or in terms of+ numeric addresses 3 Displaying_Source_CodeC The following commands are used to control the display of source code:7 TYPE Displays lines of source codeB EXAMINE/SOURCE Displays the source code at the location= specified by the address expressionD SEARCH Searches the source code for the specified x string= (SET,SHOW) SEARCH (Establishes, displays) the default; qualifiers for the SEARCH command@ SET STEP [NO]SOURCE Enables/disables the display of source< code after a STEP command has beenB executed or at a breakpoint, tracepoint,' or watchpointD (SET,SHOW) MARGINS (Establishes, displays) the left and rightD margin setytings for displaying source code? (SET,SHOW,CANCEL) (Creates, displays, cancels) a source/ SOURCE directory search list 3 Screen_ModeD The following commands are used to control screen mode and screen displays:6 SET MODE [NO]SCREEN Enables/disables screen mode7 DISPLAY Creates or modifies a display+ SCROLL Scrolls a display8 EXPAND Expands or contracts a display; MOVE Move zs a display across the screen9 (SHOW,CANCEL) DISPLAY (Identifies, deletes) a displayA (SET,SHOW,CANCEL) (Creates, identifies, deletes) a window$ WINDOW definitionC SELECT Selects a display for a display attributeC SHOW SELECT Identifies the displays selected for each3 of the display attributesA SAVE Saves the current contents of a display. into another display {? EXTRACT Saves a display or the current screen+ state into a file> (SET,SHOW) TERMINAL (Establishes, displays) the terminalC screen height and width that the debuggerA uses when it formats displays and other output? SET MODE [NO]SCROLL Controls whether an output display isB updated line by line or once per command. Ctrl/W | Refreshes the screen DISPLAY/REFRESH 3 Editing_Source_CodeC The following commands are used to control source editing from a debugging session:= EDIT Starts an editor during a debugging! session> (SET,SHOW) EDITOR (Establishes, identifies) the editor5 started by the EDIT command 3 Defining_SymbolsC The following commands are used to define and delete symbols for" addresses, co }mmands, or values:B DEFINE Defines a symbol as an address, command," or value4 DELETE Deletes symbol definitions= (SET,SHOW) DEFINE (Establishes, displays) the default: qualifier for the DEFINE commandC SHOW SYMBOL/DEFINED Identifies symbols that have been defined1 with the DEFINE command 3 Keypad_ModeA The following commands are used to control keypad mode ~and key definitions:6 SET MODE [NO]KEYPAD Enables/disables keypad mode1 DEFINE/KEY Creates key definitions1 DELETE/KEY Deletes key definitions> SET KEY Establishes the key definition state2 SHOW KEY Displays key definitions 23 Command_Files__Log_Files__Initialization_Files_B The following commands are used with command procedures and log files:6 @ (Execute Procedure) Executes a command procedureB ( SET,SHOW) ATSIGN (Establishes, displays) the default fileA specification that the debugger uses to7 search for command proceduresD DECLARE Defines parameters to be passed to command$ proceduresB (SET,SHOW) LOG (Specifies, identifies) the debugger log fileA SET OUTPUT [NO]LOG Controls whether a debugging session is logged? SET OUTPUT Controls whether, in screen mode, theB [NO]SCREEN_LOG screen contents are logged as the screen$ is updated@ SET OUTPUT [NO]VERIFY Controls whether debugger commands are= displayed as a command procedure is" executed? SHOW OUTPUT Identifies the current output options? established by the SET OUTPUT command 3 Control_Structures? The follo wing commands are used to establish conditional and, looping structures for debugger commands:; FOR Executes a list of commands while1 incrementing a variableC IF Executes a list of commands conditionallyA REPEAT Executes a list of commands a specified) number of times= WHILE Executes a list of commands while a+ condition is true B EXITLOOP Exits an enclosing WHILE, REPEAT, or FOR loop 3 Multiprocess_ProgramsB The following commands are used to debug multiprocess programs.B Note that these commands are specific to multiprocess programs.: Many of the commands listed under other categories have= qualifiers or parameters that are specific to multiprocessB programs (for example, SET BREAK/ACTIVATING, EXIT process-spec, DISPLAY/PROCESS=).A CONNECT Brings a process under debugger controlA DISCONNECT Release a process from debugger control> DEFINE/PROCESS_SET Assigns a symbolic name to a list of0 process specificationsC SET MODE Controls whether execution is interruptedA [NO]INTERRUPT in other processes when it is paused in& some processA SET MODE [NO]WAIT Controls whether the debugger waits forC al l processes to stop executing before it5 prompts for another command= (SET,SHOW) PROCESS Modifies the multiprocess debuggingC environment, displays process information= WAIT Controls whether the debugger waitsA until all processes have stopped before8 prompting for another command. 3 Additional_Commands> The following commands are used for miscellaneous p urposes:C HELP Displays online help on debugger commands- and selected topics= (DISABLE,ENABLE,SHOW) (Disables, enables) the delivery ofA AST ASTs in the program, identifies whether9 delivery is enabled or disabledD (SET,SHOW) EVENT_ (Establishes, identifies) the current run-C FACILITY time facility for Ada, POSIX Threads, and% SCAN events? ( SET,SHOW) LANGUAGE (Establishes, identifies) the current" languageB SET MODE [NO]SEPARATE Controls whether the debugger, when usedA on a workstation running VWS, creates a@ separate window for debugger input and outputB SET OUTPUT Controls whether debugger output, exceptB [NO]TERMINAL for diagnostic messages, is displayed or$ suppressed 7 SET PROMPT Specifies the debugger promptD (SET,SHOW) TASK Modifies the tasking environment, displays* task informationD (SET,SHOW) VECTOR_ Enables or disables a debugger vector modeD MODE option, identifies the current vector mode; option (for vectorized programs).B SHOW EXIT_HANDLERS Identifies the exit handlers declared in% the program? SHOW MODE Identifies the current debugger modesB established by the SET MODE command (for: example, screen mode, step mode)? SHOW OUTPUT Identifies the current output options? established by the SET OUTPUT commandB SYNCHRONIZE VECTOR_ Forces immediate synchronization between? MODE the scalar and vector processors (for. vectorized programs) 2 Process_Rel ationships< The debugger consists of two parts: A main debugger image= (DEBUGSHR.EXE) that contains most of the debugger code and? a smaller kernel debugger image (DEBUG.EXE). This separation> reduces potential interference between the debugger and the> program being debugged and also makes it possible to have a( multiprocess debugging configuration.? When you start the debugger, a process is created to run the= main debugger. Regardless of the configuration (default orA multiprocess), the presence of a main debugger running in some2 process establishes a unique debugging session.< When you bring a program under debugger control, the mainA debugger spawns a subprocess to run the program along with the kernel debugger.@ In the multiprocess configuration, the program being debuggedA runs in several processes. Each process that is running one orB more images under debugger control is also running a local copy@ of the kernel debugger. T he main debugger, running in its own? process, communicates with the other processes through their kernel debuggers.D Although all processes of a multiprocess configuration must be in? the same job, they do not have to be related in a particular= process/subprocess hierarchy. Moreover, the program images@ running in separate processes do not have to communicate with each other. 2 Compaq_DECwindows_Interface> The debugger has a Compaq DECwindows Motif for OpenVMS user= interface for workstations. When using this interface, youD interact with the debugger by using a mouse and pointer to choose? items from menus, click on buttons, select names in windows,A and so on. The default DECwindows interface provides the basicD debugging and convenience features that you will need most of the time.A You can customize the Compaq DECwindows Motif for OpenVMS user= interface with many of the special features of the command= interface by mo difying the control-panel buttons and theirB associated commands or by adding new buttons. You can customize; other Compaq DECwindows Motif for OpenVMS user interface? features by modifying the debugger resource file (DECW$USER_ DEFAULTS:VMSDEBUG.DAT).> Occasionally, you may find you prefer to disable the Compaq? DECwindows Motif for OpenVMS user interface, in order to use> the somewhat faster command-line interface. If you redefine= the DBG$DECW$DISPLAY logical name, as follows, you can use@ the debugger command-line interface while retaining a windows" interface for your application: $ DEFINE DBG$DECW$DISPLAY " "A For complete information about the Compaq DECwindows Motif for; OpenVMS user interface, see the OpenVMS Debugger Manual. 3 InvocationD To invoke the debugger's Compaq DECwindows Motif for OpenVMS userD interface from the DCL command line, issue the following command: $ DEBUG/KEEP 3 Online_Help? To access online help within the Compaq DECwindows Motif forA OpenVMS user interface, choose one of the following items from/ the Help menu on the debugger's main window:) o On Context: context-sensitive help.$ o On Window: task-oriented help.& o On Help: how to use online help.4 o On Version: copyright and version information.) o On Commands: debugger command help.: o On Commands, Messages item: diagnostic message help. 3 DBG$DECW$DISPLAY_Logical_Na me@ Specifies the debugger interface (Compaq DECwindows Motif forC OpenVMS or command) or the display device (if you are displaying# the interface on a workstation).C By default, DBG$DECW$DISPLAY is either undefined or has the sameD definition as the application-wide logical name DECW$DISPLAY (see help on Logical_Names).@ The Compaq DECwindows Motif for OpenVMS user interface is theD default on workstations. To display the command interface insteadC of the Compaq DECwindows Motif for OpenVMS user interface, enter9 the following definition before starting the debugger: $ DEFINE DBG$DECW$DISPLAY " "A For complete information about the Compaq DECwindows Motif for? OpenVMS user interface, see the debugger's Compaq DECwindows# Motif for OpenVMS documentation. "2 Commands_Disabled_in_DECwindows? The following commands are disabled in the debugger's Compaq@ DECwindows Motif for OpenVMS user interface. Many of them are8 relevant only to the command interface's screen mode. ATTACH SELECT* CANCEL MODE (SET,SHOW) ABORT_KEY$ CANCEL WINDOW (SET,SHOW) KEY( DEFINE/KEY (SET,SHOW) MARGINS) DELETE/KEY SET MODE [NO]KEYPAD) DISPLAY SET MODE [NO]SCREEN) EXAMINE/SOURCE SET MODE [NO]SCROLL- EXPAND SET OUTPUT [NO]TERMINAL) EXTRACT (SET,SHOW) TERMINAL' HELP (SET,SHOW) WINDOW+ MOVE (SHOW,CANCEL) DISPLAY! SAVE SHOW SELECT SCROLL SPAWN? The debugger issues an error message if you try to enter any? of these disabled commands at the command prompt or when the@ debugger executes a command procedure containing any of these commands.B The MONITOR command works only with the Compaq DECwindows MotifC for OpenVMS user interface (because the command uses the Monitor View). 2 Keypad_Definitions_CI: This help topic describes the k eypad definitions in the: debugger's command interface. For information on keypad? definitions in the graphical user interface (GUI), type HELP Keypad_Definitions_GUI.@ On Digital VT-series terminals and MicroVAX workstations, youA can use the numeric keypad to enter debugger commands providedC you are in "keypad mode." Keypad mode is enabled by default, butC can be disabled and enabled by the SET MODE [NO]KEYPAD commands.B In keypad mode, keypad keys are bound to common ly used debugger@ commands such as STEP, GO and EXAMINE. Most keys are bound to> screen mode commands, to help you manipulate the predefined? screen displays efficiently. Some keys are "terminated": the< corresponding command is executed immediately. Others areA not: you can enter additional parameters to the command before@ terminating it with a carriage return or the Enter key. Also,@ some keys echo on the terminal while others do not, dependingB on the key. You can define your own keypad definitions with the DEFINE/KEY command. 3 DEFAULTB Keypad definitions when +--------+--------+--------+--------+B you do not use the GOLD | | Help | Set | |B or BLUE key. | GOLD | Keypad | Mode | BLUE |B | | Default| Screen | |B For more information +--------+--------+--------+--------+B see help on: | Src LH1| | | Disp |B  |Inst RH1| Scroll | Disp | next |B KEYPAD BLUE | Out S45| Up | next | S12345 |B KEYPAD GOLD +--------+--------+--------+--------+B KEYPAD STATE_KEYS | Exam | | | |B | Scroll | Source | Scroll | Go |B Ctrl/W does a | Left | .0\%PC | Right | |B DISPLAY/REFRESH +--------+--------+--------+--------+B in screen mode. | | | Select | |B | Exam | Scroll | Scroll | E |B | | Down | next | N |B +--------+--------+--------+ T |B | | | E |B | Step | Reset | R |B | | | |B +-----------------+--------+--------+ 3 G OLDB Keypad definitions when +--------+--------+--------+--------+B you press the GOLD key. | | Help |Set Mode| |B | GOLD | Keypad | No | BLUE |B Reset cancels the | | Gold | Screen | |B GOLD key. +--------+--------+--------+--------+B |Inst LH1| | Set | |B For more information, | Reg RH1| Scroll | Process| |B see help on:  | Out S45| Top | next | |B +--------+--------+--------+--------+B KEYPAD BLUE | Scroll | | Scroll | Select |B KEYPAD DEFAULT | Left | Show | Right | Source |B KEYPAD STATE_KEYS | 255 | Calls | 255 | next |B +--------+--------+--------+--------+B Ctrl/W does a | Exam | | Select | |B DISPLAY/REFRESH | prev | Scroll | Outpu t | E |B in screen mode. | | Bottom | next | N |B +--------+--------+--------+ T |B | | | E |B | Step/Into | Reset | R |B | | | |B +-----------------+--------+--------+ 3 BLUEB Keypad definitions when +--------+--------+--------+--------+B you press the BLUE key. | | Help | | |B | GOLD | Keypad | Disp | BLUE |B "..." means you must | | Blue | Gener | |B type more input after +--------+--------+--------+--------+B pressing the key. |2 SRC Qn| Scroll | 2 SRC | Disp |B | 2 INST | Up | at | Src H1 |B Reset cancels the | at RQn | ... | Q1,Q2 | Out S45|B BLUE key. +--------+--------+--------+--------+B | Scroll | Show | Scroll | Select |B For more information, | Left | Calls | Right | Inst |B see help on: | ... | 3 | ... | next |B +--------+--------+--------+--------+B KEYPAD DEFAULT |3 SRC Sn| Scroll | 3 SRC | |B KEYPAD GOLD | 3 INST | Down | at | E |B KEYPAD STATE_KEYS | at RSn | ... |S1,S2,S3| N |B +--------+--------+--------+ T |B Ctrl/W does a | | | E |B DISPLAY/REFRESH | Step/Over | Reset | R |B in screen mode. | | | |B +-----------------+--------+--------+ 3 MOVEB Keypad definitions in +--------+--------+--------+--------+B the MOVE state when you | | Help | Set | |B do not use GOLD or BLUE. | GOLD | Keypad | Mode | BLUE |B | | Move | Screen | |B For more information, +--------+--------+--------+--------+B see help on: | Src LH1| | | Disp |B |Inst RH1| Move | Disp | next |B KEYPAD BLUE | Out S45| Up | next | S12345 |B KEYPAD GOLD +--------+--------+--------+--------+B KEYPAD STATE_KEYS |  | Exam | | |B | Move | Source | Move | Go |B Ctrl/W does a | Left | .0\%PC | Right | |B DISPLAY/REFRESH +--------+--------+--------+--------+B in screen mode. | | | Select | |B | Exam | Move | Scroll | E |B | | Down | next | N |B +--------+--------+--------+ T | B | | | E |B | Step | Reset | R |B | | | |B +-----------------+--------+--------+ 3 EXPANDB Keypad definitions in +--------+--------+--------+--------+B the EXPAND state when | | Help | Set | |B you do not use the GOLD | GOLD | Keypad | Mode | BLUE |B or BLUE key. | | Expand | Screen | |B +--------+--------+--------+--------+B For more information, | Src LH1| | | Disp |B see help on: |Inst RH1| Expand | Disp | next |B | Out S45| Up | next | S12345 |B KEYPAD BLUE +--------+--------+--------+--------+B KEYPAD GOLD | | Exam | | |B KEYPAD STATE_KEYS | Expand | Source | Expand | Go |B | Left | .0\%PC | Right | |B Ctrl/W does a +--------+--------+--------+--------+B DISPLAY/REFRESH | | | Select | |B in screen mode. | Exam | Expand | Scroll | E |B | | Down | next | N |B +--------+--------+--------+ T |B | | | E |B | Step | Reset | R |B | | | |B +-----------------+--------+--------+ 3 CONTRACTB Keypad definitions in +--------+--------+--------+--------+B the CONTRACT state when | | Help | Set | |B you do not use the GOLD | GOLD | Keypad | Mode | BLUE |B or BLUE key. | |Contract| Screen | |B  +--------+--------+--------+--------+B For more information, | Src LH1| Expand | | Disp |B see help on: |Inst RH1| Up= | Disp | next |B | Out S45| -1 | next | S12345 |B KEYPAD BLUE +--------+--------+--------+--------+B KEYPAD GOLD | Expand | Exam | Expand | |B KEYPAD STATE_KEYS | Left= | Source | Right= | Go |B | -1 | .0 \%PC | -1 | |B Ctrl/W does a +--------+--------+--------+--------+B DISPLAY/REFRESH | | Expand | Select | |B in screen mode. | Exam | Down= | Scroll | E |B | | -1 | next | N |B +--------+--------+--------+ T |B | | | E |B | Step | Reset | R |B | | | |B +-----------------+--------+--------+ 3 MOVE_GOLDB Keypad definitions in +--------+--------+--------+--------+B the MOVE state when | | Help |Set Mode| |B you press the GOLD key. | GOLD | Keypad | No | BLUE |B | |MoveGold| Screen | |B For more information, +--------+--------+--------+--------+B see help on: |Inst LH1| Move | Set | |B | Reg RH1| Up= | Process| |B KEYPAD BLUE | Out S45| 999 | next | |B KEYPAD DEFAULT +--------+--------+--------+--------+B KEYPAD STATE_KEYS | Move | | Move | Select |B | Left= | Show | Right= | Source |B Ctrl/W does a | 999 | Calls | 999 | next |B DISPLAY/REFRESH +--------+----- ---+--------+--------+B in screen mode. | Exam | Move | Select | |B | prev | Down= | Output | E |B | | 999 | next | N |B +--------+--------+--------+ T |B | | | E |B | Step/Into | Reset | R |B | | | |B +-----------------+--------+--------+ 3 EXPAND_GOLDB Keypad definitions in +--------+--------+--------+--------+B the EXPAND state when | | Help |Set Mode| |B you press the GOLD key. | GOLD | Keypad | No | BLUE |B | |ExpaGold| Screen | |B For more information, +--------+--------+--------+--------+B see help on: |Inst LH1| Expand | Set | |B  | Reg RH1| Up= | Process| |B KEYPAD BLUE | Out S45| 999 | next | |B KEYPAD DEFAULT +--------+--------+--------+--------+B KEYPAD STATE_KEYS | Expand | | Expand | Select |B | Left= | Show | Right= | Source |B Ctrl/W does a | 999 | Calls | 999 | next |B DISPLAY/REFRESH +--------+--------+--------+--------+B in screen mode. | Exam | Expa nd | Select | |B | prev | Down= | Output | E |B | | 999 | next | N |B +--------+--------+--------+ T |B | | | E |B | Step/Into | Reset | R |B | | | |B +-----------------+--------+--------+  3 CONTRACT_GOLDB Keypad definitions in +--------+--------+--------+--------+B the CONTRACT state when | | Help |Set Mode| |B you press the GOLD key. | GOLD | Keypad | No | BLUE |B | |CntrGold| Screen | |B For more information, +--------+--------+--------+--------+B see help on: |Inst LH1| Expand | Set | |B | Reg RH1| Up= | Process| |B KEYPAD BLUE | Out S45| -999 | next | |B KEYPAD DEFAULT +--------+--------+--------+--------+B KEYPAD STATE_KEYS | Expand | | Expand | Select |B | Left= | Show | Right= | Source |B Ctrl/W does a | -999 | Calls | -999 | next |B DISPLAY/REFRESH +--------+--------+--------+--------+B in screen mode. | Exam | Expand | Select | |B | prev | D own= | Output | E |B | | -999 | next | N |B +--------+--------+--------+ T |B | | | E |B | Step/Into | Reset | R |B | | | |B +-----------------+--------+--------+ 3 MOVE_BLUEB Keypad definitions in +--------+--------+---- ----+--------+B the MOVE state when | | Help | | |B you press the BLUE key. | GOLD | Keypad | Disp | BLUE |B | |MoveBlue| Gener | |B For more information +--------+--------+--------+--------+B see help on: |2 SRC Qn| | 2 SRC | Disp |B | 2 INST | Move | at | Src H1 |B KEYPAD DEFAULT | at RQn | Up=5 | Q1,Q2 | Out S45|B KEYPAD GOLD +--------+--------+--------+--------+B KEYPAD STATE_KEYS | | Show | | Select |B | Move | Calls | Move | Inst |B Ctrl/W does a | Left=10| 3 |Right=10| next |B DISPLAY/REFRESH +--------+--------+--------+--------+B in screen mode. |3 SRC Sn| | 3 SRC | |B | 3 INST | Move | at | E |B | at RSn | Down =5 |S1,S2,S3| N |B +--------+--------+--------+ T |B | | | E |B | Step/Over | Reset | R |B | | | |B +-----------------+--------+--------+ 3 EXPAND_BLUEB Keypad definitions in +--------+--------+--------+--------+B the EXPAND state when | | Help | | |B you press the BLUE key. | GOLD | Keypad | Disp | BLUE |B | |ExpaBlue| Gener | |B For more information +--------+--------+--------+--------+B see help on: |2 SRC Qn| | 2 SRC | Disp |B | 2 INST | Expand | at | Src H1 |B KEYPAD DEFAULT | at RQn | Up=5 | Q1,Q2 | Out S45|B KEYPAD GOLD +--------+--------+--------+--------+B KEYPAD STATE_KEYS | | Show | | Select |B | Expand | Calls | Expand | Inst |B Ctrl/W does a | Left=10| 3 |Right=10| next |B DISPLAY/REFRESH +--------+--------+--------+--------+B in screen mode. |3 SRC Sn| | 3 SRC | |B | 3 INST | Expand | at | E |B | at RSn | Down=5 |S1,S2,S3| N |B +--------+----- ---+--------+ T |B | | | E |B | Step/Over | Reset | R |B | | | |B +-----------------+--------+--------+ 3 CONTRACT_BLUEB Keypad definitions in +--------+--------+--------+--------+B the CONTRACT state when | | Help | | |B you press the BLUE key. | GOLD | Keypad | Disp | BLUE |B | |CntrBlue| Gener | |B For more information, +--------+--------+--------+--------+B see help on: |2 SRC Qn| Expand | 2 SRC | Disp |B | 2 INST | Up= | at | Src H1 |B KEYPAD DEFAULT | at RQn | -5 | Q1,Q2 | Out S45|B KEYPAD GOLD +--------+--------+--------+--------+B KEYPAD STATE_KEYS | Expand | Show | Expand | Select |B  | Left= | Calls | Right= | Inst |B Ctrl/W does a | -10 | 3 | -10 | next |B DISPLAY/REFRESH +--------+--------+--------+--------+B in screen mode. |3 SRC Sn| Expand | 3 SRC | |B | 3 INST | Down= | at | E |B | at RSn | -5 |S1,S2,S3| N |B +--------+--------+--------+ T |B | | | E |B | Step/Over | Reset | R |B | | | |B +-----------------+--------+--------+ 3 State_Keys? You can use the four scrolling keys (KP8, KP2, KP4, and KP6)B to expand, contract, and move displays, depending on the keypadC state in effect. Thus, the keys do a SCROLL/UP, /DOWN, /LEFT, orA /RIGHT, or a corresponding MOVE. You can press the GOLD key toB make the operation to advance more than one line or column. The@ commands apply to the current scrolling display. Pressing KP3B selects the current scrolling display from the display circular list.B Four keys on the LK201 keyboard let you set the keypad state toC DEFAULT, MOVE, EXPAND, or CONTRACT. The keypad state changes theB definitions of KP8, KP2, KP4, and KP6. The meaning of all other keys remains unchanged.D If you do not have an LK201 keyboar d with the F17-F20 keys on it,C you can get the same effect by typing the corresponding command:? F17 F18 F19 F20C SET KEY/STATE=DEFAULT or +--------+--------+--------+--------+C SET KEY/STATE=MOVE | | | | |C SET KEY/STATE=EXPAND | DEFAULT| MOVE | EXPAND |CONTRACT|C SET KEY/STATE=CONTRACT | | | | |C +--------+--------+------- -+--------+C For example, in the MOVE state (key F18), pressing KP2 moves the@ default scrolling display down by one character position, andB pressing GOLD-KP2 moves the display down by a larger increment.@ The keypad remains in the MOVE state until you select another. state, such as the DEFAULT state (key F17). 3 SummaryB Summary of debugger +--------+--------+--------+--------+B keypad definitions. | | | | |B  | GOLD | Help | Screen | BLUE |B For more information, | | | Mode | |B see help on: +--------+--------+--------+--------+B | Select | | | Disp |B KEYPAD BLUE | Screen | Up | Disp | next |B KEYPAD DEFAULT | Layout | | next | at FS |B KEYPAD GOLD +--------+--------+--------+--------+B KEYPAD STATE_KEYS | | | | |B | Left | Where | Right | Go |B Ctrl/W does a | | am I? | | |B DISPLAY/REFRESH +--------+--------+--------+--------+B in screen mode. | | | | |B | Exam | Down | Select | E |B | | | next | N |B +--------+--------+--------+ T |B | | | E |B | Step | Reset | R |B | | | |B +-----------------+--------+--------+ 2 Keypad_Definitions_GUIB This section describes the keypad definitions in the debugger's: graphical user interface. For information on the keypad: definitions in the command interface, type HELP Keypad_ Definitions_CI.> On workstations running the debugger's GUI, you can use theD numeric keypad to enter predefined debugger commands, as follows:( Key Predefined Command KP0 Step/Line KP1 Examine KPcomma Go GOLD-KP0 Step/Into BLUE-KP0 Step/Over GOLD-KP1 Examine^ KP5 Show Calls" GOLD-KP5 Show Calls 3D To issue one of these commands, press the key indicated, fo llowed" by the Enter key on the keypad.> You can change the commands represented by each key, or map> commands to other keys on your keyboard, by customizing theB EnterCmdOnCmdLine entry in the debugger resource file. For moreC information, see the OpenVMS Debugger Manual. If you are mapping? to other keys, you also need to consult the key designationsA listed in the KeySym Encoding chapter of the X and Motif Quick Reference Guide.? Users of the debugger's command interface keypad definitions? should note that you do not need to be in keypad mode to use! keypad definitions in the GUI. 2 Language_SupportD On VAX processors, you can use the debugger with programs written% in the following Compaq languages:$ Ada BASIC BLISS C* C++ COBOL DIBOL Fortran) MACRO-32 Pascal PL-I RPG II SCAN> On Alpha processors, you can use the debugger with programs- written in the following Compaq languages:$ Ada BASIC BLISS C+ C++ COBOL Fortran MACRO-32 MACRO-64 Pascal PL/I 3 Overview? The debugger recognizes the syntax, data typing, and scoping= rules of each language. It also recognizes each language'sB operators and expression syntax. Therefore, when using debuggerC commands you can specify variables and other program entities asD you might in the source code of the program. You can also compute@ the value of a source-language expression using the syntax of that language.B This appendix describes debugging techniques that are common toC most of the supported languages. The help topics provide further) information specific to each language:1 o Supported operators in language expressions> o Supported constructs in language expressions and address expressions o Supported data types8 o Any other language-specific information, including. restrictions in debugger support, if anyA For more information about language-specific debugger support,C refer to the documentation furnished with a particular language.@ If your program is written in more than one language, you canC change the debugging context from one language to another during= a debugging session. Use the SET LANGUAGE command with the1 keyword corresponding to your language choice.D On VAX processors, you can specify one of the following keywords:$ ADA  BASIC BLISS C* C++ COBOL DIBOL FORTRAN& MACRO PASCAL PLI RPG SCAN UNKNOWN< On Alpha processors, you can specify one of the following keywords:( ADA AMACRO BASIC BLISS* C C++ COBOL FORTRAN* MACRO MACRO64 PASCAL UNKNOWN= When you are debugging a program written in an unsupported@ language, enter the SET LANGUAGE UNKNOWN command. To maximizeA the usability of the debugg er with unsupported languages, thisD setting causes the debugger to accept a large set of data formatsA and operators, including some that might be specific to only a? few supported languages. For information about the operatorsA and constructs that are recognized when the language is set to' UNKNOWN, type Help Language_UNKNOWN. 3 Ada= The following subtopics describe debugger support for Ada.A For information specific to Ada tasking programs, see also the debugger manual. 4 Ada_Names_and_SymbolsB The following subtopics describe debugger support for Ada names0 and symbols, including predefined attributes.D Note that parts of names may be language expressions-for example,B attributes such as 'FIRST or 'POS. This affects how you use the? EXAMINE, EVALUATE, and DEPOSIT commands with such names. ForB examples of enumeration types, type Help Specifying_Attributes_ with_Enumeration_Types. 5 Ada_Names Supported Ada names follow:# Kind of Name Debugger Support? Lexical Full support for Ada rules for the syntax of elements identifiers.A Function designators that are operator symbolsA (for example, + and *) rather than identifiersB must be prefixed with %NAME. Also, the operator> symbol must be enclosed in quotation marks.C Full support for Ada rules for numeric literals,D character literals, string literals, and reserved words.B The debugger accepts signed integer literals in7 the range -2147483648 to 2147483647.= Depending on context and architecture, theA debugger interprets floating-point types as F_C floating, D_floating, G_floating, H_floating, S_+ floating, or T_floating. Indexed Full support. com ponentsB Slices You can examine and evaluate an entire slice or3 an indexed component of a slice.D You can deposit only to an indexed component of a= slice. You cannot deposit an entire slice.D Selected Full support, including use of the keyword all in components .all.< Literals Full support, including the keyword null.. Boolean Full support (TRUE, FALSE). symbols> Aggregates Y ou can examine the entire record and arrayD objects with the EXAMINE command. You can depositD a value in a component of an array or record. YouB cannot use the DEPOSIT command with aggregates,= except to deposit character string values. 5 Predefined_Attributes< Supported Ada predefined attributes follow. Note that theB debugger SHOW SYMBOL/TYPE command provides the same informationA that is provided by the P 'FIRST, P'LAST, P'LENGTH, P'SIZE, and P'CONSTRAINED attributes. Attribute Debugger Support; P'CONSTRAINEDFor a prefix P that denotes a record object> with discriminants. The value of P'CONSTRAINED? reflects the current state of P (constrained or unconstrained).B P'FIRST For a prefix P that denotes an enumeration type orB a subtype of an enumeration type. Yields the lower bound of P.? P'FIRST For a prefix P that is appropriate for an arrayB type, or that denotes a constrained array subtype.@ Yields the lower bound of the first index range.? P'FIRST(N) For a prefix P that is appropriate for an arrayB type, or that denotes a constrained array subtype.> Yields the lower bound of the Nth index range.C P'LAST For a prefix P that denotes an enumeration type, orB a subtype of an enumeration type. Yields the upper bound of P.? P'LAST For a prefix P that is appropriate for an arrayB type, or that denotes a constrained array subtype.@ Yields the upper bound of the first index range.? P'LAST(N) For a prefix P that is appropriate for an arrayB type, or that denotes a constrained array subtype.> Yields the upper bound of the Nth index range.? P'LENGTH For a prefix P that is appropriate for an arrayB type, or that denotes a constrained array subtype.D Yields the number of values of the first index range( (zero for a null range).? P'LENGTH(N) For a prefix P that is appropriate for an arrayB type, or that denotes a constrained array subtype.B Yields the number of values of the Nth index range( (zero for a null range).D P'POS(X) For a prefix P that denotes an enumeration type or aC subtype of an enumeration type. Yields the position? number of the value X. The first position is 0.B P'PRED(X) For a prefix P that denotes an enumeration type orB a subtype of an enumeration type. Yields the valueC of type P which has a position number one less than that of X.A P'SIZE For a prefix P that denotes an object. Yields the< number of bits allocated to hold the object.B P'S UCC(X) For a prefix P that denotes an enumeration type orB a subtype of an enumeration type. Yields the valueC of type P which has a position number one more than that of X.B P'VAL(N) For a prefix P that denotes an enumeration type orB a subtype of an enumeration type. Yields the valueD of type P which has the position number N. The first position is 0. /6 Specifying_Attributes_with_Enum eration_Types' Consider the following declarations: type DAY isA (MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY); MY_DAY : DAY;9 The following examples show the use of attributes withB enumeration types. Note that you cannot use the EXAMINE commandC to determine the value of attributes, because attributes are notA variable names. You must use the EVALUATE command instead. ForB the same reason, attributes can appear only on the right of the$ := operator in a DEPOSIT command. DBG> EVALUATE DAY'FIRST MON# DBG> EVALUATE DAY'POS(WEDNESDAY) 2 DBG> EVALUATE DAY'VAL(4) FRI! DBG> DEPOSIT MY_DAY := TUESDAY! DBG> EVALUATE DAY'SUCC(MY_DAY) WED% DBG> DEPOSIT . := DAY'PRED(MY_DAY) DBG> EXAMINE . EXAMPLE.MY_DAY: MONDAY! DBG> EVALUATE DAY'PRED(MY_DAY)< %DEBUG-W-ILLENUMVAL, enumeration value out of legal range ,6 Resolving_Overloaded_Enumeration_Literals' Consider the following declarations: type MASK is (DEC,FIX,EXP); type CODE is (FIX,CLA,DEC); MY_MASK : MASK; MY_CODE : CODE;@ In the following example, the qualified expression CODE'(FIX)D resolves the overloaded enumeration literal FIX, which belongs to both type CODE and type MASK: DBG> DEPOSIT MY_CODE := FIX0 %DEBUG-W-NOUNIQUE, symbol 'FIX' is not unique DBG> SHOW SYMBOL/TYPE FIX data EXAMPLE.FIX8 enumeration type (CODE, 3 elements), size: 1 byte data EXAMPLE.FIX8 enumeration type (MASK, 3 elements), size: 1 byte% DBG> DEPOSIT MY_CODE := CODE'(FIX) DBG> EXAMINE MY_CODE EXAMPLE.MY_CODE: FIX 4 Operators_and_Expressions; The following sections describe debugger support for Ada& operators and language expressions. $5 Operators_in_Language_Expressions; Supported Ada operators in language expressions include: Kind Symbol Function( Prefix + Unary plus (identity) Infix + Addition! Infix * Multiplication Infix / Division Infix MOD Modulus Infix REM Remainder0 Infix ** Exponentiation (VAX specific)! Prefix ABS Absolute value4 Infix & Concatenation (only string types): Infix = Equality (only scalar and string types)< Infix /= Inequality (only scalar and string types)> Infix > Greater than (only scalar and string types)@ Infix >= Greater than or equal (only scalar and string  types); Infix < Less than (only scalar and string types)D Infix <= Less than or equal (only scalar and string types) Prefix NOT Logical NOT3 Infix AND Logical AND (not for bit arrays)2 Infix OR Logical OR (not for bit arrays)< Infix XOR Logical exclusive OR (not for bit arrays)5 The debugger does not support the following items:, o Operations on entire arrays or records8 o The short-circuit control forms: and then, or else& o The membership tests: in, not in o User-defined operators 5 Language_Expressions% Supported Ada expressions include: Kind of" Expression Debugger Support9 Type No support for any of the explicit type< conversions conversions specified in Ada. However, the9 debugger performs certain implicit type> conversions between numeric types during the, evaluation of expressi ons.= The debugger converts lower-precision types= to higher-precision types before evaluating: expressions involving types of different precision:C o If integer and floating-point types are mixed,D the integer type is converted to floating-point type.D o If integer and fixed-point types are mixed, theC integer type is c onverted to fixed-point type.B o If integer types of different sizes are mixedB (for example, byte-integer and word-integer),B the one with the smaller size is converted to% the larger size.> Subtypes Full support. Note that the debugger denotes@ subtypes and types that have range constraints& as "subrange" types.= Qualified Supported as required to resolve overloadedC expressions enumeration literals (literals that have the same@ identifier but belong to different enumerationA types). The debugger does not support qualified4 expressions for any other purpose.@ Allocators No support for any operations with allocators. Universal No support. expressions 4 Data_Types# Supported Ada data types follow:> Ada Data Type Operating System Data Type Name 3 INTEGER Longword Integer (L)/ SHORT_INTEGER Word Integer (W)/ SHORT_SHORT_INTEGER Byte Integer (B)5 SYSTEM.UNSIGNED_QUADWORD Quadword Unsigned (QU)5 SYSTEM.UNSIGNED_LONGWORD Longword Unsigned (LU)1 SYSTEM.UNSIGNED_WORD Word Unsigned (WU)1 SYSTEM.UNSIGNED_BYTE Byte Unsigned (BU)- FLOAT F_Floating (F)- SYSTEM.F_FLOAT F_Floating (F)- SYSTEM.D_FLOAT D_Float ing (D)C LONG_FLOAT D_Floating (D), if pragma LONG_FLOAT6 (D_FLOAT) is in effect.C G_Floating (G), if pragma LONG_FLOAT6 (G_FLOAT) is in effect.- SYSTEM.G_FLOAT G_Floating (G)- SYSTEM.H_FLOAT H_Floating (H) (VAX specific)- LONG_LONG_FLOAT H_Floating (H) (VAX specific). IEEE_SINGLE_FLOAT S_Floating (FS) (Alpha sp ecific). IEEE_DOUBLE_FLOAT T_Floating (FT) (Alpha specific)% Fixed (None)- STRING ASCII Text (T)5 BOOLEAN Aligned Bit String (V)8 BOOLEAN Unaligned Bit String (VU)C Enumeration For any enumeration type whose valueB fits into an unsigned byte or word:B Byte Unsigned (BU) or Word Unsigned@ (WU), respectively. Otherwise: NoB corresponding operating system data$ type.% Arrays (None)% Records (None)% Access (pointers) (None)% Tasks (None) 4 Compiling_and_LinkingA The Ada predefined units in the ADA$PREDEFINED program libraryA on your system have been compiled with the /NODEBUG qualifier.> Before using the debu gger to refer to names declared in theC predefined units, you must first copy the predefined unit source= files using the ACS EXTRACT SOURCE command. Then, you mustB compile the copies into the appropriate library with the /DEBUG? qualifier, and relink the program with the /DEBUG qualifier.D If you use the /NODEBUG qualifier with one of the Ada compilationC commands, only global symbol records are included in the modules@ for debugging. Global symbols in this case are names that theD program exports to modules in other languages by means of the Ada export pragmas: EXPORT_PROCEDURE EXPORT_VALUED_PROCEDURE EXPORT_FUNCTION EXPORT_OBJECT EXPORT_EXCEPTION PSECT_OBJECTD The /DEBUG qualifier on the ACS LINK command causes the linker toD include all debugging information in the closure of the specified unit in the executable image. 4 Source_DisplayA Source code may not be available for display for the following- reasons that are specific to Ada programs:B o Execution is paused within Ada initialization or elaboration2 code, for which no source code is available.D o The copied source file is not in the program library where the# unit was originally compiled.D o The external source file is not where it was when the unit was originally compiled.B o The source file has been modified since the executable imageD was generated, and the original copied source file or external# source file no longer exists.A The following paragraphs explain how to control the display of! source code with Ada programs.A If the compiler command's /COPY_SOURCE qualifier (the default)= was in effect when you compiled your program, the debugger? obtains the displayed Ada source code from the copied source= files located in the program library where the program was= originally compiled. If you compiled your program with the? /NOCO PY_SOURCE qualifier, the debugger obtains the displayedA Ada source code from the external source files associated with$ your program's compilation units.A The file specifications of the copied or external source filesC are embedded in the associated object files. For example, if you@ have used the ACS COPY UNIT command to copy units, or the DCLA command COPY or BACKUP to copy an entire library, the debugger@ still searches the original program library for copied sourceB files. If, after copying, the original units have been modifiedA or the original library has been deleted, the debugger may not@ find the original copied source files. Similarly, if you haveD moved the external source files to another disk or directory, the debugger may not find them.B In such cases, use the SET SOURCE command to locate the correctA files for source display. You can specify a search list of oneB or more program library or source code directories. For example @ (ADA$LIB is the logical name that the program library manager+ equates to the current program library):4 DBG> SET SOURCE ADA$LIB,DISK:[SMITH.SHARE.ADALIB]A The SET SOURCE command does not affect the search list for theC external source files that the debugger fetches when you use theD debugger EDIT command. To tell the EDIT command where to look for6 your source files, use the SET SOURCE/EDIT command. 4 EDIT_CommandB With Ada programs, by default the debugger EDIT command fetches< the external source file that was compiled to produce the? compilation unit in which execution is currently paused. YouC do not edit the copied source file, in the program library, that( the debugger uses for source display.D The file specifications of the source files you edit are embedded@ in the associated object files during compilation (unless youD specify /NODEBUG). If some source files have been relocated after/ compilation, the debugger may not find them.B In such cases, you can use the debugger SET SOURCE/EDIT command@ to specify a search list of one or more directories where the6 debugger should look for source files. For example:4 DBG> SET SOURCE/EDIT [],USER:[JONES.PROJ.SOURCES]B The SET SOURCE/EDIT command does not affect the search list forA copied source files that the debugger uses for source display.D The SHOW SOURCE/EDIT command displays the source-file search listD currently being used for the EDIT command. The CANCEL SOURCE/EDITC command cancels the source-file search list currently being used= for the EDIT command and restores the default search mode. 4 GO_and_STEP_CommandsA Note the following points about using the GO and STEP commands with Ada programs:B o When starting a debugging session, use the GO command rather? than the STEP command to avoid stepping through compiler-$ generated initialization code.C - Use the GO command to go di rectly to the preset breakpointB at the start of the main program, past the initialization& and package elaboration code.C - Use the GO command and breakpoints to suspend execution atA the start of the elaboration of library packages, before, execution reaches the main program.? For information on how to monitor the package elaboration6 phase, type Help Debugging_Ada_Library_Packages.@ o If a line contains more than one statement, a STEP commandB executes all the statements on that line as part of a single step.? o Ada task entry calls are not the same as subprogram callsC because task entry calls are queued and may not execute right@ away. If you use the STEP command to move execution into a@ task entry call, the results might not be what you expect. !4 Debugging_Ada_Library_PackagesA When an Ada main program (or a non-Ada main program that callsA Ada code) is executed, init ialization code is executed for theB Ada run-time library and elaboration code for all library units? that the program depends on. The elaboration code causes theA library units to be elaborated in appropriate order before the@ main program is executed. Library specifications, bodies, and> some of their subunits are also elaborated by this process.A The elaboration of library packages accomplishes the following operations:0 o Causes package declarations to take effect: o Initializes any variables whose declaration includes initialization codeA o Executes any sequence of statements that appear between the0 begin and end statements of package bodiesB When you bring an Ada program under debugger control, executionA is paused initially before the initialization code is executed< and before the elaboration of library units. For example: DBG> RUN FORMS Language: ADA, Module: FORMS Type GO to reach main program D BG>B At that point, before typing GO to get to the start of the mainA program, you can step through and examine parts of the library@ packages by setting breakpoints at the package specifications? or bodies you are interested in. You then use the GO command@ to get to the start of each package. To set a breakpoint on aA package body, specify the package unit name with the SET BREAKC command. To set a breakpoint on a package specification, specifyD the package unit name f ollowed by a trailing underscore character (_).A Even if you have set a breakpoint on a package body, the break= will not occur if the debugger module for that body is not= set. If the module is not set, the break will occur at theA package specification. This effect occurs because the debugger@ automatically sets modules for the specifications of packages? named in with clauses; it does not automatically set modulesB for the associated package bodies (see the Language _Support Ada subtopic Setting_Modules).B Also, to set a breakpoint on a subprogram declared in a package? specification, you must set the module for the package body.@ Note that the compiler generates unique names for subprograms? declared in library packages that are or could be overloadedA names. The debugger uses these unique names in its output, and? requires them in commands where the names would otherwise be@ ambiguous. For more information on resolving overload ed names@ and symbols, see the Language_Support Ada subtopic Resolving_ Overloaded_Names_and_Symbols. 4 Predefined_Breakpoints@ When you start the debugger with an Ada program (or a non-AdaD program that calls Ada code), two breakpoints that are associatedC with Ada tasking exception events are automatically established.B These breakpoints are established automatically during debugger; initialization when the Ada run-time library is present.B When you enter a SHOW BREAK command under these conditions, the' following breakpoints are displayed: DBG> SHOW BREAK< Predefined breakpoint on ADA event "EXCEPTION_TERMINATED" for any value< Predefined breakpoint on ADA event "DEPENDENTS_EXCEPTION" for any value DBG> 4 Monitoring_Exceptions; The debugger recognizes three kinds of exceptions in Ada programs:A o A user-defined exception-an exception declared with the Ada8 reserved word exception in an Ada compilation unit; o An Ada predefined exception, such as PROGRAM_ERROR or CONSTRAINT_ERROR0 o Any other (non-Ada) exception or conditionB The following subtopics explain how to monitor such exceptions. 5 Monitoring_Any_ExceptionB The SET BREAK/EXCEPTION command enables you to set a breakpointB on any exception or condition. This includes certain conditions@ that are signaled internally within the Ada run-time library.@ These conditions are an implementation mechanism; they do not@ represent program failures, and they cannot be handled by Ada? exception handlers. If these conditions appear while you areB debugging your program, you may want to consider specifying the/ kind of exceptions when setting breakpoints.@ The following example shows a tracepoint occurring for an AdaD CONSTRAINT_ERROR exception as the result of a SET TRACE/EXCEPTION command: DBG> SET TRACE/EXCEPTION DBG> GO . . .+ %ADA-F-CONSTRAINT_ERRO, CONSTRAINT_ERROR< -ADA-I-EXCRAIPRI, Exception raised prior to PC = 00000A7C trace on exception preceding1 ADA$RAISE\ADA$RAISE_CONDITION.%LINE 333+12 . . .C In the next example, the SHOW CALLS command displays a traceback= of the calls leading to the subprogram where the exception1 occurred or to which the exception was raised:+ DBG> SET BREAK/EXCEPTION DO (SHOW CALLS) DBG> GO . . .4 %SYSTEM-F-INTDIV, arithmetic trap, integer divi de by zero at PC=000008AF,, PSL=03C000A2 break on exception preceding$ SYSTEM_OPS.DIVIDE.%LINE 17+6 17: return X/Y;? module name routine name line rel PC abs PC@ *SYSTEM_OPS DIVIDE 17 00000015 000008AF@ *PROCESSOR PROCESSOR 19 000000AE 00000BAD *ADA$ELAB_PROCESSOR@ ADA$ELAB_PROCESSOR 00000009 00000809@ LIB$INITIALIZE 00000054 00000C36@ SHARE$ADARTL 00000000 000398BE *ADA$ELAB_PROCESSOR@ ADA$ELAB_PROCESSOR 0000001B 0000081B@ LIB$INITIALIZE 0000002F 00000C21> In this example, the condition SS$_INTDIV is raised at line= 17 of the subprogram DIVIDE in the package SYSTEM_OPS. TheC example shows an important effect: some conditions (such as SS$_A INTDIV) are treated as being equivalent to some Ada predefined exceptions. A The matching of a condition and an Ada predefined exception isC performed by the condition handler provided by Ada for any frame@ that includes an exception part. Therefore, when an exception@ breakpoint or tracepoint is triggered by a condition that hasB an equivalent Ada exception name, the message displays only theD system condition code name, and not the name of the corresponding Ada exception. !5 Monitoring_Specific_ExceptionsC Whenever an exception is raised , the debugger sets the following: built-in symbols. You can use them to qualify exceptionB breakpoints or tracepoints so that they trigger only on certain exceptions.@ %EXC_ A string that names the facility that issued the? FACILITY exception. The facility name for Ada predefined> exceptions and user-defined exceptions is ADA.= %EXC_NAME An uppercase string that names the exception.< If the exception raised is an Ada predefined>  exception, its name is truncated if it exceeds? 15 characters. For example, CONSTRAINT_ERROR isA truncated to CONSTRAINT_ERRO. If the exception is@ a user-defined exception, %EXC_NAME contains theD string "EXCEPTION", and the name of the user-defined7 exception is contained in %ADAEXC_NAME.A %ADAEXC_ If the exception raised is user-defined, %ADAEXC_D NAME NAME contains a string that name s the exception, andA %EXC_NAME contains the string "EXCEPTION". If theD exception is not user-defined, %ADAEXC_NAME contains? a null string, and the name of the exception is' contained in %EXC_NAME., %EXC_NUM The number of the exception.D %EXC_ A string that gives the exception severity level (F," SEVERITY E, W, I, S, or ?). 75 Monitoring_Handled_Exceptions_and_Exception_Handlers? The SET BREAK/EVENT and SET TRACE/EVENT commands let you setA breakpoints and tracepoints on exceptions that are about to beD handled by Ada exception handlers. These commands let you observeB the execution of each Ada exception handler that gains control.7 You can specify two event names with these commands:B HANDLED Triggers when an exception is about to be handled? in an Ada exception handler (includes HANDLED_ OTHERS events).? HANDLED_ Triggers only when an exception is about to beC OTHERS handled in an Ada exception handler choice others.< For example, the following command sets a breakpoint thatB triggers whenever an exception is about to be handled by an Ada exception handler: DBG> SET BREAK/EVENT=HANDLED< When the breakpoint triggers, the debugger identifies theB exception that is about to be handled and the exception handlerB that is about to be executed. You can then use that informationD to set a breakpoint on a particular handler, or you can enter theD GO command, and see which Ada handler next attempts to handle the exception. For example: DBG> GO . . . break on Ada event HANDLED1 task %TASK 1 is about to handle an exception8 The Ada exception handler is at: PROCESSOR.%LINE 21/ %ADA-F-CONSTRAINT_ERRO, CONSTRAINT_ERROR@ -ADA-I-EXCRAIPRI, Exception raised prior to PC = 00000A7C( DBG> SET BREAK PROCESSOR.%LINE 21; GO "4 Exa mining_and_Manipulating_Data; When examining and manipulating data, note the following considerations:A o Before you can examine or deposit into a nonstatic variableD (any variable not declared in a library package), its definingD subprogram, task, and so on, must be active on the call stack.D o Before you can examine, deposit, or evaluate an Ada subprogramD formal parameter or an Ada variable, the parameter or variable< must be elaborated. In other words, you should step or? otherwise move execution past the parameter or variable's@ declaration. The value contained in any variable or formalB parameter whose declaration has not been elaborated might be invalid.? In most cases, the debugger enables you to specify variables< and expressions in debugger commands exactly as you would@ specify them in the source code of the program, including useA of qualified expressions. The following subtopics discuss someB additional points about debugger support for records and access types. 5 Records@ Note the following points about debugger support for records:C o With certain Ada record variables, the debugger fails to show@ the record components correctly (possibly with a NOACCESSR@ error message) when the type declaration is in a different1 scope than the record (symbol) declaration.C o With variant records, the debugger lets you examine or assignB a value to a component of a variant part that is not active.@ But because this is an illegal action in Ada, the debugger? also issues an informational message. For example, assumeD that record REC1 has a variant field named STATUS and that the: value of STATUS is such that REC1.COMP3 is inactive: DBG> EXAMINE REC1.COMP3? %DEBUG-I-BADDISCVAL, incorrect value of 1 in discriminant field STATUS MAIN.REC1.COMP3: 438 5 Access_Types> Note the foll owing points about debugger support for access types:D o The debugger does not support allocators, so you cannot create+ new access objects with the debugger.D o When you specify the name of an access object with the EXAMINE? command, the debugger displays the memory location of the object it designates.? o To examine the value of a designated object, you must useC selected component notation, specifying .ALL. For example, toB examine the value of a record access object designated by A: DBG> EXAMINE A.ALL EXAMPLE.A.ALL* NAME(1..10): "John Doe " AGE : 6 NEXT: 1462808C o To examine one component of a designated object, you can omit; .ALL from the selected component syntax. For example: DBG> EXAMINE A.NAME1 EXAMPLE.A.ALL.NAME(1..10): "John Doe "B The following example shows the debugger support for incomplete. types. Consider the following declarations: package P is type T is private; private type T_TYPE; type T is access T_TYPE; end P; package body P is type T_TYPE is record A: NATURAL := 5; B: NATURAL := 4; end record; T_REC: T_TYPE;% T_PTR: T := new T_TYPE'(T_REC); end P; with P; use P; procedure INCOMPLETE is VAR: T; begin . . . end INCOMPLETE;D The debugger does not  have complete information about the type T,C so you cannot manipulate the variable VAR. However, the debuggerC does have information about objects declared in the package body= P. Thus, you can manipulate the variables T_PTR and T_REC. 4 Module_Names_and_Path_Names> The names of Ada debugger modules are the same as the names= of the corresponding compilation units, with the followingA provision. To eliminate ambiguity, an underscore character (_)A is appended to a sp ecification name to distinguish it from itsA body name. For example, TEST (body), TEST_ (specification). ToD determine the exact names of the modules in your program, use the SHOW MODULE command.? In most cases when you specify a path name, the debugger canC distinguish body names and specification names from the context.B Therefore, use this naming convention only if needed to resolve an ambiguity.C When the debugger language is set to Ada, the debugger generallyA  constructs pathnames that follow the Ada rules, using selected@ component notation to separate path name elements (with other< languages, a backslash is used to separate elements). For example:2 TEST_.A1 ! A1 is declared in the package0 ! specification of unit TEST2 TEST.B1 ! B1 is declared in the package' ! body of unit TESTB The maximum length that you can specify for a subunit path name% (expanded name) is 247 ch aracters.B When a use clause makes a symbol declared in a package directly= visible outside the package, you do not need to specify an> expanded name (package-name.symbol) to refer to the symbol,8 either in the program itself or in debugger commands.< The SHOW SYMBOL/USE_CLAUSE command identifies any package@ (library or otherwise) that a specified block, subprogram, orA package mentions in a use clause. If the entity specified is aB package (library or otherwise), the c ommand also identifies anyB block, subprogram, package, and so on, that names the specified' module in a use clause. For example:! DBG> SHOW SYMBOL/USE_CLAUSE B_ package spec B_ used by: F uses: A_D If a label has been assigned to a loop statement or declare blockB in the source code, the debugger displays the label; otherwise,? the debugger displays LOOP$n for a loop statement or BLOCK$n? for a declare block, where n is the line number at which th e statement or block begins. 4 Symbol_Lookup_ConventionsC For Ada programs, when you do not specify a path name (includingC an Ada expanded name), the debugger searches the run-time symbol table as follows.C 1. The debugger looks for the symbol within the block or routineD surrounding the current PC value (where execution is currently paused).@ 2. If the symbol is not found, the debugger then searches anyB package that is mentioned in a use claus e. The debugger doesC not distinguish between a library package and a package whoseD declaration is in the same module as the current scope region.A If the same symbol is declared in two or more packages that= are visible, the symbol is not unique (according to Ada> rules), and the debugger issues a message similar to the following:1 %DEBUG-E-NOUNIQUE, symbol 'X' is not uniqueA 3. If the symbol is still not found, the debugger searches the: call stack and other scopes, as for other languages. 4 Setting_Modules> When you or the debugger sets an Ada module, by default the? debugger also sets any "related" module (that is, any module@ whose symbols should be visible within the module being set).A Such modules are related to the one being set through either a) with-clause or a subunit relationship.> Related module setting takes place as follows. If M1 is the; module that is being set, then the following modu les are' considered related and are also set:D o If M1 is a library body, the debugger also sets the associated$ library specification, if any.@ o If M1 is a subunit, the debugger also sets its parent unit/ and, therefore, any parent of the parent.? o If M1 mentions a library package P1 in a with clause, the@ debugger also sets P1's specification. Neither the body ofA P1 nor any possible subunits of P1 are set, because symbols9 declared within th em should not be visible outside.C If P1's specification mentions a package P2 in a with clause,= the debugger also sets P2's specification. Likewise, if@ P2's specification mentions a package P3 in a with clause,? the debugger also sets P3's specification, and so on. The< specifications of all such library packages are set so> that you can access data components (for example, record@ components) that may have been declared in other packages.? o If  M1 mentions a library subprogram in a with clause, the? debugger does not set the subprogram. Only the subprogram= name needs to be visible in M1 (no declaration within aC library subprogram should be visible outside the subprogram).= Therefore, the debugger inserts the name of the library- subprogram into the RST when M1 is set.@ If debugger performance becomes a problem as more modules areB set, use the SET MODE NODYNAMIC command, which disables relatedB  module setting as well as dynamic module setting. You must thenA set individual modules explicitly with the SET MODULE command.: By default, the SET MODULE command sets related modules; simultaneously with the module specified in the command.= The SET MODULE/NORELATED command sets only the modules youD specify explicitly. However, if you use SET MODULE/NORELATED, youC may find that a symbol that is declared in another unit and thatC should be visible at the point of exe cution is no longer visible@ or that a symbol which should be hidden by a redeclaration of# that same symbol is now visible.@ The CANCEL MODULE/NORELATED command deletes from the RST onlyA the modules you specify explicitly. This command, which is the? default, deletes related modules in a manner consistent withC the intent of Ada's scope and visibility rules. The exact effect# depends on module relationships.D The distinction between related and directly related for subunits- is analogous to that for library packages. %5 Setting_Modules_for_Package_Bodies> Modules for package bodies are not automatically set by the debugger.= You may need to set the modules for library package bodies; yourself so that you can debug the package body or debugC subprograms declared in the corresponding package specification. )4 Resolving_Overloaded_Names_and_Symbols@ When you encounter overloaded names and symbols, the debugger' issues a message like the following:1 %DEBUG-E-NOTUNQOVR, symbol 'ADD' is overloaded7 use SHOW SYMBOL to find the unique symbol namesB If the overloaded symbol is an enumeration literal, you can use5 qualified expressions to resolve the overloadings.B If the overloaded symbol represents a subprogram or task acceptC statement, you can use the unique name generated by the compilerC for the debugger. The compiler always generates unique names forB subprograms declared in  library package specifications, becauseB the names might later be overloaded in the package body. UniqueA names are generated for task accept statements and subprogramsA declared in other places only if the task accept statements or' subprograms are actually overloaded.B Overloaded task accept statement names and subprogram names areC distinguished by a suffix consisting of two underscores followedD by an integer that uniquely identifies the given symbol. You mustB use t he unique naming notation in debugger commands to uniquelyC specify a subprogram whose name is overloaded. However, if there@ is no ambiguity, you do not need to use the unique name, even though one was generated. 4 CALL_Command@ With Ada programs, you can use the CALL command reliably onlyC with a subprogram that has been exported. An exported subprogramD must be a library subprogram or must be declared in the outermost) declarative part of a library package.D T he CALL command does not check whether or not the subprogram canB be exported, nor does it check the parameter-passing mechanismsA that you specify. Note that you cannot use the CALL command to# modify the value of a parameter.D A CALL command may result in a deadlock if it is entered when theC Ada run-time library is executing. The run-time library routines@ acquire and release internal locks that allow the routines to= operate in a tasking environment. Deadlock can result i f a> subprogram called from the CALL command requires a resourceA that has been locked by an executing run-time library routine.B To avoid this situation in a nontasking program, enter the CALL@ command immediately before or after an Ada statement has been? executed. However, this approach is not sufficient to assureC that deadlock will not occur in a tasking program, as some otherB task may be executing a run-time library routine at the time ofC the call. If you must use the CALL command in a tasking program,B you can avoid deadlock if the called subprogram does not do any& tasking or input-output operations. 3 BASIC? The following subtopics describe debugger support for BASIC. $4 Operators_in_Language_Expressions= Supported BASIC operators in language expressions include: Kind Symbol Function Prefix + Unary plus1 Infix + Addition, String concatenation! Infix * Multiplication Infix /  Division! Infix ** Exponentiation! Infix ^ Exponentiation Infix = Equal to Infix <> Not equal to Infix >< Not equal to Infix > Greater than+ Infix >= Greater than or equal to+ Infix => Greater than or equal to Infix < Less than( Infix <= Less than or equal to( Infix =< Less than or equal to Prefix NOT Bit-wise NOT Infix AND Bit-wise AND Infix OR Bit-wise OR( Infix XOR Bit-wise exclusive OR' Infix IMP Bit-wise implication' Infix EQV Bit-wise equivalence 14 Constructs_in_Language_and_Address_Expressions? Supported constructs in language and address expressions for BASIC follow: Symbol Construct ( ) Subscripting$ :: Record component selection 4 Data_Types% Supported BASIC data types follow:> BASIC Data Type Operating System Data Type Name/  BYTE Byte Integer (B)/ WORD Word Integer (W)3 LONG Longword Integer (L)- SINGLE F_Floating (F)- DOUBLE D_Floating (D)- GFLOAT G_Floating (G)- HFLOAT (VAX specific) H_Floating (H)1 DECIMAL Packed Decimal (P)- STRING ASCII Text (T)% RFA (None)% RECORD  (None)% Arrays (None) 4 Compiling_for_Debugging@ If you make changes to a program in the BASIC environment andC attempt to compile the program with the /DEBUG qualifier withoutA first saving or replacing the program, BASIC signals the errorB "Unsaved changes, no source line debugging available." To avoidD this problem, save or replace the program, and then recompile the% program with the /DEBUG qualifier. 4 ConstantsB BASIC c onstants of the form [radix]"numeric-string"[type] (suchD as "12.34"GFLOAT) or the form n% (such as 25% for integer 25) are) not supported in debugger expressions. 4 Evaluating_Expressions9 Expressions that overflow in the BASIC language do notD necessarily overflow when evaluated by the debugger. The debugger? tries to compute a numerically correct result, even when theB BASIC rules call for overflows. This difference is particularly) likely to affect DECIMAL computations. 4 Line_Numbers? The sequential line numbers that you refer to in a debugging> session and that are displayed in a source code display areA those generated by the compiler. When a BASIC program includesD or appends code from another file, the included lines of code are- also numbered in sequence by the compiler. 4 Stepping_into_RoutinesD The STEP/INTO command is useful for examining external functions.D However, if you use this command to stop execution  at an internalB subroutine or a DEF, the debugger initially steps into run-timeD library (RTL) routines, providing you with no useful information.@ In the following example, execution is paused at line 8, at a call to Print_routine: . . . -> 8 GOSUB Print_routine 9 STOP . . . 20 Print_routine:! 21 IF Competition = DoneA 22 THEN PRINT "The winning ticket is #";Winning_ticket, 23 ELSE PRINT "The game goes on." ! 24 END IF 25 RETURN@ A STEP/INTO command would cause the debugger to step into the> relevant RTL code and would inform you that no source lines? are available for display. On the other hand, a STEP command? alone would cause the debugger to proceed directly to source@ line 9, past the call to Print_routine. To examine the source@ code of subroutines or DEF functions, set a breakpoint on the@ routine label (for example, enter the SET BREAK PRINT_ROUTINE@ com"mand). You can then suspend execution exactly at the startC of the routine (line 20, in this example) and then step directly into the code. 4 Symbolic_ReferencesB All variable and label names within a single BASIC program must> be unique. Otherwise the debugger cannot resolve the symbol ambiguity. 4 Watchpoints@ In BASIC, you can set a watchpoint only on variables that are? declared in COMMON or MAP statements (static variables). YouC cannot set watchpoint#s on variables explicitly declared with the DECLARE statement. 3 BLISS? The following subtopics describe debugger support for BLISS. $4 Operators_in_Language_Expressions= Supported BLISS operators in language expressions include: Kind Symbol Function Prefix . Indirection Prefix + Unary plus Infix + Addition! Infix * Multiplication Infix / Division Infix MOD Remainder Infix ^ Lef$t shift Infix EQL Equal to Infix EQLU Equal to Infix EQLA Equal to Infix NEQ Not equal to Infix NEQU Not equal to Infix NEQA Not equal to Infix GTR Greater than( Infix GTRU Greater than unsigned( Infix GTRA Greater than unsigned+ Infix GEQ Greater than or equal to4 Infix GEQU Greater than or equal to unsigned4 Infix GEQA Greater than or equal to unsigned Infix LSS Less than% % Infix LSSU Less than unsigned% Infix LSSA Less than unsigned( Infix LEQ Less than or equal to1 Infix LEQU Less than or equal to unsigned1 Infix LEQA Less than or equal to unsigned Prefix NOT Bit-wise NOT Infix AND Bit-wise AND Infix OR Bit-wise OR( Infix XOR Bit-wise exclusive OR' Infix EQV Bit-wise equivalence 14 Constructs_in_Language_and_Address_Expressions? Supported constructs in language and &address expressions for BLISS follow: Symbol Construct [ ] Subscripting [fldname] Field selection Bit field selection 4 Data_Types% Supported BLISS data types follow:> BLISS Data Type Operating System Data Type Name/ BYTE Byte Integer (B)/ WORD Word Integer (W)3 LONG Longword Integer (L)+ QUAD (Alpha specific) Quadword (Q)1 BYTE UNSI 'GNED Byte Unsigned (BU)1 WORD UNSIGNED Word Unsigned (WU)5 LONG UNSIGNED Longword Unsigned (LU)5 QUAD UNSIGNED (Alpha Quadword Unsigned (QU) specific)% VECTOR (None)% BITVECTOR (None)% BLOCK (None)% BLOCKVECTOR (None)% REF VECTOR (None)% REF BITVECTOR (None)% REF BLOCK (None)% REF B(LOCKVECTOR (None) 3 CC; The following subtopics describe debugger support for C. $4 Operators_in_Language_Expressions9 Supported C operators in language expressions include: Kind Symbol Function Prefix * Indirection Prefix & Address of Prefix sizeof size of Infix + Addition! Infix * Multiplication Infix / Division Infix % Remainder Infix << Left shift Infix ) >> Right shift Infix == Equal to Infix != Not equal to Infix > Greater than+ Infix >= Greater than or equal to Infix < Less than( Infix <= Less than or equal to Prefix ~ Bit-wise NOT (tilde) Infix & Bit-wise AND Infix | Bit-wise OR( Infix ^ Bit-wise exclusive OR Prefix ! Logical NOT Infix && Logical AND Infix || Logical ORD Becau*se the exclamation point (!) is an operator in C, it cannot@ be used as the comment delimiter. When the language is set toC C, the debugger instead accepts /* as the comment delimiter. TheC comment continues to the end of the current line. (A matching */B is neither needed nor recognized.) To permit debugger log filesA to be used as debugger input, the debugger still recognizes anC exclamation point (!) as a comment delimiter if it is the first nonspace character on a line. +B The debugger accepts the prefix asterisk (*) as an indirection? operator in both C language expressions and debugger addressC expressions. In address expressions, prefix "*" is synonymous to3 prefix "." or "@" when the language is set to C.@ The debugger does not support any of the assignment operators> in C (or any other language) in order to prevent unintendedD modifications to the program being debugged. Hence such operatorsD as =, +=, ++, and -- are not recognized,. To alter the contents of? a memory location, you must use an explicit DEPOSIT command. 14 Constructs_in_Language_and_Address_ExpressionsA Supported constructs in language and address expressions for C follow: Symbol Construct [ ] Subscripting+ . Structure component selection (period)# -> Pointer dereferencing 4 Data_Types! Supported C data types follow:> C Data Type Operating System Data Type -Name3 __int64 (Alpha specific) Quadword Integer (Q)5 unsigned __int64 (Alpha Quadword Unsigned (QU) specific)3 __int32 (Alpha specific) Longword Integer (L)5 unsigned __int32 (Alpha Longword Unsigned (LU) specific)3 int Longword Integer (L)5 unsigned int Longword Unsigned (LU)/ __int16 (Alpha specific) Word Integer (W)1 unsigned __int16 (Alpha Word Unsigned (WU) specific)/ short int . Word Integer (W)1 unsigned short int Word Unsigned (WU)/ char Byte Integer (B)1 unsigned char Byte Unsigned (BU)- float F_Floating (F)- __f_float (Alpha F_Floating (F) specific)- double D_Floating (D)- double G_Floating (G)- __g_float (Alpha G_Floating (G) specific)3 float (Alpha specific) IEEE S_Floating (FS)3 _ /_s_float (Alpha IEEE S_Floating (FS) specific)3 double (Alpha specific) IEEE T_Floating (FT)3 __t_float (Alpha IEEE T_Floating (FT) specific)% enum (None)% struct (None)% union (None)% Pointer Type (None)% Array Type (None)@ Floating-point numbers of type float may be represented by F_? Floating or IEEE S_Floating, depending on compile0r switches.C Floating-point numbers of type double may be represented by IEEE? T_Floating, D_Floating, or G_Floating, depending on compiler switches. 4 Case_Sensitivity? Symbol names are case sensitive for language C, meaning that; uppercase and lowercase letters are treated as different characters. !4 Static_and_Nonstatic_Variables; Variables of the following storage classes are allocated8 statically: static, globaldef, globalref, and extern.; V 1ariables of the following storage classes are allocatedC nonstatically (on the stack or in registers): auto and register.B Such variables can be accessed only when their defining routine! is active (on the call stack). 4 Scalar_Variables= You can specify scalar variables of any C type in debugger@ commands exactly as you would specify them in the source code of the program.@ The following paragraphs provide additional information about char variables and pointe2rs.= The char variables are interpreted by the debugger as byteD integers, not ASCII characters. To display the contents of a charA variable ch as a character, you must use the /ASCII qualifier: DBG> EXAMINE/ASCII ch SCALARS\main\ch: "A"> You also must use the /ASCII qualifier when depositing into@ a char variable, to translate the byte integer into its ASCII equivalent. For example: DBG> DEPOSIT/ASCII ch = 'z' DBG> EXAMINE/ASCII ch SCALARS\main\3ch: "z"= The following example shows use of pointer syntax with the9 EXAMINE command. Assume the following declarations and assignments: static long li = 790374270; static int *ptr = &li; DBG> EXAMINE *ptr% *SCALARS\main\ptr: 790374270 4 ArraysB The debugger handles C arrays as for most other languages. That? is, you can examine an entire array aggregate, a slice of anA array, or an individual array element, using array syntax (for 4C example EXAMINE arr[3]). And you can deposit into only one array element at a time. 4 Character_StringsB Character strings are implemented in C as null-terminated ASCIID strings (ASCIZ strings). To examine and deposit data in an entireA string, use the /ASCIZ (or /AZ) qualifier so that the debugger@ can interpret the end of the string properly. You can examine> and deposit individual characters in the string using the CC array subscripting operators ([ ]). When yo5u examine and deposit3 individual characters, use the /ASCII qualifier.5 Assume the following declarations and assignments: static char *s = "vaxie"; static char **t = &s;@ The EXAMINE/AZ command displays the contents of the character# string pointed to by *s and **t: DBG> EXAMINE/AZ *s *STRING\main\s: "vaxie" DBG> EXAMINE/AZ **t" **STRING\main\t: "vaxie"< The DEPOSIT/AZ command deposits a new ASCIZ string in theA variable pointed to by 6*s. The EXAMINE/AZ command displays the new contents of the string: DBG> DEPOSIT/AZ *s = "DEC C" DBG> EXAMINE/AZ *s, **t *STRING\main\s: "DEC C"# **STRING\main\t: "DEC C"B You can use array subscripting to examine individual charactersC in the string and deposit new ASCII values at specific locationsD within the string. When accessing individual members of a string,B use the /ASCII qualifier. A subsequent EXAMINE/AZ command shows4 the entire string c7ontaining the deposited value: DBG> EXAMINE/ASCII s[3] [3]: " " DBG> DEPOSIT/ASCII s[3] = "-" DBG> EXAMINE/AZ *s, **t *STRING\main\s: "VAX-C" **STRING\main\t: "VAX-C" 4 Structures_and_UnionsB You can examine structures in their entirety or on a member-by-A member basis, and deposit data into structures one member at a time.@ To reference members of a structure or union, use the usual CB syntax for such references. That is, if variable p is 8 a pointerD to a structure, you can reference member y of that structure with@ the expression p ->y. If variable x refers to the base of theB storage allocated for a structure, you can refer to a member of* that structure with the x.y expression.B The debugger uses C type-checking rules to reference members of@ a structure or union. For example, in the case of x.y, y need@ not be a member of x; it is treated as an offset with a type.A When such a reference is ambiguous-when t 9here is more than oneA structure with a member y-the debugger attempts to resolve theA reference according to the following rules. The same rules forD resolving the ambiguity of a reference to a member of a structure( or union apply to both x.y and p ->y.@ o If only one of the members, y, belongs in the structure or3 union, x, that is the one that is referenced.D o If only one of the members, y, is in the same scope as x, then) that is the one that is referenced:.D You can always give a path name with the reference to x to narrow@ the scope that is used and to resolve the ambiguity. The same- path name is used to look up both x and y. 3 C++_V5.5_and_Later (Alpha only.)C On Alpha systems, the OpenVMS debugger provides enhanced supportC for debugging C++ modules compiled with the Version 5.5 compiler or later (Alpha only).4 The debugger supports the following C++ features:+ o C++ names and expressions, includi;ng:= - Explicit and implicit this pointer to refer to class members' - Scope resolution operator (::)A - Member access operators: period (.) and right arrow (->) - Template instantiations o Setting breakpoints in:A - Member functions, including static and virtual functions - Overloaded functions% - Constructors and destructors - Template instantiations - Operators7 o Calling functions, i<ncluding overloaded functionsB o Debugging programs containing a mixture of C++ code and code in other languages< The following subtopics describe debugger support for C++' (Compiler Version 5.5 (Alpha only)). $4 Operators_in_Language_Expressions: Supported C++ operators in language expressions follow: Kind Symbol Function Prefix * Indirection Prefix & Address of Prefix sizeof size of) Prefix - Unary minus (negation)= Infix + Addition Infix - Subtraction! Infix * Multiplication Infix / Division Infix % Remainder Infix << Left shift Infix >> Right shift Infix == Equal to Infix != Not equal to Infix > Greater than+ Infix >= Greater than or equal to Infix < Less than( Infix <= Less than or equal to Prefix ~ Bit-wise NOT (tilde) Infix & > Bit-wise AND Infix | Bit-wise OR( Infix ^ Bit-wise exclusive OR Prefix ! Logical NOT Infix && Logical AND Infix || Logical ORB Because the exclamation point (!) is an operator, it cannot beB used in C++ programs as a comment delimiter. However, to permit@ debugger log files to be used as debugger input, the debuggerD interprets ! as a comment delimiter when it is the first nonspace? character on a line. In C++ language ?mode, the debugger alsoC interprets /* or // as preceding a comment that continues to the end of the current line.B The debugger accepts the asterisk (*) prefix as an indirectionA operator in both C++ language expressions and debugger addressB expressions. In address expressions, the * prefix is synonymousC with either the period (.) prefix or at sign (@) prefix when the$ debugger is in C++ language mode.; To prevent unintended modifications to the program being@ @ debugged, the debugger does not support any of the assignmentA operators in C++ (or any other language). Thus, such operatorsD as =, +=, -=, ++, and -- are not recognized in debugger commands.? To alter the contents of a memory location, you must use the debugger DEPOSIT command. 14 Constructs_in_Language_and_Address_ExpressionsC Supported constructs in language and address expressions for C++ follow: Symbol Construct [ ] Subscripting+ . A Structure component selection (period)# -> Pointer dereferencing :: Scope resolution 4 Data_Types# Supported C++ data types follow:> C++ Data Type Operating System Data Type Name3 __int64 (Alpha) Quadword Integer (Q)5 unsigned __int64 (Alpha) Quadword Unsigned (QU)3 __int32 (Alpha) Longword Integer (L)5 unsigned __int32 (Alpha) Longword Unsigned (LU)3 int Longwor Bd Integer (L)5 unsigned int Longword Unsigned (LU)/ __int16 (Alpha) Word Integer (W)1 unsigned __int16 (Alpha) Word Unsigned (WU)/ short int Word Integer (W)1 unsigned short int Word Unsigned (WU)/ char Byte Integer (B)1 unsigned char Byte Unsigned (BU)- float F_Floating (F)- __f_float (Alpha) F_Floating (F)- double D C_Floating (D)- double G_Floating (G)- __g_float (Alpha) G_Floating (G)3 float (Alpha) IEEE S_Floating (FS)3 __s_float (Alpha) IEEE S_Floating (FS)3 double (Alpha) IEEE T_Floating (FT)3 __t_float (Alpha) IEEE T_Floating (FT)% enum (None)% struct (None)% class (None)% union (None)% Pointer Type D (None)% Array Type (None)@ Floating-point numbers of type float may be represented by F_? Floating or IEEE S_Floating, depending on compiler switches.C Floating-point numbers of type double may be represented by IEEE? T_Floating, D_Floating, or G_Floating, depending on compiler switches. 4 Case_SensitivityD Symbol names are case sensitive in C++. This means that uppercase= and lowercase letters are treated as different charactersE. '4 Displaying_Information_About_a_ClassB Use the command SHOW SYMBOL to display static information about? a class declaration. Use the command EXAMINE to view dynamicD information about class objects (see Displaying Information About an Object).D The command SHOW SYMBOL/FULL displays the class type declaration, including:2 Data members (including static data members): Member functions (including static member functions)" Constructors and destructoFrs& Base classes and derived classes For example: dbg> SHOW SYMBOL /TYPE C type C0 struct (C, 13 components), size: 40 bytes overloaded name C instance C::C(void)" instance C::C(const C &) dbg> SHOW SYMBOL /FULL C type C0 struct (C, 13 components), size: 40 bytes6 inherits: B1, size: 24 bytes, offset: 0 bytes7 B2, size: 24 bytes, offset: 12 bytes( contains the following members: G overloaded name C::g$ instance C::g(int)% instance C::g(long)% instance C::g(char)@ j : longword integer, size: 4 bytes, offset: 24 bytesD s : longword integer, size: 4 bytes, address: # [static] overloaded name C int ==(C &) C & =(const C &)# void h(void) [virtual] ~C(void)F __vptr : typed pointer type, size: 4 bytes, offset: 4 bytesF _ H_bptr : typed pointer type, size: 4 bytes, offset: 8 bytesE structure has been padded, size: 4 bytes, offset: 36 bytes overloaded name C instance C::C(void)" instance C::C(const C &) DBG>> Note that SHOW SYMBOL/FULL does not display members of base@ classes or derived classes. Use the commands SHOW SYMBOL/FULL= base_class_name and SHOW SYMBOL/FULL derived_class_name toC display information about members of those classes. For example: DBG I> SHOW SYMBOL /FULL B1 type B10 struct (B1, 8 components), size: 24 bytes inherits: virtual A is inherited by: C( contains the following members:? i : longword integer, size: 4 bytes, offset: 0 bytes overloaded name B1 void f(void) B1 & =(const B1 &)# void h(void) [virtual]F __vptr : typed pointer type, size: 4 bytes, offset: 4 bytesF __bptr : typed pointer type, size: 4 byteJs, offset: 8 bytesF structure has been padded, size: 12 bytes, offset: 12 bytes overloaded name B1 instance B1::B1(void)% instance B1::B1(const B1 &) DBG>@ Use the command SHOW SYMBOL/FULL class_member_name to display0 information about class members. For example: DBG> SHOW SYMBOL /FULL j record component C::j8 address: offset 24 bytes from beginning of record3 atomic type, longword integer, size: 4 bytes record componenKt A::j7 address: offset 4 bytes from beginning of record3 atomic type, longword integer, size: 4 bytes DBG>C Use the SHOW SYMBOL/FULL command to display detailed information about an object.D Note that SHOW SYMBOL does not currently support qualified names.C For example, the following commands are not currently supported:+ SHOW SYMBOL object_name.function_name) SHOW SYMBOL class_name::member_name )4 Displaying_Information_About_an_ObjecLtC The debugger uses C++ symbol lookup rules to display information@ about objects. Use the command EXAMINE to display the current# value of an object. For example: DBG> EXAMINE a! CXXDOCEXAMPLE\main\a: struct A i: 0 j: 1 __vptr: 131168 DBG>B You can also display individual object members using the member> access operators, period (.) and right arrow (->), with the EXAMINE command. For example: DBG> EXAMINE ptr% CXXDOCEXAMMPLE\main\ptr: 40 DBG> EXAMINE *ptr$ *CXXDOCEXAMPLE\main\ptr: struct A i: 0 j: 1 __vptr: 131168 DBG> EXAMINE a.i CXXDOCEXAMPLE\main\a.i: 0 DBG> EXAMINE ptr->i$ CXXDOCEXAMPLE\main\ptr->i: 0 DBG>= The debugger correctly interprets virtual inheritance. For example: DBG> EXAMINE c! CXXDOCEXAMPLE\main\c: struct C inherit B1 inherit virtual A i: 8 j: 9! N __vptr: 131200 i: 10 __vptr: 131232 __bptr: 131104 inherit B2: inherit virtual A (already printed, see above) i: 11 __vptr: 131280 __bptr: 131152 j: 12 __vptr: 131232 __bptr: 131104 DBG>= Use the scope resolution operator (::) to reference global= variables, to reference hidden members in base classes, to@ explicitly reference Oa member that is inherited, or otherwise? to name a member hidden by the current context. For example: DBG> EXAMINE c.j CXXDOCEXAMPLE\main\c.j: 12 DBG> EXAMINE c.A::j$ CXXDOCEXAMPLE\main\c.A::j: 9 DBG> EXAMINE x CXXDOCEXAMPLE\main\x: 101 DBG> EXAMINE ::x CXXDOCEXAMPLE\x: 13 DBG>A To resolve ambiguous member references, the debugger lists theA members that satisfy the reference and requests an unambiguous( reference to the memberP. For example: DBG> EXAMINE c.i? %DEBUG-I-AMBIGUOUS, 'i' is ambiguous, matching the following! CXXDOCEXAMPLE\main\c.B1::i! CXXDOCEXAMPLE\main\c.B2::iF %DEBUG-E-REENTER, reenter the command using a more precise pathname DBG> EXAMINE c.B1::i% CXXDOCEXAMPLE\main\c.B1::i: 10 DBG>A Use the scope resolution operator (::) to refer to static data members. For example: DBG> EXAMINE c.s CXXDOCEXAMPLE\main\c.s: 42 DBG> EXAMINE C::s C::Qs: 42 DBG>B Use the SHOW SYMBOL/FULL to display the class type of an object. (see Displaying Information About a Class). 4 Setting_WatchpointsA You can set watchpoints on objects. All nonstatic data members= are watched (including those in base classes). Static dataC members are not watched when you set a watchpoint on the object.= However, you can explicitly set watchpoints on static data members. For example: DBG> SET WATCH cF %DEBUG-I-WPTTRACE, Rnon-static watchpoint, tracing every instruction DBG> GOC watch of CXXDOCEXAMPLE\main\c.i at CXXDOCEXAMPLE\main\%LINE 50+8 50: c.B2::i++; old value: 11 new value: 12' break at CXXDOCEXAMPLE\main\%LINE 51 51: c.s++; DBG> SET WATCH c.s DBG> GOD watch of CXXDOCEXAMPLE\main\c.s at CXXDOCEXAMPLE\main\%LINE 51+16 51: c.s++; old value: 43 new value: 44' break at CXXDOCEXAMPLE\main\%LINE 53 53: b1.f(S); DBG> 4 Debugging_FunctionsC The debugger uses C++ symbol lookup rules to display information$ on member functions. For example: DBG> EXAMINE /SOURCE b1.f module CXXDOCEXAMPLE 14: void f() {} DBG> SET BREAK B1::f DBG> GO break at routine B1::f 14: void f() {} DBG>D The debugger correctly interprets references to the this pointer. For example: DBG> EXAMINE this B1::f::this: 16 DBG> EXAMINE *tThis *B1::f::this: struct B1 inherit virtual A i: 2 j: 3 __vptr: 131184 i: 4 __vptr: 131248 __bptr: 131120 DBG> EXAMINE this->i B1::f::this->i: 4 DBG> EXAMINE this->j B1::f::this->A::j: 3 DBG>EXAMINE i B1::f::this->i: 4 DBG> EXAMINE j B1::f::this->A::j: 3 DBG>B The debugger correctly references virtual member functions. For example: DBG> EXAMINUE /SOURCE %LINE 53 module CXXDOCEXAMPLE 53: b1.f(); DBG> SET BREAK this->h DBG> SHOW BREAK breakpoint at routine B1::f breakpoint at routine B1::h !!6 !! We are at the call to B1::f made at 'c.B1::f()'. !! Here this->h matches C::h. !! DBG> GO break at routine B1::f 14: void f() {} DBG> EXAMINE /SOURCE %LINE 54 module CXXDOCEXAMPLE 54: c.B1::f(); DBG> SET BREAK this->h DBG> SHOW BREAK breakpoint Vat routine B1::f breakpoint at routine B1::h breakpoint at routine C::h !!# !! Handling overloaded functions !! DBG> SET BREAK g/ %DEBUG-I-NOTUNQOVR, symbol 'g' is overloaded overloaded name C::g instance C::g(int) instance C::g(long) instance C::g(char)F %DEBUG-E-REENTER, reenter the command using a more precise pathname DBG> SET BREAK g(int) DBG> CANCEL BREAK/ALL DBG>D If you try to set a break on an overlWoaded function, the debuggerD lists the instances of the function and requests that you specify@ the correct instance. For example, with Debugger Version 7.2: DBG> SET BREAK g/ %DEBUG-I-NOTUNQOVR, symbol 'g' is overloaded overloaded name C::g instance void g(int) instance void g(long)! instance void g(char *)F %DEBUG-E-REENTER, reenter the command using a more precise pathname DBG> SET BREAK g(int) DBG>& X NOTEA The means of displaying and specifying overloaded functions= is different than in the OpenVMS Debugger Version 7.1C.< The debugger provides support for debugging constructors,+ destructors, and operators. For example: DBG> SET BREAK C/ %DEBUG-I-NOTUNQOVR, symbol 'C' is overloaded overloaded name C instance C::C(void)" instance C::C(const C &)F %DEBUG-E-REENTER, reenter the command using a more precise pathname DBG> SHOW SYYMBOL /FULL ~C routine C::~C type signature: ~C(void)' code address: #, size: 152 bytes& procedure descriptor address: # DBG> SET BREAK %NAME'~C' DBG> SET BREAK %NAME'=='I %DEBUG-W-UNALLOCATED, '==' is not allocated in memory (optimized away)7 %DEBUG-E-CMDFAILED, the SET BREAK command has failed DBG> SHOW SYMBOL /FULL == routine C::==" type signature: int ==(C &) address: unallocated DBG> SHOW BREAK breakpoint at routine C::~C Z DBG> *4 Limitations_on_Debugger_Support_for_C++@ The following limitations apply when you debug a C++ program:B o You cannot specify a template by name in a debugger command.A You must use the name of the instantiation of the template.B o In C++, expressions in the instantiated template name can beA full constant expressions, such as stack. ThisC form is not yet supported in the debugger; you must enter theC value of the expression (f[or example, if f is 10 in the stack# example, you must enter 100). 3 C++< The following subtopics describe debugger support for C++@ programs compiled with C++ compiler versions prior to Version 5.5. 4 The_%name_Lexical_Function> Use of the %name lexical function is required with debugger@ commands to reference certain entities in Compaq C++, such asA functions and data members. When used, this function is alwaysD placed between the command and the refe\rence. Examples of correctD usage are shown in the following sections for cases where its use is required. $4 Operators_in_Language_Expressions; Supported C++ operators in language expressions include: Kind Symbol Function Prefix * Indirection Prefix & Address of Prefix sizeof size of Infix + Addition! Infix * Multiplication Infix / Division Infix % Remainder Infix << Left shift] Infix >> Right shift Infix == Equal to Infix != Not equal to Infix > Greater than+ Infix >= Greater than or equal to Infix < Less than( Infix <= Less than or equal to Prefix ~ Bit-wise NOT (tilde) Infix & Bit-wise AND Infix | Bit-wise OR( Infix ^ Bit-wise exclusive OR Prefix ! Logical NOT Infix && Logical AND Infix || Logical OR ^B Because the exclamation point (!) is an operator, it cannot beB used in C++ programs as a comment delimiter. However, to permit@ debugger log files to be used as debugger input, the debuggerB still recognizes an exclamation point as a comment delimiter if@ it is the first nonspace character on a line. In C++ language> mode, the debugger accepts /* as the comment delimiter. The@ comment continues to the end of the current line. (A matching( */ is neither needed nor recognized _.)B The debugger accepts the asterisk (*) prefix as an indirectionA operator in both C++ language expressions and debugger addressB expressions. In address expressions, the * prefix is synonymousD to the period (.) prefix or at sign @ prefix when the language is set to C++.; To prevent unintended modifications to the program being@ debugged, the debugger does not support any of the assignmentA operators in C++ (or any other language). Thus, such operatorsA as =, +=,` ++, and -- are not recognized. To alter the contents@ of a memory location, you must do so with an explicit deposit command. 14 Constructs_in_Language_and_Address_ExpressionsC Supported constructs in language and address expressions for C++ follow: Symbol Construct [ ] Subscripting+ . Structure component selection (period)# -> Pointer dereferencing 4 Data_Types# Supported C++ data types follow:> C++ Data aType Operating System Data Type Name3 __int64 (Alpha specific) Quadword Integer (Q)5 unsigned __int64 (Alpha Quadword Unsigned (QU) specific)3 __int32 (Alpha specific) Longword Integer (L)5 unsigned __int32 (Alpha Longword Unsigned (LU) specific)3 int Longword Integer (L)5 unsigned int Longword Unsigned (LU)/ __int16 (Alpha specific) Word Integer (W)1 unsigned __int16 (Alpha Word Unsignedb (WU) specific)/ short int Word Integer (W)1 unsigned short int Word Unsigned (WU)/ char Byte Integer (B)1 unsigned char Byte Unsigned (BU)- float F_Floating (F)- __f_float (Alpha F_Floating (F) specific)- double D_Floating (D)- double G_Floating (G)- __g_float (Alpha G_Floating (G) specific)3 float (Alcpha specific) IEEE S_Floating (FS)3 __s_float (Alpha IEEE S_Floating (FS) specific)3 double (Alpha specific) IEEE T_Floating (FT)3 __t_float (Alpha IEEE T_Floating (FT) specific)% enum (None)% struct (None)% union (None)% Pointer Type (None)% Array Type (None)@ Floating-point numbers of type float may be represented by F_? Flodating or IEEE S_Floating, depending on compiler switches.C Floating-point numbers of type double may be represented by IEEE? T_Floating, D_Floating, or G_Floating, depending on compiler switches. 4 Case_SensitivityB Symbol names are case sensitive for C++, meaning that uppercase= and lowercase letters are treated as different characters. 4 Qualified_Class_Names= Discussions in some of the following sections use the term@ qualified class names to describe h eow to compose the names ofC class members when using the debugger. If a class is not definedD within another class, the qualified class name is merely the nameD of the class itself. However, if a class is nested within anotherC class, the name of the immediately containing class must precedeD it, separated with a pair of colons (::). If the containing class: is itself nested, its name must be prefixed, and so on.@ The following are examples of properly qualified class names:fE DBG> set break %name 'C::f' ! f is a member of class CB DBG> set break %name 'FOO::BAR::BAZ::g' ! g is a member of BAZ,D ! which is nested in BAR,C ! which is nested in FOO #4 Using_the_Debugger_with_C++_Data@ This section describes how to use the debugger with C++ data. 5 Nonstatic_Data_MembersC This section describes how to refer to data members that are not declaregd static. 6 Noninherited_Data_MembersD To refer to a nonstatic data member that is defined directly in aB C++ class (or a struct or union), use its name just as with a CC language struct or union member. The following example shows the4 correct use of a nonstatic data member reference: DBG> examine x.m, p->m 6 Inherited_Data_MembersC Currently, debugger support distinguishes nonstatic data membersD inherited from various base classes by prefixing their name hs with@ a sequence of significant base class names on the inheritance< path to the member, and then the class that the member isA declared in. A base class on a path from an object to a member? is significant if the base class in question is derived fromA using multiple inheritances. Thus, a base class is significantB if it is mentioned in a base list containing more than one base specifier.D This notation generates the minimum number of base class prefixes> necessary i to describe the inheritance path to a base class,? because it involves naming only those base classes where oneC must choose where to proceed next when traversing the path. When? no multiple inheritance is involved, the reference is of the following form: %name'CLASS::member'A To refer to nonstatic data members inherited from base classesA of an object, quote the sequence of significant qualified base? class names and the member name (separated by double colons)C j with %name. Specify the sequence of significant base classes, inA the order from the object's most derived significant class, toA the significant base class closest to the object. For example,A consider the inheritance graph for the following declarations: struct A { int a_member; };" struct B : A { int b_member; }; struct C { int c_member; };% struct D : B, C { int d_member; };" struct E : D { int e_member; }; struct F { int f_member; };" struct G : F { int kg_member; };% struct H : E, G { int h_member; };" struct I : H { int i_member; };" struct J : I { int j_member; }; static J j_object;C Because classes B, C, E and G are mentioned in base lists, whichA involve multiple inheritance, they are the significant classesD that appear as prefixes. The following examples are references to? all the members through debugger deposit commands. Note that> the class of the inherited member itself appears before the? member namel, regardless of whether or not the member belongs to a significant class. !6 Inherited_Virtual_Data_MembersC In the debugger, symbolic access to data members of virtual baseC classes is currently not supported. The one exception to this isC that the pointer member named __bptr is present in such objects. 5 Static_Data_MembersD To refer to a static data member, quote its qualified class name,9 two colons (::), and then the member name, with %name.D The follomwing examples show the correct use of static data member references: DBG> examine %name 'C::s'* DBG> examine %name 'FOO::BAR::BAZ::sdm' *5 Reference_Objects_and_Reference_MembersA To access the values of objects declared with a reference, use the name of the object.B The debugger treats data members declared with a reference typeB as though they were pointer variables; thus, you must use the *D or -> dereference operators on their names. For example, consider n the following code: class C { public: int &ref_mem;$ C(int &arg) : ref_mem(arg) {} }; main() { auto int obj = 5; auto int &ref_obj = obj; auto C c(obj); obj = 23; } . . . CThe following sequence shows the correct way to use the debugger toexamine the members:* stepped on return from routine REF\main to REF\main\%LINE 13+16 13: } DBG> examine obj, ref_obj REF\main\oobj: 23 REF\main\ref_obj: 23 DBG> examine c REF\main\c ref_mem: 2144211292 DBG> symbolize c.ref_mem address 7FCE1154: REF\main\c DBG> examine *c.ref_mem *REF\main\c.ref_mem: 23 5 Pointers_to_MembersA Objects that are pointers to members are represented as 64-bit integers. 5 Referencing_Entities_by_TypeC To examine and display the value of an object or member by type,D use the command EXAMINE/TYPE. Similarply, you can modify the valueB of an expression to be deposited to a type you specify by usingA the DEPOSIT/TYPE command. With the /TYPE qualifier, the syntax$ for these commands is as follows: deposit/type=(name) examine/type=(name)B The type denoted by name must be the name of a variable or dataD type declared in the program. The /type qualifier is particularlyB useful for referencing C++ objects that have been declared with more than one type. (4 Using_the_Dqebugger_with_C++_Functions? This section describes how to reference the various kinds of$ functions and function arguments. $5 Referring_to_Overloaded_Functions@ To find the symbolic names of functions in your code, use the> SHOW SYMBOL command. If the function is overloaded, use the? asterisk wildcard character (*) in the name specification to' display the overloaded symbol names., For example, consider the following code: class base { public: r base(); base( int ); ~base(); int base_f1(); void base_f2(); void base_f2( int ); void base_f2( char ); };A The following sequence shows how to display overloaded symbols4 and determine the appropriate function reference:' DBG> set break %name 'base::base_f2'; %DEBUG-E-NOTUNQOVR, symbol 'base::base_f2' is overloaded: use SHOW SYMBOL to find the unique symbol names DBG> show symbol *base_f2. overloasded symbol CXX_T10_179\base::base_f25 overloaded instance CXX_T10_179\base::base_f2__15 overloaded instance CXX_T10_179\base::base_f2__25 overloaded instance CXX_T10_179\base::base_f2__3* DBG> set break %name 'base::base_f2__2' DBG> step' stepped to CXX_T10_179\main\%LINE 20 20: x.base_f2(); DBG> step' stepped to CXX_T10_179\main\%LINE 21 21: x.base_f2(5); DBG> step0 break at routine CXX_T10_179\base::base_f2__2% 12: void tbase_f2( int ) {} DBG> step' stepped to CXX_T10_179\main\%LINE 22 22: x.base_f2('W');' stepped to CXX_T10_179\main\%LINE 22 DBG> go! 'Normal successful completion' DBG> ^Z 55 Referring_to_Static_and_Nonstatic_Member_FunctionsB To refer to a member function, quote, with %name, its qualified: class name, two colons (::), and the name of the memberD function. If the member function is overloaded, append the suffix __integer-number.A The follouwing examples show the correct use of member function references:* DBG> set break %name 'MYSTRING::length'L DBG> set break %name 'MYCOMPLEX::format__1', %name 'MYCOMPLEX::format__2' 5 Referring_to_ConstructorsA To refer to a constructor, state the name. If a constructor is2 overloaded, append the suffix __integer-number.= The following examples show the correct use of constructor references: DBG> set break FOO DBG> set break MYSTRING__1 5 Refervring_to_Destructors@ To refer to a destructor, quote its name, including the tilde (~), with %name.> The following example shows the correct use of a destructor reference: DBG> set break %name '~FOO' 5 Referring_to_ConversionsD To refer to conversion operators from a class SRC to a type dest,8 quote SRC, two colons (::), and then dest with %name.D The set of atomic types is drawn from the following set of names:D void char signed_char unwsigned_char signed_shortC unsigned_short int signed_int unsigned_int signed_long3 unsigned_long float double long_double= Pointer types are named (type*). Reference types are named? (type&). The types struct, union class and enum are named byA their tags and the qualifiers const and volatile precede their. types with a space in between. For example:7 DBG> set break %name 'C::int', %name 'C::(const S)&' &5 Referring_to_User-Defined_Operators< x The following operators may be overloaded by user-defined functions:C + - * / % ^ & | ~ !D = < > += -= *= /= %= ^= &=D |= << >> >>= <<= == != <= >= &&E | ++ -- ->* , -> [] () delete newA See Section 7.2 of The Annotated C++ Reference Manual (shipped, with C++ documentation) for more details.> To refer to such user-d yefined functions, quote the operator? characters with %name. As with regular functions, prefix the= string quoted by %name with a qualified class name and twoA colons (::) if the user-defined operator is a member function.> Similarly, if the function is overloaded, append the suffix> __integer_number to the operator characters. In particular,A this suffix is necessary if both unary and binary instances ofB an operator such as + are defined, or if prefix instances of ++ or z- are defined.> The following examples show the correct use of user-defined function references:% DBG> set break %name 'MYSTRING::+'@ DBG> set break %name 'COUNTER::++__1', %name 'COUNTER::++__2' "5 Referring_to_Function_Arguments? In debugger referencing, you use this, *this, and this->m as follows:= o All nonstatic member functions have a pointer parameter( available named this. For example: DBG> examine thisC o Use *this to examine the{ prefix object that a member function& is invoked against. For example: DBG> examine *this? o Use the this parameter to refer to a data member m of the8 prefix argument to a member function. For example: DBG> examine this->m 3 COBOL? The following subtopics describe debugger support for COBOL. $4 Operators_in_Language_Expressions= Supported COBOL operators in language expressions include: Kind Symbol Function Prefix + | Unary plus Infix + Addition! Infix * Multiplication Infix / Division0 Infix ** Exponentiation (VAX specific) Infix = Equal to Infix NOT = Not equal to Infix > Greater than+ Infix NOT < Greater than or equal to Infix < Less than( Infix NOT > Less than or equal to Infix NOT Logical NOT Infix AND Logical AND Infix OR Logical OR 14 Constructs_in_Language_an}d_Address_Expressions? Supported constructs in language and address expressions for COBOL follow: Symbol Construct ( ) Subscripting$ OF Record component selection$ IN Record component selection 4 Data_Types% Supported COBOL data types follow:> COBOL Data Type Operating System Data Type Name6 COMP Longword Integer (L,LU)2 COMP Word Integer (W,WU)6 COMP Qua ~dword Integer (Q,QU)- COMP-1 F_Floating (F). COMP-1 (Alpha specific) S_Floating (FS)- COMP-2 D_Floating (D). COMP-2 (Alpha specific) T_Floating (FT)1 COMP-3 Packed Decimal (P)3 INDEX Longword Integer (L)- Alphanumeric ASCII Text (T)% Records (None)< Numeric Unsigned Numeric string, unsigned (NU)A Leading Separate Sign Numer ic string, left separate sign# (NL)D Leading Overpunched Sign Numeric string, left overpunched sign$ (NLO)B Trailing Separate Sign Numeric string, right separate sign# (NR)@ Trailing Overpunched Sign Numeric string, right overpunched) sign (NRO)A Floating-point numbers of type COMP-1 may be represented by F_? Floating or IEEE S_Floating, depending on compiler switches.A Floating-point numbers of type COMP-2 may be represented by D_? Floating or IEEE T_Floating, depending on compiler switches. 4 Source_DisplayC The debugger can show source text included in a program with theA COPY, COPY REPLACING, or REPLACE statement. However, when COPY@ REPLACING or REPLACE is used, the debugger shows the originalC source text instead of the modified source text generated by the' COPY REPLACING or REPLACE statement.@  The debugger cannot show the original source lines associatedC with the code for a REPORT section. You can see the DATA SECTIONA source lines associated with a REPORT, but no source lines are? associated with the compiled code that generates the report. E4 COBOL_INITIALIZE_Statement_and_Large_Tables_(Arrays)_(Alpha_Only)_? On OpenVMS Alpha systems, the debugger can take an unusuallyD great amount of time and resources if you use the STEP command toB execute an INITIALIZE statement in a COBOL program when a large& table (array) is being initialized.= To work around this problem, set a breakpoint on the first= executable line past the INITIALIZE statement, rather than, stepping across the INITIALIZE statement. 3 DIBOL (VAX only) $4 Operators_in_Language_Expressions= Supported DIBOL operators in language expressions include: Kind Symbol Function Prefix # Round Prefix + Unary plus Infix +  Addition! Infix * Multiplication Infix / Division2 Infix // Division with fractional result Infix .EQ. Equal to Infix .NE. Not equal to Infix .GT. Greater than+ Infix .GE. Greater than or equal to Infix .LT. Less than( Infix .LE. Less than or equal to Infix .NOT. Logical NOT Infix .AND. Logical AND Infix .OR. Logical OR Infix .XOR. Exclusive OR 14 Constructs_in_Language_and_Address_Expressions? Supported constructs in language and address expressions for DIBOL follow: Symbol Construct ( ) Substring [ ] Subscripting( . Record component selection (period) 4 Data_Types% Supported DIBOL data types follow: DIBOL Data2 Type Operating System Data Type Name# I1 Byte Integer (B)# I2 Word Integer (W)' I4 Longword Integer (L), Pn Packed Decimal String (P), Pn.m Packed Decimal String (P)2 Dn Numeric String, Zoned Sign (NZ)2 Dn.m Numeric String, Zoned Sign (NZ)! An ASCII Text (T) Arrays (None) Records (None) 3 FortranA The following subtopics describe debugger support for Fortran. $4 Operators_in_Language_Expressions? Supported Fortran operators in language expressions include: Kind Symbol  Function Prefix + Unary plus Infix + Addition! Infix * Multiplication Infix / Division0 Infix ** Exponentiation (VAX specific) Infix // Concatenation Infix .EQ. Equal to Infix == Equal to Infix .NE. Not equal to Infix /= Not equal to Infix .GT. Greater than Infix > Greater than+ Infix .GE. Greater than or equal to+ Infix >= Greater than or equal to Infix .LT. Less than Infix < Less than( Infix .LE. Less than or equal to( Infix <= Less than or equal to Prefix .NOT. Logical NOT Infix .AND. Logical AND Infix .OR. Logical OR Infix .XOR. Exclusive OR Infix .EQV. Equivalence Infix .NEQV. Exclusive OR 14 Constructs_in_Language_and_Address_Expressions? Supported constructs in language and address expressions for Fortran follow: Symbol  Construct ( ) Subscripting, . (period) Record component selection, % (percent Record component selection sign) 4 Predefined_Symbols/ Supported Fortran predefined symbols follow: Symbol Description .TRUE. Logical True .FALSE. Logical False 4 Data_Types' Supported Fortran data types follow:> Fortran Data Type Operating System Data Type Name1 LOGICAL*1 Byte Unsigned (BU)1  LOGICAL*2 Word Unsigned (WU)5 LOGICAL*4 Longword Unsigned (LU)5 LOGICAL*8 (Alpha Quadword Unsigned (QU) specific)' BYTE Byte (B)/ INTEGER*1 Byte Integer (B)/ INTEGER*2 Word Integer (W)3 INTEGER*4 Longword Integer (L)3 INTEGER*8 (Alpha Quadword Integer (Q) specific)- REAL*4 F_Floating (F)3 REAL*4 (Alpha s pecific) IEEE S_Floating (FS)- REAL*8 D_Floating (D)- REAL*8 G_Floating (G)3 REAL*8 (Alpha specific) IEEE T_Floating (FT)- REAL*16 (Alpha specific) H_Floating (H)- COMPLEX*8 F_Complex (FC)3 COMPLEX*8 (Alpha IEEE S_Floating (SC) specific)- COMPLEX*16 D_Complex (DC)- COMPLEX*16 G_Complex (GC)3 COMPLEX*16 (Alpha IEEE T_Floating (TC) spe cific)- CHARACTER ASCII Text (T)% Arrays (None)% Records (None)= Even though the data type codes for unsigned integers (BU,? WU, LU, QU) are used internally to describe the LOGICAL dataC types, the debugger (like the compiler) treats LOGICAL variables< and values as being signed when they are used in language expressions.A The debugger prints the numeric values of LOGICAL variables orC expressions ins tead of .TRUE. or .FALSE. Normally, only the low-@ order bit of a LOGICAL variable or value is significant (0 isA .FALSE. and 1 is .TRUE.). However, Fortran does allow all bitsA in a LOGICAL value to be manipulated and LOGICAL values can be? used in integer expressions. For this reason, it is at timesB necessary to see the entire integer value of a LOGICAL variable6 or expression, and that is what the debugger shows.D COMPLEX constants such as (1.0,2.0) are not supported in debugger expressions.= Floating-point numbers of type REAL*4 and COMPLEX*8 may be= represented by F_Floating or IEEE S_Floating, depending on compiler switches.> Floating-point numbers of type REAL*8 and COMPLEX*16 may be= represented by D_Floating, G_Floating, or IEEE T_Floating," depending on compiler switches.9 On OpenVMS Alpha systems, the debugger cannot evaluateB expressions that contain complex variables. To work around this> problem, examine the complex variable and then evaluate the? expression using the real and imaginary parts of the complex, variable as shown by the EXAMINE command. 4 Initialization_CodeC When you debug a program that compiled with the /CHECK=UNDERFLOWA or /PARALLEL qualifier, a message appears, as in the following example: DBG> RUN FORMS# Language: FORTRAN, Module: FORMS Type GO to reach main program DBG>= The "Type GO to reach MAIN program" message indicates thatA exe cution is supended before the start of the main program, soC that you can execute initialization code under debugger control.> Entering the GO command places you at the start of the main> program. At that point, enter the GO command again to start> program execution, as with other types of Fortran programs. 3 MACRO-32B The following subtopics describe debugger support for MACRO-32. $4 Operators_in_Language_ExpressionsD The MACRO-32 language does not have expressions  in the same senseC as high-level languages. Only assembly-time expressions and onlyB a limited set of operators are accepted. To permit the MACRO-32D programmer to use expressions at debug-time as freely as in otherB languages, the debugger accepts a number of operators in MACRO-A 32 language expressions that are not found in MACRO-32 itself.C In particular, the debugger accepts a complete set of comparisonA and Boolean operators modeled after BLISS. It also accepts the< indirection operator and the normal arithmetic operators. Kind Symbol Function Prefix @ Indirection Prefix . Indirection Prefix + Unary plus Infix + Addition! Infix * Multiplication Infix / Division Infix MOD Remainder Infix @ Left shift Infix EQL Equal to Infix EQLU Equal to Infix NEQ Not equal to Infix NEQU Not equal to Infix GTR Greater than( Infix GTRU Greater than unsigned+ Infix GEQ Greater than or equal to4 Infix GEQU Greater than or equal to unsigned Infix LSS Less than% Infix LSSU Less than unsigned( Infix LEQ Less than or equal to1 Infix LEQU Less than or equal to unsigned Prefix NOT Bit-wise NOT Infix AND Bit-wise AND Infix OR Bit-wise OR( Infix XOR Bit-wise exclusive OR' Infix EQV Bit-wise equivalence 14 Constructs_in_Language_and_Address_Expressions? Supported constructs in language and address expressions for MACRO-32 follow: Symbol Construct [ ] Subscripting* Bit field selection as in BLISSA The DST information generated by the MACRO-32 assembler treatsA a label that is followed by an assembler directive for storage@ allocation as an array variable whose name is the label. ThisD enables you to use the array syntax of a high-level language when' examining or manipulating such data.C In the following example of MACRO-32 source code, the label LAB44 designates hexadecimal data stored in four words:# LAB4: .WORD ^X3F,5[2],^X3C> The debugger treats LAB4 as an array variable. For example,B the following command displays the value stored in each element (word): DBG> EXAMINE LAB4 .MAIN.\MAIN\LAB4 [0]: 003F [1]: 0005 [2]: 0005 [3]: 003C@ The following command displays the value stored in the fourth3 word (the first word is indexed as element "0"): DBG> EXAMINE LAB4[3] .MAIN.\MAIN\LAB4[3]: 03C 4 Data_Types> MACRO-32 binds a data type to a label name according to theC assembler directive that follows the label definition. Supported MACRO-32 directives follow: MACRO-323 Directives Operating System Data Type Name& .BYTE Byte Unsigned (BU)& .WORD Word Unsigned (WU)* .LONG Longword Unsigned (LU)$ .SIGNED_BYTE Byte Integer (B)$ .SIGNED_WORD Word Integer (W)( .LONG Longword Integer (L)( .QUAD Quadword Integer (Q)" .F_FLOATING F_Floating (F)" .D_FLOATING D_Floating (D)" .G_FLOATING G_Floating (G)2 .H_FLOATING H_Floating (H) (VAX specific)& (Not Packed decimal (P) applicable) 4 MACRO-32_Compiler_(AMACRO)C (Alpha only) Programmers who are po rting applications written inB MACRO-32 to Alpha systems use the MACRO-32 compiler (AMACRO). AB debugging session for compiled MACRO-32 code is similar to thatD for assembled code. However, there are some important differencesB that are described in this section. For complete information onB porting these applications, see the Porting VAX MACRO Code from' OpenVMS VAX to OpenVMS Alpha manual. 5 Code_RelocationA One major difference is the fact that the code is compiled. O n> a VAX system, each MACRO-32 instruction is a single machineA instruction. On an Alpha system, each MACRO-32 instruction mayA be compiled into many Alpha machine instructions. A major sideB effect of this difference is the relocation and rescheduling ofB code if you do not specify /NOOPTIMIZE in your compile command.? After you have debugged your code, you can recompile without& /NOOPTIMIZE to improve performance. 5 Symbolic_Variables? Another major difference be tween debugging compiled code and< debugging assembled code is a new concept to MACRO-2, theD definition of symbolic variables for examining routine arguments.B On VAX systems, when you were debugging a routine and wanted toC examine the arguments, you would typically do something like the following:> DBG> EXAMINE @AP ; to see the argument count= DBG> EXAMINE @AP+4 ; to examine the first arg or5 DBG> EXAMINE @AP ; to see arg count8 DBG> EXAMINE .+4:.+20 ; to see first 5 args? On Alpha systems, the arguments do not reside in a vector inA memory as they did on VAX systems. Furthermore, there is no APD register on Alpha systems. If you type EXAMINE @AP when debuggingD MACRO compiled code, the debugger reports that AP is an undefined symbol.9 In the compiled code, the arguments can reside in some combination of: o Registers2 o On the stack above the routine's sta ck frameD o In the stack frame, if the argument list was "homed" (that is,D placed in the fixed position of the stack frame to resolve VAXB AP references) or if there are calls out of the routine that6 would require the register arguments to be savedA The compiler does not require that you read the generated codeC to locate the arguments. Instead, it provides $ARGn symbols that@ point to the correct argument locations. $ARG0 is the same asA @AP+0 is on VAX syste ms, that is, the argument count. $ARG1 isB the first argument, $ARG2 is the second argument, and so forth.D These symbols are defined in CALL_ENTRY and JSB_ENTRY directives,) but not in EXCEPTION_ENTRY directives. +5 Locating_Arguments_Without_$ARGn_Symbols? There may be additional arguments in your code for which the@ compiler did not generate a $ARGn symbol. The number of $ARGnB symbols defined for a .CALL_ENTRY routine is the maximum number@ detected by the compiler (either by automatic detection or asD specified by MAX_ARGS) or 16, whichever is less. For a .JSB_ENTRY? routine, since the arguments are homed in the caller's stackD frame and the compiler cannot detect the actual number, it always creates eight $ARGn symbols.C In most cases, you can easily find any additional arguments, but in some cases you cannot. $5 Arguments_That_Are_Easy_to_Locate/ You can easily find additional arguments if:C o The argument list is not  homed, and $ARGn symbols are defined@ to $ARG7 or higher. If the argument list is not homed, the> $ARGn symbols $ARG7 and above always point into the list@ of parameters passed as quadwords on the stack. Subsequent? arguments will be in quadwords following the last defined $ARGn symbol.? o The argument list has been homed, and you want to examineB an argument that is less than or equal to the maximum numberC detected by the compiler (either by automatic detection or asB specified by MAX_ARGS). If the argument list is homed, $ARGnC symbols always point into the homed argument list. Subsequent? arguments will be in longwords following the last defined $ARGn symbol.D For example, you can examine arguments beyond the eighth argumentA in a JSB routine (where the argument list must be homed in the caller), as follows:+ DBG> EX $ARG8 ; highest defined $ARGn . . .0 DBG> EX .+4 ; next arg is in next longword . . . DBG> EX .+4 ; and so on= This example assumes that the caller detected at least ten+ arguments when homing the argument list.C To find arguments beyond the last $ARGn symbol in a routine thatA did not home the arguments, proceed exactly as in the previous/ example except substitute EX .+8 for EX .+4. (5 Arguments_That_Are_Not_Easy_to_Locate2 You cannot easily find additional arguments if:C o The argu ment list is homed, and you want to examine argumentsC beyond the number detected by the compiler. The $ARGn symbolsB point to the longwords that are stored in the homed argument? list. The compiler only moves as many arguments as it can@ detect into this list. Examining longwords beyond the lastD argument that was homed will result in examining various other stack context.; o The argument list is not homed, and $ARGn symbols are? defined only as hi gh as $ARG6. In this case, the existingA $ARGn symbols will either point to registers or to quadword= locations in the stack frame. In both cases, subsequentC arguments cannot be examined by looking at quadword locations' beyond the defined $ARGn symbols.? The only way to find the additional arguments in these casesA is to examine the compiled machine code to determine where theB arguments reside. Both of these problems are eliminated if MAX_@ ARGS is specified correctly for the maximum argument that you want to examine. *5 Debugging_Code_with_Floating-Point_DataD The following list provides important information about debugging> compiled MACRO-32 code with floating-point data on an Alpha system:? o You can use the EXAMINE/FLOAT command to examine an Alpha2 integer register for a floating-point value.@ Even though there is a set of registers for floating-point? operations on Alpha systems, those registers  are not used< by compiled MACRO-32 code that contains floating-point< operations. Only the Alpha integer registers are used.= Floating-point operations in compiled MACRO-32 code are> performed by emulation routines that operate outside the= compiler. Therefore, performing MACRO-32 floating-pointC operations on, say, R7, has no effect on Alpha floating-point register 7.? o When using the EXAMINE command to examine a location thatB was declared with a .FLOAT directive or other floating-pointA storage directives, the debugger automatically displays the# value as floating-point data.@ o When using the EXAMINE command to examine the G_FLOAT dataC type, the debugger does not use the contents of two registers& to build the value for VAX data.% Consider the following example: EXAMINE/G_FLOAT R4? In this example, the lower longwords of R4 and R5 are notA used to build the valu e as is the case on VAX. Instead, the' quadword contents of R4 are used.= The code the compiler generates for D_FLOAT and G_FLOAT@ operations preserves the VAX format of the data in the low> longwords of two consecutive registers. Therefore, usingD EXAMINE/G_FLOAT on either of these two registers will not giveC the true floating-point value, and issuing DEPOSIT/G_FLOAT toC one of these registers will not give the desired results. YouC can manually combine the two halves of such a value, however.A For example, assume you executed the following instruction: MOVG DATA, R6C You could then read the G_FLOAT value which now resides in R60 and R7 with a sequence like the following: DBG> EX R60 .MAIN.\%LINE 100\%R6: 0FFFFFFFF D8E640D1 DBG> EX R7/ .MAIN.\%LINE 100\%R7: 00000000 2F1B24DD$ DBG> DEP R0 = 2F1B24DDD8E640D1 DBG> EX/G_FLOAT R0. .MAIN.\%LINE 100\%R0: 4568.89900000000= o You can deposit floating-point data in an Alpha integer? register with the DEPOSIT command. The syntax is the same as it is on VAX. o H_FLOAT is unsupported. *5 Debugging_Code_with_Packed_Decimal_DataD The following list provides important information about debugging> compiled MACRO-32 code with packed decimal data on an Alpha system:C o When using the EXAMINE command to examine a location that wasC declared with a .PACKED directive, the debugger automatically7 displays the value as a packed decimal data type.D o You can deposit packed decimal data. The syntax is the same as it is on VAX.  3 MACRO-64A (Alpha only) The following subtopics describe debugger support for MACRO-64. $4 Operators_in_Language_Expressions@ Language MACRO-64 does not have expressions in the same senseC as high-level languages. Only assembly-time expressions and onlyB a limited set of operator s are accepted. To permit the MACRO-64D programmer to use expressions at debug-time as freely as in otherB languages, the debugger accepts a number of operators in MACRO-A 64 language expressions that are not found in MACRO-64 itself.C In particular, the debugger accepts a complete set of comparisonA and Boolean operators modeled after BLISS. It also accepts the< indirection operator and the normal arithmetic operators. Kind Symbol Function Prefix @ Indirection Prefix . Indirection Prefix + Unary plus Infix + Addition! Infix * Multiplication Infix / Division Infix MOD Remainder Infix @ Left shift Infix EQL Equal to Infix EQLU Equal to Infix NEQ Not equal to Infix NEQU Not equal to Infix GTR Greater than( Infix GTRU Greater than unsigned+ Infix GEQ Greater than or equal to4 Infix GEQU Greater than or equal to unsigned Infix LSS Less than% Infix LSSU Less than unsigned( Infix LEQ Less than or equal to1 Infix LEQU Less than or equal to unsigned Prefix NOT Bit-wise NOT Infix AND Bit-wise AND Infix OR Bit-wise OR( Infix XOR Bit-wise exclusive OR' Infix EQV Bit-wise equivalence 14 Constructs_in_Language_and_Address_Expressions? Supported constructs in language and address expressions for MACRO-64 follow: Symbol Construct* Bit field selection as in BLISS 4 Data_TypesC MACRO-64 binds a data type to a label name according to the dataC directive that follows the label definition. For example, in theC following code fragment, the .LONG data directive directs MACRO-B 64 to bind the longword integer data type to labels V1, V2, and V3: .PSECT A, NOEXE .BYTE 5 V1: V2: V3: .LONG 7< To confirm the type bound to V1, V2, and V3, issue a SHOWA SYMBOL/TYPE command with a V* parameter. The following display results: data .MAIN.\V15 atomic type, longword integer, size: 4 bytes data .MAIN.\V25 atomic type, longword integer, size: 4 bytes data .MAIN.\V36 atomic type, longword integer, size: 4 bytes)( Supported MACRO-64 directives follow: MACRO-643 Directives Operating System Data Type Name& .BYTE Byte Unsigned (BU)& .WORD  Word Unsigned (WU)* .LONG Longword Unsigned (LU)$ .SIGNED_BYTE Byte Integer (B)$ .SIGNED_WORD Word Integer (W)( .LONG Longword Integer (L)( .QUAD Quadword Integer (Q)" .F_FLOATING F_Floating (F)" .D_FLOATING D_Floating (D)" .G_FLOATING G_Floating (G)" .S_FLOATING S_Floating (S) (Alpha specific)" .T_FLOATING T_Floating (T) (Alpha specific)& (Not Packed decimal (P) applicable) 3 Pascal@ The following subtopics describe debugger support for Pascal. $4 Operators_in_Language_Expressions> Supported Pascal operators in language expressions include: Kind Symbol Function Prefix + Unary plus* Infix + Addition, concatenation! Infix * Multiplication Infix / Real division# Infix DIV Integer division Infix MOD Modulus Infix REM Remainder0 Infix ** Exponentiation (VAX specific)! Infix IN Set membership Infix = Equal to Infix <> Not equal to Infix > Greater than+ Infix >= Greater than or equal to Infix < Less than( Infix <= Less than or equal to Prefix NOT Logical NOT Infix AND Logical AND Infix OR Logical OR; The typecast operator (::) is not supported in language expressions. 14 Constructs_in_Language_and_Address_Expressions? Supported constructs in language and address expressions for Pascal follow: Symbol Construct [ ] Subscripting- . (period) Record component selection( ^ Pointer dereferencing (circumflex) 4 Predefined_Symbols. Supported Pascal predefined symbols follow: Symbol Meaning TRUE Boolean True FALSE Boolean False NIL Nil pointer 4 Built-In_Functions. Supported Pascal built-in functions follow: Symbol Meaning SUCC Logical successor PRED Logical predecessor 4 Data_Types& Supported Pascal data types follow:9 Pascal Data Type Operating System Data Type Name. INTEGER Longword Integer (L)- INTEGER Word Integer (W,WU)- INTEGER Byte Integer (B,BU)0 UNSIGNED Longword Unsigned (LU), UNSIGNED Word Unsigned (WU), UNSIGNED Byte Unsigned (BU)( SINGLE, REAL F_Floating (F). REAL (Alpha IEEE S_Floating (FS) specific)( DOUBLE D_Floating (D)( DOUBLE G_Floating (G). DOUBLE (Alpha IEEE T_Floating (FT) specific)( QUADRUPLE (VAX H_Floating (H) specific) BOOLEAN (None)( CHAR ASCII Text (T)+ VARYING OF CHAR Varying Text (VT) SET (None) FILE (None)  Enumerations (None) Subranges (None) Typed Pointers (None) Arrays (None) Records (None) Variant records (None)B The debugger accepts Pascal set constants such as [1,2,5,8..10]1 or [RED, BLUE] in Pascal language expressions.? Floating-point numbers of type REAL may be represented by F_A Floating or IEEE S_Floating, depending on compiler switches or source code attributes.A Floating-po int numbers of type DOUBLE may be represented by D_B Floating, G_Floating, or IEEE T_Floating, depending on compiler& switches or source code attributes. 4 Additional_Information: In general, you can examine, evaluate, and deposit into? variables, record fields, and array components. An exceptionB to this occurs under the following circumstances: if a variable@ is not referenced in a program, the Pascal compiler might notB allocate the variable. If the variable is not a llocated and youB try to examine it or deposit into it, you will receive an error message.@ When you deposit data into a variable, the debugger truncatesB the high-order bits if the value being deposited is larger thanB the variable; the debugger fills the high-order bits with zeros@ if the value being deposited is smaller than the variable. IfB the deposit violates the rules of assignment compatibility, the. debugger displays an informational message.C You can examine  and deposit into automatic variables (within anyD active block); however, because automatic variables are allocated@ in stack storage and are contained in registers, their valuesB are considered undefined until the variables are initialized or assigned a value. 4 Restrictions> Restrictions in debugger support for Pascal are as follows.C You can examine a VARYING OF CHAR string, but you cannot examineD the .LENGTH or .BODY fields using the normal language syntax. ForC example, if VARS is the name of a string variable, the following commands are not supported: DBG> EXAMINE VARS.LENGTH DBG> EXAMINE VARS.BODYA To examine these fields, use the techniques illustrated in the following examples. Use Instead of) EXAMINE/WORD VARS EXAMINE VARS.LENGTH' EXAMINE/ASCII EXAMINE VARS.BODY VARS+2 3 PL-I> The following subtopics describe debugger support for PL/I. $4 Operators_in_Language_Expressions< Supported PL/I operators in language expressions include: Kind Symbol Function Prefix + Unary plus Infix + Addition! Infix * Multiplication Infix / Division! Infix ** Exponentiation Infix || Concatenation Infix = Equal to Infix ^= Not equal to Infix > Greater than+ Infix >= Greater than or equal to+ Infix ^< Greater than or equal to Infix  < Less than( Infix <= Less than or equal to( Infix ^> Less than or equal to Prefix ^ Bit-wise NOT Infix & Bit-wise AND Infix | Bit-wise OR 14 Constructs_in_Language_and_Address_ExpressionsD Supported constructs in language and address expressions for PL/I follow: Symbol Construct ( ) Subscripting+ . Structure component selection (period)# -> Pointer dereferencing 4 Data_Types$ Supported PL/I data types follow:; PL/I Data Type Operating System Data Type NameC FIXED BINARY Byte- (B), Word- (W), or Longword- (L)# Integer. FIXED DECIMAL Packed Decimal (P)* FLOAT BIN/DEC F_Floating (F)* FLOAT BIN/ DEC D_Floating (D)* FLOAT BIN/DEC G_Floating (G)* FLOAT BIN/DEC (VAX H_Floating (H) specific)# BIT Bit (V).  BIT Bit Unaligned (VU)* CHARACTER ASCII Text (T)- CHARACTER VARYING Varying Text (VT)" FILE (None)" Labels (None)" Pointers (None)" Arrays (None)" Structures (None) !4 Static_and_Nonstatic_Variables; Variables of the following storage classes are allocated statically: STATIC EXTERNAL GLOBALDEF GLOBALREF; Variables of the following storage classes are allocated0 nonstatically (on the stack or in registers): AUTOMATIC BASED CONTROLLED DEFINED PARAMETER "4 Examining_and_Manipulating_DataD The following subtopics give examples of the EXAMINE command withC PL/I data types. They also highlight aspects of debugger support that are specific to PL/I. 5 EXAMINE_Command_ExamplesD The following examples show use of the EXAMINE command with a few selected PL/I data types.? o Examine the value of a variable declared as FIXED DECIMAL (10,5): DBG> EXAMINE X PROG4\X: 540.027000 o Examine the value of a structure variable: DBG> EXAMINE PART# MAIN_PROG\INVENTORY_PROG\PART ITEM: "WF-1247" PRICE: 49.95 IN_STOCK: 24= o Examine the value of a pictured variable (note that the6 debugger displays the value in quotation marks): DBG> EXAMINE Q MAIN\Q: "666.3330"B o Examine the value of a pointer (which is the virtual address; of the variable it accesses) and display the value in9 hexadecimal radix instead of decimal (the default): DBG> EXAMINE/HEXADECIMAL P PROG4\SAMPLE.P: 0000B2A4B o Examine the value of a variable with the BASED attribute; in@ this case, the variable X has been declared as BASED(PTR), with PTR its pointer: DBG> EXAMINE X PROG\X: "A"@ o Examine the value of a variable X declared as BASED with aD variable PTR declared as POINTER; here, PTR is associated withD X by the following line of PL/I code (instead of X having been: declared as BASED(PTR) as in the preceding example): ALLOCATE X SET (PTR);: In this case, you examine the value of X as follows: DBG> EXAMINE PTR->X PROG6\PTR->X: "A" 5 Notes_on_Debugger_Support= Note the follow ing points about debugger support for PL/I.C You cannot use the DEPOSIT command with entry or label variablesB or formats, or with entire arrays or structures. You cannot use@ the EXAMINE command with entry or label variables or formats;- instead, use the EVALUATE/ADDRESS command.@ You cannot use the EXAMINE command to determine the values orC attributes of global literals (such as GLOBALDEF VALUE literals)A because they are static expressions. Instead, use the EVALUATE  command.= You cannot use the EXAMINE, EVALUATE, and DEPOSIT commands? with compile-time variables and procedures. However, you canA use EVALUATE and DEPOSIT (but not EXAMINE) with a compile-time> constant, as long as the constant is the source and not the destination.> Note that an uninitialized automatic variable does not have> valid contents until after a value has been assigned to it.> If you examine it before that point, the value displayed is unpredictable .< You can deposit a value into a pointer variable either byC depositing another pointer's value into it, thus making symbolicA reference to both pointers, or by depositing a virtual addressB into it. (You can find out the virtual address of a variable byD using the EVALUATE/ADDRESS command, and then deposit that address> into the pointer.) When you examine a pointer, the debugger? displays its value in the form of the virtual address of the' variable that the pointer poi nts to.A The debugger treats all numeric constants of the form n or n.n@ in PL/I language expressions as packed decimal constants, notC integer or floating-point constants, in order to conform to PL/IA language rules. The internal representation of 10 is therefore( 0C01 hexadecimal, not 0A hexadecimal.A You can enter floating-point constants using the syntax nEn or n.nEn.@ There is no PL/I syntax for entering constants whose internal= representation is Longword Integer. This limitation is notC normally significant when debugging, since the debugger supportsC the PL/I type conversion rules. However, it is possible to enterA integer constants by using the debugger's %HEX, %OCT, and %BINB operators, because nondecimal radix constants are assumed to beB FIXED BINARY. For example, the EVALUATE/HEXADECIMAL 53 + %HEX 0 command displays 00000035. 3 RPG_II@ (VAX only) The follow subtopics describe debugger support for RPG II. $4 Operators_in_Language_Expressions@ The following operators are supported in language expressions& when the language is set to RPG II: Kind Symbol Function Prefix + Unary plus Infix + Addition! Infix * Multiplication Infix / Division Infix = Equal to Infix NOT = Not equal to Infix > Greater than+ Infix NOT < Greater than or equal to Infix < Less than( Infix NOT > Less than or equal to Prefix NOT Logical NOT Infix AND Logical AND Infix OR Logical OR 14 Constructs_in_Language_and_Address_ExpressionsC Supported constructs in language and address expressions for RPG II follow: Symbol Construct ( ) Subscripting 4 Data_Types& Supported RPG II data types follow:5 RPG II Data Type Operating System Data Type Name* Longword binary Longword Integer (L) numeric& Word binary Word Integer (W) numeric( Packed decimal Packed Decimal (P)$ Character ASCII Text (T)2 Overpunched Right Overpunched Sign (NRO) decimal Arrays (None) Tables (None) %4 Setting_Breakpoints_or_Tracepoints= With RPG II programs, you can set breakpoints using source< line numbers, logic cycle labels, user-defined tag names,? and subroutine labels. Debugging RPG II programs is somewhat@ different from debuggin g programs in other languages, and theB additional topics explain where and how you can set breakpoints or tracepoints. 5 SpecificationsB The following paragraphs describe where you can set breakpoints: (or tracepoints) in specifications, using line numbers.A The RPG II program cycle determines the order in which program@ lines are processed. When setting breakpoints or tracepoints,A you can reference the line numbers that RPG II assigns to your? program and appea r in a listing file or in a debugger sourceD display. The line numbers you specify in columns 1 through 5 of a specification are not used. C The compiler assigns line numbers only to certain specificationsD at specific points in the logic cycle; therefore, you can specify= a breakpoint or tracepoint at these points in the program:= o A breakpoint at a File Description specification occurs@ before an input or update file is opened or just before an@ output fil e is created. The line number of this breakpoint@ corresponds to the File Description specification for this file.> o A breakpoint at an Input specification occurs before the@ fields are loaded with data from a record. The line numberC of this breakpoint corresponds to the record definition in an Input specification.6 o You can set two breakpoints for each CalculationC specification. The first breakpoint occurs just after testing@ control-leve l indicators, if used, and just before testing@ conditioning indicators. The second breakpoint occurs justD before executing the operation code. Use the following syntax:, SET BREAK line-number.statement-numberA For example, assume that a Calculation specification beginsD with line number 25. The SET BREAK 25.1 command enables you toC test indicators. The SET BREAK 25.2 command puts a breakpointB just before the operation code is executed. If a Calculati onA specification has no conditioning indicators, the SET BREAKD 25 command puts a breakpoint just before the operation code is executed.= You can specify statement numbers only with Calculation7 specifications that have conditioning indicators.> o A breakpoint at an Output specification occurs after theC output buffer has been built but before the record is output.A The line number of the breakpoint corresponds to the record, definition in an Output specification. 5 LabelsC You can specify an RPG II label as a breakpoint or a tracepoint.C The following RPG II labels, which correspond to specific points? in the logic cycle, are provided in addition to user-defined@ tags. Note that these labels do not appear in the source codeD but are accessible from the debugger. The labels do appear in the machine code listing. RPG II2 Label Description and Breakpoint Behavior? *DETL Breaks just before outputting heading and detail linesB *GETIN Breaks just before reading the next record from the( primary or secondary fileD *TOTC Breaks just before performing total-time calculations> *TOTL Breaks just before performing total-time output< *OFL Breaks just before performing overflow output8 *DETC Breaks just before performing detail-time calculations For example: DBG> SET BREAK *TOTL 4 EXAMINE_Command? The EXAMINE command enables you to look at the contents of aB variable, the current table entry, an array element, or the I/O buffer.; To examine an array variable, use array syntax as in the following example:< DBG> EXAMINE ARR3(9) ! Display element 9 of array ARR3? DBG> EXAMINE ARRY(1:7) ! Display elements 1-7 of array ARRY; Specifying a table name enables you to examine the entry, retrieved from the last LOOKUP operation.A To display the contents of the I/O buffer, specify the name of? the input file, update file, or output file, followed by the? string $BUF. For example, the following command displays the7 contents of the I/O buffer for the input file INPUT: DBG> EXAMINE INPUT$BUFD The following command displays the ASCII equivalent of the string& STRING, which is 6 characters long: DBG> EXAMINE/ASCII:6 STRINGC To examine a variable which contains the at sign (@), use %NAME as follows: DBG> EXAMINE %NAME 'ITEM@'A To examine a nonexternal indicator, precede it with the string *IN. For example: DBG> EXAMINE *IN56 *IN56: "0"A If an indicator is set off, 0 is displayed. If an indicator is set on, 1 is displayed.D You cannot examine external indicators in this manner. To examine@ external indicators, you must first link the program with the= /NOSYSSHR qualifier; then, use the CALL command, as in the4 following example which displays the value of U5: DBG> CALL RPG$EXT_INDS(5) value returned is 0 4 DEPOSIT_Command< Note the following points when using the DEPOSIT command:@ o You can deposit a single value into an element of an arrayD using array syntax as in the following example, which deposits0 the value 150 into element 2 of array ARR: DBG> DEPOSIT ARR(2) = 150@ o You can deposit multiple values into an array of character= strings, by using the /ASCII qualifier with the DEPOSITC command. For example, assume PARTS is an array of 10 elementsB in program INV.RPG, each a character string of length 3. TheB following DEPOSIT command deposits the strings P04, P05, andB P06 into elements 4, 5, and 6, respectively, of array PARTS:/ DBG> DEPOSIT/ASCII PARTS(4) = "P04P05P06" DBG> EXAMINE PARTS(4:6) INV\PARTS (4): 'P04' (5): 'P05' (6): 'P06'= o Values deposited into numeric fields are aligned on the@ decimal point. Shorter fields are padded with zeros to the* left and right of the decimal point.C o Values deposited into character fields are left justified. IfC the value contains fewer characters than the character field,3 the field is padded on the right with spaces.? o To set a nonexternal indicator on or off with the DEPOSITD command, precede the indicator with the string *IN. DepositingB the value 1 or 0 sets the indicator on or off, respectively.> For example, the following command sets indicator 56 on: DBG> DEPOSIT *IN56 = "1" 4 EDIT_Command= The EDIT command invokes the RPG II editor rather than the Language-Sensitive Editor. 3 SCANC (VAX only) The following subtopics describe debugger support for SCAN. $4 Operators_in_Language_Expressions< Supported SCAN operators in language expressions include: Kind Symbol Function Prefix  + Unary plus Infix + Addition! Infix * Multiplication Infix / Division Infix & Concatenation Infix = Equal to Infix <> Not equal to Infix > Greater than+ Infix >= Greater than or equal to Infix < Less than( Infix <= Less than or equal to Prefix NOT Complement Infix AND Intersection Infix OR Union Infix XOR Exclusive OR 14 Constructs_in_Language_and_Address_ExpressionsD Supported constructs in language and address expressions for SCAN follow: Symbol Construct ( ) Subscripting( . Record component selection (period)# -> Pointer dereferencing 4 Predefined_Symbols, Supported SCAN predefined symbols follow: Symbol Meaning TRUE Boolean True FALSE Boolean False NIL Nil pointer 4 Data_Types$ Supported SCAN data types follow:3 SCAN Data Type Operating System Data Type Name BOOLEAN (None)( INTEGER Longword Integer (L) POINTER (None)% FIXED STRING TEXT with CLASS=S (n)& VARYING STRING TEXT with CLASS=VS (n)% DYNAMIC STRING TEXT with CLASS=D TREE (None) TREEPTR (None) RECORD (None) OVERLAY (None)= There is no specific support for the following data types: FILE TOKEN GROUP SET 4 Names< You can use the names of the following SCAN constructs in debugger commands: procedures macros constants variables labels 4 Controlling_ExecutionA Note the following points about SCAN breakpoints, tracepoints, and watchpoints. 5 Breakpoints_and_TracepointsA You can set breakpoints and tracepoints on procedures, triggerB macros, syntax macros, and labels, as well as line numbers. For example:< DBG> SET BREAK find_keyword ! break on a trigger macro9 DBG> CANCEL BREAK exit ! cancel break on label8 DBG> SET BREAK compare_trees ! break on a procedure> Conventional breakpoints and tracepoints are not especiallyB convenient for monitoring SCAN's picture matching. Where do you@ set a breakpoint or tracepoint to observe the tokens built byB your program? There is no statement in your program on which to set such a breakpoint.= To solve this problem, VAX SCAN defines several events. By> setting breakpoints or tracepoints on these events, you can( observe the picture matching process.> The following event keywords are defined for SCAN programs: Event Keyword Description# TOKEN A token is built.; PICTURE An operand in a picture is being matched.9 INPUT A new line of the input stream is read.= OUTPUT A new line of the output stream is written.= TRIGGER A trigger macro is starting or terminating.< SYNTAX A syntax macro is starting or terminating.@ ERROR Picture matching error recovery is starting or terminating.@ Use these keywords with the /EVENT qualifier of the following commands:, (SET,CANCEL,ACTIVATE,DEACTIVATE) BREAK, (SET,CANCEL,ACTIVATE,DEACTIVATE) TRACE< For example, the following command sets a breakpoint that& triggers whenever a TOKEN is built: DBG> SET BREAK/EVENT=TOKEN= Recognition of SCAN events is enabled automatically by the> debugger if the main program is written in SCAN. If you are? debugging a program written in another language that calls aC SCAN routine, proceed as follows to set up the SCAN environment:? 1. Enter the SET LANGUAGE SCAN command to enable recognition= of language-dependent operators, expressions, and other0 constructs (see the SET LANGUAGE command).9 2. Enter the SET EVENT_FACILITY SCAN command to enable< recognition of SCAN events (see the SET EVENT_FACILITY> command). The SHOW EVENT_FACILITY command identifies the& current facility and its events. 5 Watchpoints4 Note the following points about SCAN watchpoints:? o Variables declared at MODULE level are static by default.B o Variables declared at PROCEDURE or MACRO level are automatic (nonstatic) by default.A o DYNAMIC STRING variables are dynamically built. The storage> used to hold the value of the string can change when theA value of the string changes. Thus, the storage the debugger@ is watching may not be the correct storage if the string's value is changed. 4 Examining_and_DepositingB The following subtopics explain how to examine and deposit into the following SCAN variables: STRING FILL POINTER TREE TREEPTR RECORD OVERLAY 5 STRING_Variables? If you deposit into a FIXED STRING variable, truncation willD occur if the deposited string is longer than the size established' by the declaration of that variable.A If you deposit into a VARYING STRING variable, truncation will@ occur if the deposited string is longer than the maximum size3 established by the declaration of that variable.A If you deposit into a DYNAMIC STRING variable, truncation willC occur if the deposited string is longer than the current size of the variable.C With FIXED and DYNAMIC STRING variables, if the deposited stringA is shorter than the current size of the variable, the unfilledB portion of the variable will be blank padded to the right, with1 the new string left justified in the variable.? In the case of VARYING STRING variables, the current size ofA the variable storage space will be adjusted to the size of the deposited string. 5 FILL_VariablesA Examining a FILL variable causes the contents of the specified? variable to be displayed as a string, by default, and so mayD have little meaning. If the characteristics (or type) of the fillC are known, the appropriate qualifier applied to the command willC produce a more meaningful display. The following command example? shows a fill x that is known to be a single floating number: DBG> EXAMINE/FLOAT x 5 POINTER_Variables? You can examine a POINTER by name to find the address of theB variable it points to. Use the operator that combines the minusC sign and the greater than symbol to examine the variable that is based on the POINTER./ Consider these declarations and assignments: TYPE symnode: RECORD- ptr: POINTER TO symnode,/ vstr: VARYING STRING( 20 ), END RECORD; DECLARE x : symnode;$ DECLARE xptr: POINTER TO symnode; xptr = POINTER(x); x.vstr = 'prehensile';D The following command displays the value of the vstr component of x: DBG> EXAMINE x.vstr+ POINTER\MAINPOINTER\X.VSTR: 'prehensile'@ The following command displays the value of vstr based on the POINTER: DBG> EXAMINE xptr->.vstr1 POINTER\MAINPOINTER\XPTR->.VSTR: 'prehensile ' 5 TREE_and_TREEPTR_Variables@ You can examine the contents of the nodes in a tree using the following syntax:- EXAMINE tree_variable([subscript], . . . )+ You cannot deposit into a TREE variable.B If you specify the name of a tree with the EXAMINE command, the@ debugger displays the contents of all nodes and leaves of the tree. For example: DBG> EXAMINE votersA You can specify an interior node by entering the subscript for that node. For example: DBG> EXAMINE voters('salem')< You can examine the leaf node in a tree by specifying all7 subscripts leading to the desired leaf. For example:% DBG> EXAMINE voters('salem',ward2)A If you examine a TREEPTR variable, such as cityptr or wardptr,C the debugger displays the address of that tree node. You examine5 what a TREEPTR variable is pointing to as follows: DBG> EXAMINE cityptr-> 5 RECORD_and_OVERLAY_Variables@ If you specify a RECORD by name with the EXAMINE command, all@ components of the RECORD are presented. To examine individual: components of the RECORD, specify the full name of each component.$ The general format is as follows: EXAMINE recordname7 EXAMINE recordname.componentname.componentname . . .C You examine an OVERLAY in the same way. All components are againC presented; thus, if a four-byte region is a FILL(4), an INTEGER,B and a VARYING STRING(2), the four bytes will be displayed three different ways. 3 Language_UNKNOWNA The following subtopics describe debugger support for language UNKNOWN. $4 Operators_in_Language_ExpressionsC Supported operators in language expressions for language UNKNOWN follow: Kind Symbol Function Prefix + Unary plus Infix + Addition! Infix * Multiplication Infix / Division0 Infix ** Exponentiation (VAX specific) Infix & Concatenation Infix // Concatenation Infix = Equal to Infix <> Not equal to Infix /= Not equal to Infix > Greater than+ Infix >= Greater than or equal to Infix  < Less than( Infix <= Less than or equal to Infix EQL Equal to Infix NEQ Not equal to Infix GTR Greater than+ Infix GEQ Greater than or equal to Infix LSS Less than( Infix LEQ Less than or equal to Prefix NOT Logical NOT Infix AND Logical AND Infix OR Logical OR Infix XOR Exclusive OR Infix EQV Equivalence 14 Constructs_in_Language_and_Address_Expressions? Supported constructs in language and address expressions for language UNKNOWN follow: Symbol Construct [ ] Subscripting ( ) Subscripting+ . (period) Record component selection& ^ Pointer dereferencing (circumflex) 4 Predefined_Symbols< Supported predefined symbols for language UNKNOWN follow: Symbol Meaning TRUE Boolean True FALSE Boolean False NIL Nil pointer 4 Data_Types@ W hen the language is set to UNKNOWN, the debugger understands? all data types accepted by other languages except a few veryA language-specific types, such as picture types and file types.D In UNKNOWN language expressions, the debugger accepts most scalar' OpenVMS calling standard data types.A o For language UNKNOWN, the debugger accepts the dot-notation< for record component selection. For example, if C is a? component of a record B which in turn is a component of aA record A, then C can be referenced as A.B.C. Subscripts canB be attached to any array components; for example, if B is an4 array, then C can be referenced as A.B[2,3].C.= o For language UNKNOWN, the debugger accepts brackets and@ parentheses for subscripts. For example, A[2,3] and A(2,3) are equivalent. 2 Logical_Names 3 DBG$DECW$DISPLAY@ Specifies the debugger interface (Compaq DECwindows Motif forC OpenVMS or command) or the display devi ce (if you are displaying# the interface on a workstation).C By default, DBG$DECW$DISPLAY is either undefined or has the same@ definition as the application-wide logical name DECW$DISPLAY.@ The Compaq DECwindows Motif for OpenVMS user interface is theD default on workstations. To display the command interface insteadC of the Compaq DECwindows Motif for OpenVMS user interface, enter9 the following definition before starting the debugger: $ DEFINE DBG$DECW$DISPLAY " "A For complete information about the Compaq DECwindows Motif for? OpenVMS user interface, see the debugger's Compaq DECwindows# Motif for OpenVMS documentation. 3 DBG$IMAGE_DSF_PATHA (Alpha only) Specifies the directory in which a separate Debug# Symbol File (.DSF) file resides.= Debugging an executable file that has a separate .DSF file requires the following:D o The name of the .DSF file must match the name of the .EXE file being debugged.B  o You must define DBG$IMAGE_DSF_PATH to point to the directory" that contains the .DSF file. 3 DBGHK$IMAGE_PATHC (Alpha only) Specifies the directory path of .DSF files when youA are using the OpenVMS Alpha System-Code Debugger. For completeD information on using this debugger, see the Writing OpenVMS Alpha Device Drivers in C. 3 DBG$INIT< If the logical name DBG$INIT is defined at the start of aA debugging session, then the file that it translates to is usedC as an initialization file. The commands in the file are executed@ as if the file had been called with the execute procedure (@)C command. This is useful if there is a particular set of commands> that you always execute when you start up the debugger, forC example to specify a source directory search list, enable screen mode, log the session. Example: $ CREATE MY_DEBUG.COM SET SOURCE SYS$DISK:[],SRC$ SET MODE SCREEN SET STEP SILENT . . . . $ DEFINE DBG$INIT [JONES.CMD]DEBUG_INIT.COM 3 DBG$INPUT_and_DBG$OUTPUTB The value of the logical name DBG$INPUT determines the debugger/ input device. By default, this is SYS$INPUT.C The value of the logical name DBG$OUTPUT determines the debugger1 output device. By default, this is SYS$OUTPUT.= If you plan to debug a program that takes its input from a@ file and your debugger input from the terminal, establish the6 following definitions before starting the debugger:( $ DEFINE SYS$INPUT program-input-file7 $ DEFINE/PROCESS DBG$INPUT 'F$LOGICAL("SYS$COMMAND"); That is, define DBG$INPUT to point to the translation of SYS$COMMAND.@ If you define DBG$INPUT to point to SYS$COMMAND, the debugger+ will try to get its input from the file. 2 MessagesB To get help about a debugger message, use the following general command format:( DBG> HELP Messages message-identifier@ where message-identifier is the keyword displayed to the left> of the message text. The additional topics list all message identifiers alphabetically.9 The following information is provided for each message: identifier: message text, explanation, and user action. 3 ExampleD For example, suppose the debugger displays the following message: Language: BASIC, Module: TEST= In this example, the message identifier is INITIAL. To get? information about this message, enter the following command: DBG> HELP Messages INITIAL 3 Message_FormatD The following example shows the elements of a debugger diagnostic message:; %DEBUG-W-NOSYMBOL, symbol 'X' is not in the symbol table( 1 2 3 4 1 The facility name (DEBUG).. 2 The severity level (W, in this example).= 3 The message identifier (NOSYMBOL, in this example). The@ message identifier is an abbreviation of the message text. 4 The message text.; The identifier enables you to find the explanation for a> diagnostic message from the debugger's online help (and the$ action you need to take, if any). 3 Severity_Levels> The possible severity levels for diagnostic messages are as follows: S (success) I (informational) W (warning) E (error) F (fatal, or severe error)B Success and informational messages inform you that the debugger has performed your request.C Warning messages indicate tha t the debugger might have performedD some, but not all, of your request and that you should verify the result.C Error messages indicate that the debugger could not perform your? request, but that the state of the debugging session was notA changed. The only exceptions are if the message identifier wasC DBGERR or INTERR. These identifiers signify an internal debuggerD error, and you should contact your Compaq support representative.C Fatal messages indicate that the debugger could not perform your@ request and that the debugging session is in an indeterminate? state from which you cannot recover reliably. Typically, the$ error ends the debugging session. 3 ABORTCMD3aborting command due to kernel debugger termination Facility: DEBUG, VMS Debugger= Explanation: The kernel debugger terminated so the current command was aborted.@ User Action: Check the reason the kernel debugger terminated. 3 ABORTEDcommand aborted by user request Facility: DEBUG, VMS Debugger? Explanation: The command being executed was stopped when you typed CTRL-C.$ User Action: No action necessary. 3 ABSDATSYNabsolute date-time syntax error Facility: DEBUG, VMS DebuggerB Explanation: The date-time value could not be converted because& it is not in the proper VMS format.B User Action: Re-enter the date-time value using the correct VMS date-time format. 3 ACCADDCOM9access violati on in address computation for address_value Facility: DEBUG, VMS DebuggerB Explanation: The address computation for the specified variable> resulted in an access violation. This normally means that aC register value or a descriptor needed in the address computation! is uninitialized or corrupted.B User Action: If the necessary register or descriptor is not yetB initialized, the variable is not available at this point in theA code. If the register or descriptor is corrupted, the cause of. this error should be located and corrected. 3 ACTIVATINGprogram is activating Facility: DEBUG, VMS Debugger: Explanation: The process process-specification has just@ activated, and is now connected to the main debugger. Any SET@ BREAK/ACTIVATING or SET TRACE/ACTIVATING events will now take effect.B User Action: Submit an SPR. This message is handled internally,, and should never be signaled to the user. 3 ADDRANCOVCaddress range covers more than one module address_value is in path_"name address_value is in path_name Facility: DEBUG, VMS Debugger9 Explanation: The address range specified in a debugger@ EXAMINE/SOURCE command covers more than a single module. ThisA is not allowed. The start address CZ is in module mod1 and the% end address yyy is in module mod2.@ User Action: Re-enter the command with a valid address range. 3 ADDRESSMODE6instruction uses illegal or undefined addressing modes Facility: DEBUG, VMS Debugger 3 ADDRMBZ/a must-be-zero field in an address was not zero Facility: DEBUG, VMS Debugger3 Explanation: This is an internal debugger error.? User Action: If the error is reproducible, submit a Software= Performance Report and, if possible, enclose a copy of the< program being debugged, its build procedure, and a logged/ debugging session that reproduces the error. 3 ADDRREGC& not allowed on register variables: operand bound to register_name Facility: DEBUG, VMS DebuggerA Explanation: The C language & operator could not be applied to@ the given operand because the operand is a register variable.4 This is not allowed in the C language definition.A User Action: Do not use the & operator on a register variable. 3 ALOCMEMERR?error allocating memory for an object in routine function_name. Facility: DEBUG, VMS Debugger> Explanation: The debugger detected an error when allocating memory.A User Action: Try the debugger again, if the same results exist. submit a Software Performance Report (SPR). 3 ALRDYCONNECTED8a debugger has already connected to the desired process. Facility: DEBUG, VMS DebuggerC Explanation: The process you are trying to connect to is alreadyC connected to a debugger (maybe your current debugger). There can$ only be one connection at a time.@ User Action: Check to see if you have already connected (SHOW? PROCESS/ALL) to the desired process. If not, then some otherB debug session is connected to it. Disconnect the other debugger? from the desired process before attempting to reconnect your session. 3 AMBFIELD%field_name is an ambiguous field name Facility: DEBUG, VMS DebuggerC Explanation: The reference to the given field cannot be resolved< because there is more than one field with the given name.D User Action: Fully qualify the reference with a complete name for the desired field. 3 AMBIGQUAL%qualifier qualifier_name is ambiguous Facility: DEBUG, VMS DebuggerD Explanation: The qualifier cannot be resolved to a single option.@ There is more than one option to the command that starts with these characters.; User Action: Add more of the characters to the qualifierA string to make the option unambiguous. The qualifier should be4 unambiguous when it has at least four characters. 3 AMBIGUOUS2'member_name' is ambiguous, matching the following Facility: DEBUG, VMS DebuggerD Explanation: The reference to the given member cannot be resolved= because there is more than one member with the given name.D User Action: Fully qualify the reference with a complete name for the desired member. 3 AMPERSAND#operand of ampersand must be lvalue Facility: DEBUG, VMS DebuggerB Explanation: The C language & operator cannot be applied to theA result of an expression. This is not allowed in the C language definition.: User Action: Do not use the & operator in this context. 3 ANPKERNOTAVAIL=analyze process dump kernel of the VMS debugger not available Facility: DEBUG, VMS DebuggerD Explanation: The analyze process dump kernel for the VMS debugger# is not available on this system.: User Action: Contact your Digital Representative on the availability of this feature. 3 ARGLSTNOREADBargument list for frame frame-addr i s not readable at address arg-addr Facility: DEBUG, VMS DebuggerA Explanation: The debugger is attempting to chain down the call? stack, following frame pointers. The debugger has determinedD that part or all of the argument list for the frame at frame-addrA is not accessible for reading. This argument list lies at arg-D addr. This usually indicates a corrupt frame list, but could alsoB indicate that the program has protected part of memory in which4 the frame lies. I n either case, this is an error.D User Action: Determine what part of your code is writing into theA FP register or overwriting the saved frame pointer on the callC stack (or a preceding saved frame pointer) and correct it. SinceC the debugger looks at the call stack to symbolize addresses, youA may suppress some of these messages by typing the command "SET MODE NOSYMBOLIC". 3 ARGNEEDSCOMCa VMS command must be specified in order to pass arguments in a RUNor RERUN command Facility: DEBUG, VMS DebuggerC Explanation: In order to specify arguments on a VMS run command,@ the command must be specified using a foreign command, or setA using SET COMMAND. This VMS definition must be supplied to the5 Debugger RUN command using the /COMMAND qualifier.C User Action: Supply the proper /COMMAND qualifier along with the /ARGUMENT switch. 3 ASTARGNOREAD<AST arguments for AST frame frame-addr at astarg-addr is notreadable Facil ity: DEBUG, VMS DebuggerA Explanation: The debugger is attempting to chain down the call? stack, following frame pointers. The debugger has determinedB that part or all of the AST argument array for the AST frame at@ frame-addr is not accessible for reading. This vector lies at@ astarg-addr. This usually indicates a corrupt frame list, butD could also indicate that the program has protected part of memory= in which the frame lies. In either case, this is an error.D User  Action: Determine what part of your code is writing into theA FP register or overwriting the saved frame pointer on the callC stack (or a preceding saved frame pointer) and correct it. SinceC the debugger looks at the call stack to symbolize addresses, youA may suppress some of these messages by typing the command "SET MODE NOSYMBOLIC". 3 ASTWASDISABLED*ASTs were disabled, and are still disabled Facility: DEBUG, VMS DebuggerC Explanation: The delivery of asynch ronous system traps ASTs wereB already turned off in your program when the DISABLE AST command was issued. User Action: None 3 ASTWASENABLED(ASTs were enabled, and are still enabled Facility: DEBUG, VMS DebuggerC Explanation: The delivery of asynchronous system traps ASTs wereD already turned on in your program when the ENABLE AST command was issued. User Action: None 3 ATNEEDSENABLE0the /AT qualifier was specified, /ENABLE was not Facilit y: DEBUG, VMS Debugger> Explanation: The /AT qualifier is only appropriate with the /ENABLE qualifier.8 User Action: Reenter the command, specifying /ENABLE. 3 ATTACHED0terminal is now attached to process process_name Facility: DEBUG, VMS DebuggerA Explanation: The control of your terminal is being passed from@ the current process to another process by means of the ATTACH command. User Action: None 3 ATTREQREFattach request refused Fac ility: DEBUG, VMS Debugger? Explanation: The specified process could not be attached to.B Either it was not detached or it did not belong to the caller's job.A User Action: Ensure that the specified process is detached and belongs to the caller's job. 3 BADADDSPA:attempted to compare addresses in different address spaces Facility: DEBUG, VMS Debugger3 Explanation: This is an internal debugger error.? User Action: If the error is reproducible, submit a  Software= Performance Report and, if possible, enclose a copy of the< program being debugged, its build procedure, and a logged/ debugging session that reproduces the error. 3 BADADDSTACattempted to compare addresses with different address states, error'occurred comparing address with address Facility: DEBUG, VMS Debugger3 Explanation: This is an internal debugger error.? User Action: If the error is reproducible, submit a Software= Performance Report and, if possible, enclose a copy of the< program being debugged, its build procedure, and a logged/ debugging session that reproduces the error. 3 BADBODPACKCincorrect package spec name in body-spec spec-name, module mod-name Facility: DEBUG, VMS Debugger? Explanation: The compiler has generated invalid Debug Symbol Table information.C User Action: Please submit a Software Performance Report against the compiler. 3 BADDESCR8descriptor for 'symbol_name' is bad or is not set up yet Facility: DEBUG, VMS Debugger? Explanation: The descriptor for the given symbol points into. memory that cannot be read by the Debugger.' User Action: Correct the descriptor. 3 BADDISCVAL<incorrect value of tag_value in discriminant field tag_name. Facility: DEBUG, VMS DebuggerA Explanation: The discriminate value you gave was out of range.> User Action: Supply a discriminate value that is within the correct range.  3 BADDST0bad Debugger Symbol Table (DST) (compiler error) Facility: DEBUG, VMS Debugger? Explanation: The debugger has detected an error in the DebugD Symbol Table of your program. This indicates an internal error in6 either the debugger or the compiler of this module.B User Action: Please submit a Software Performance Report (SPR). 3 BADEVNPAR:parameter does not have permitted data type for this event Facility: DEBUG, VMS Debugger? Explanation: The event you specified cannot be used with theB specified symbol. For example, you cannot specify the RUN event@ except on TASK type symbols. Please see the documentation forD details on which events can be specified with which symbol types.? User Action: Specify the correct symbol type for this event. 3 BADEXH*the user-mode exit handler list is corrupt Facility: DEBUG, VMS DebuggerB Explanation: While walking the list of user-mode exit handlers,; the debugger detected a forward link which pointed to an# inaccessible exit control block.A User Action: Check for a call to the SYS$DCLEXH system service> that specifies an illegal exit control block argument. AlsoB verify that exit control blocks are not getting corrupted later in the program. 3 BADFRAME@bad FP or bad saved FP at pointer-addr in call stack, can't readframe near frame-addr Facility: DEBUG, VMS DebuggerA Explanation: The debugger is attempting to chain down t he call@ stack, following frame pointers. The FP register (if pointer-= addr is "FFFFFFFF") or the saved frame pointer at location? pointer-addr points to a frame at least part of which is not, read accessible near location frame-addr.D User Action: Determine what part of your code is writing into theA FP register or overwriting the saved frame pointer on the callC stack (or a preceding saved frame pointer) and correct it. SinceC the debugger looks at the call stack to symbolize addresses, youA may suppress some of these messages by typing the command "SET MODE NOSYMBOLIC". 3 BADHANDLE,non-existent object handle passed to routine Facility: DEBUG, VMS Debugger< Explanation: The debugger uses object handles for passingA information around within itself. The debugger has used a non-? existent or corrupt handle for an operation. The user should never see this message.; User Action: Submit a Software Performance Report (SPR). 3 BADINCAR+the target system has the wrong incarnation Facility: DEBUG, VMS DebuggerC Explanation: After a network failure, the debugger has attemptedB to re-connect to the target system. However, the target systems? incarnation value does not match the last known incarnation,@ therefore this debug session is no longer valid. This is most- likely due to the target system rebooting.B User Action: Start up the debugger and target system again from scratch. 3 BADOPCODEopcode opcode_name is unknown Facility: DEBUG, VMS Debugger= Explanation: The opcode opcode_name specified as a command@ parameter is unknown to the debugger. It may be the case thatB an opcode synonym has been specified which is not recognized by the debugger.C User Action: Specify a valid opcode or specify an opcode synonym that the debugger recognizes. 3 BADPARAMbad parameter value Facility: DEBUG, VMS DebuggerB Explanation: This message indicates an internal debugger error.; User Action: Submit a Software Performance Report (SPR). 3 BADSCOPE-invalid pathname path_name, SCOPE not changed Facility: DEBUG, VMS Debugger> Explanation: The scope path_name specified in the SET SCOPE4 command contained a pathname that does not exist.& User Action: Specify a valid scope. 3 BADSIGARGCbad sigarg pointer at pointer-addr or bad sigarg vector, can't readsigarg vector near sigarg-addr  Facility: DEBUG, VMS DebuggerA Explanation: The debugger is attempting to chain down the callD stack, following frame pointers, and has encountered an exception@ handler. The signal argument pointer at location pointer-addrC points to a signal argument vector at least part of which is not- read accessible near location sigarg-addr.? User Action: Determine what part of your code is overwriting@ the stored signal argument pointer on the call stack, or partB of the signal argument vector itself, and correct it. Since theC debugger looks at the call stack to symbolize addresses, you mayB suppress some of these messages by typing the command "SET MODE NOSYMBOLIC". 3 BADSTACK:WARNING: stack corrupted; session integrity not guaranteed Facility: DEBUG, VMS Debugger> Explanation: While walking the call stack, the debugger hasD determined that the stack is corrupted. The debugger will attemptD to establish some context and give th e user control. Continuation< in the presence of a corrupted stack typically results in/ unpredictable program and debugger behavior.; User Action: See the secondary message, if any, for moreA information. Look at what little valid information is left and? then start over. Attempt to find and fix the point where the> stack gets corrupted. It may be possible to examine program@ state, but continuing instruction execution typically results2 in unpredictable program and debugger behavior. 3 BADSTARTPC"cannot start from PC address_value Facility: DEBUG, VMS DebuggerC Explanation: Location address_value is not an accessible address> and therefore cannot be executed. This is often caused when> a GO command with no address specification is entered after? the program has terminated. The debugger tries to execute an6 instruction at location 0, which is not accessible.C User Action: Specify a different address specification in the GOC  command or, if the program has terminated, you can exit from the> debugger and initiate the program with the DCL command RUN. 3 BADSTATUS%bad status returned from routine-name Facility: DEBUG, VMS DebuggerD Explanation: The debugger got an unexpected error status from the. system service or RTL routine routine-name.= User Action: Examine the error message and consider if the@ problem is related to a lack of quota or otherwise related toC your program's behavior. If so, then take corrective action. If,B after this evaluation, you believe that the problem lies in the7 debugger, then submit a Software Performance Report. 3 BADSUBPAR=incorrect parent name in subunit sym-name, in module mod-name Facility: DEBUG, VMS Debugger? Explanation: The compiler has generated invalid Debug Symbol Table information.A User Action: Please submit a Software Performance Report (SPR) against the compiler. 3 BADTAGVAL3incorrect value of tag_value in tag field tag_name. Facility: DEBUG, VMS Debugger8 Explanation: The tag value you gave was out of range.> User Action: Supply a tag that is within the correct range. 3 BADTARGET1target location protected, cannot perform deposit Facility: DEBUG, VMS DebuggerC Explanation: The target address of the DEPOSIT command cannot be; made writeable. The DEPOSIT command cannot be performed. User Action: None. 3 BADUSEPACKAincorrect package name in use clause use-name, module module-name Facility: DEBUG, VMS Debugger? Explanation: The compiler has generated invalid Debug Symbol Table information.C User Action: Please submit a Software Performance Report against the compiler. 3 BADUSREVNT9bad user-specified event table or event entry in user RTL Facility: DEBUG, VMS DebuggerC Explanation: The debugger has detected an internal inconsistencyA in the event tables of the Run Time  Library. This indicates anA internal error in either the debugger or the Run Time Library.< User Action: Please submit a Software Performance Report. 3 BADWATCH,cannot watch protected address address_value Facility: DEBUG, VMS DebuggerB Explanation: A SET WATCH command specified a protected address.; Note that you cannot place a watchpoint on a dynamically? allocated variable because these variables are stored on the stack.6 User Action: Do not use wat!chpoint on this address. 3 BADWIDGET<the debugger can not write to the command dialog box, is not initialized. Facility: DEBUG, VMS DebuggerD Explanation: The debugger got an unexpected status when trying toC write to the command dialog box. This prevents the debugger from continuing this session.A User Action: Try the debugger again, if the same results exist. submit a Software Performance Report (SPR). 3 BASVARNOTSETbase variable not set up yet " Facility: DEBUG, VMS Debugger> Explanation: The pointer to the based variable has not been@ set up by an ALLOCATE statement. Without a valid pointer, the reference cannot be made.? User Action: Execute the ALLOCATE statement that defines the> pointer for this based variable and then use the pointer to$ dereference the desired variable. 3 BEPOSITIVE/length 'number_value' must be greater than zero Facility: DEBUG, VMS Debugger> Explanation: The specified le#ngth expression yielded a non-B positive value, in a context in which that does not make sense.C User Action: Enter a length expression that yields a value which is greater than zero. 3 BITRANGEbit range out of limits Facility: DEBUG, VMS DebuggerB Explanation: The EVALUATE command specified a bit field that is too wide.@ User Action: The low limit of the bit field is 0 and the high* limit is 31; the maximum range is 31:0. 3 BKPTNOTFOUND$error $searching for this breakpoint. Facility: DEBUG, VMS DebuggerB Explanation: The debugger detected and error when searching forC the existence of the breakpoint in the list current breakpoints.A User Action: Try the debugger again, if the same results exist. submit a Software Performance Report (SPR). 3 BPTDIFMOD9breakpoint or tracepoint being set in a different module. Facility: DEBUG, VMS Debugger> Explanation: The specified line number was not found in the%@ current module. Consequently, Debug is setting the breakpoint@ or tracepoint in a module later in the call stack or in a set module not on the call stack.B User Action: If the breakpoint or tracepoint was intended to beA set in the current module, cancel the breakpoint or tracepoint3 and specify a line number in the current module. 3 BPTONDATA3execution breakpoint or tracepoint set on data item Facility: DEBUG, VMS Debugger@ Explanation: The command reques&ted a breakpoint or tracepoint> for a data item. Typically breakpoints are set only on code locations.* User Action: See the following message. 3 BUFFEROVFbuffer overflow Facility: DEBUG, VMS DebuggerB Explanation: This message indicates an internal debugger error.; User Action: Submit a Software Performance Report (SPR). 3 BUFOVRFLOW.an internal buffer overflow has been detected. Facility: DEBUG, VMS DebuggerA Explanation: The size of an i'nternal buffer is insufficient to perform this operationB User Action: Please submit a Software Performance Report (SPR). 3 BUTTONEXISTS-button !AC already exists in the button list. Facility: DEBUG, VMS Debugger 3 BUTTONNOTFOUND0button !AC not found in the internal button list Facility: DEBUG, VMS Debugger 3 BUTTONTOOMANY7too many buttons, cannot generate a unique button name. Facility: DEBUG, VMS Debugger 3 BWLGISMUSDB, W, L, G, I,( or S must precede ^ for operand number operand_number Facility: DEBUG, VMS Debugger? Explanation: You must specify the type of offset as either BB (byte), W (word), or L (longword). You must specify the type ofD literal as either I (immediate) or S (short). You may specify the" addressing mode as G (general).C User Action: Enter the instruction again, specifying the operand using one of the above modes. 3 CALLDONEcall to user program complete Facility:) DEBUG, VMS Debugger? Explanation: This signal is generated by the debugger kernel" after a called routine returns.B User Action: Submit an SPR. This message is handled internally,, and should never be signaled to the user. 3 CALLINGNONSTATIC6calling non-static member function in a static fashion Facility: DEBUG, VMS Debugger= Explanation: You are attempting to use the CALL command to? call a non-static member function using a static syntax, eg.D Class::Fu*nc. This may result in incorrect parameters being passed= to the called routine, resulting in unpredictable results.A User Action: Use a non-static syntax when calling the routine, eg. Obj.Func() 3 CANBRKWAT;cancel it and set a watchpoint if that is what was intended Facility: DEBUG, VMS DebuggerB Explanation: If you intended to get notified when the specified@ location was modified rather than executed, then a watchpoint1 should have been set rather than a br+eakpoint.= User Action: If a watchpoint was intended, then cancel the# breakpoint and set a watchpoint. 3 CANTACCESSMAINcannot access the main debugger Facility: DEBUG, VMS DebuggerD Explanation: The kernel debugger cannot access the main debugger.= The reason is given in the message following this message.C User Action: Correct the problem given by the messages followingC this message. If the problem cannot be solved, submit a Software Performance R,eport (SPR). 3 CANTBLDATTRLIST,cannot build an ACA Services attribute list. Facility: DEBUG, VMS DebuggerB Explanation: Debug could not build the attribute list needed toB invoke an ACA Services function. The ACA Services function will not be executed.; User Action: Submit a Software Performance Report (SPR). 3 CANTCREATEMAIN(could not create the debugger subprocess Facility: DEBUG, VMS Debugger: Explanation: An error occurred while trying to crea-te aA subprocess to run the sharable main debugger image. The reason2 is given in the message following this message.C User Action: Correct the problem given by the messages followingC this message. If the problem cannot be solved, submit a Software Performance Report (SPR). 3 CANTDELLNM%unable to delete logical logical name Facility: DEBUG, VMS DebuggerB Explanation: The debugger process lacks the privleges necessary to delete this logical.> User Ac.tion: Deassign the logical and redefine it in a less1 privleged table and mode, e.g. /job/user_mode. 3 CANTFINDELEM8cannot retrieve optional arguments to the DEBUG message. Facility: DEBUG, VMS Debugger> Explanation: Optional arguments were specified to the DEBUGA message however Debug cannot retrieve these arguments from ACA Services.; User Action: Submit a Software Performance Report (SPR). 3 CANTFREEATTRLIST1cannot deallocate an ACA Services attribut/e list. Facility: DEBUG, VMS DebuggerD Explanation: Debug could not deallocate the attribute list needed& to invoke an ACA Services function.$ User Action: No action necessary. 3 CANTGETFIDBcannot get file-id for image file opened on channel channel-number Facility: DEBUG, VMS DebuggerA Explanation: An error occurred while trying to get the file-idD of the image file opened on channel channel-number. The reason is/ given in the message following this mes0sage.C User Action: Correct the problem given by the messages followingC this message. If the problem cannot be solved, submit a Software Performance Report (SPR). 3 CANTGETLISTCNT/cannot retrieve the list count on an item list. Facility: DEBUG, VMS DebuggerD Explanation: An item list was secified in an ACA Services messageD to Debug, however, in the course of processing the message, DebugB could not retrieve the count of the number of items in the list f1rom ACA Services.; User Action: Submit a Software Performance Report (SPR). 3 CANTGETMAINFID<cannot get file-id for the main image file opened on channelchannel-number Facility: DEBUG, VMS DebuggerD Explanation: An error occurred while trying to get the file-id ofC the main image file opened on channel channel-number. The reason2 is given in the message following this message.C User Action: Correct the problem given by the messages following@ this message.2 Note that trying to debug a remote image is NOT? currently supported. If you are not trying to debug a remote< image and the problem cannot be solved, submit a Software Performance Report. 3 CANTINTPROcannot interrupt process !AC Facility: DEBUG, VMS Debugger> Explanation: The debugger could not interrupt the specifiedA process because it was deleted. This message usually indicatesB that the specified process terminated abnormally-either via the- DCL STOP co3mmand or via a call to $DELPRC.D User Action: The debugger failed to interrupt the process. UnlessA the reason for this is apparent, submit a Software Performance Report (SPR). 3 CANTOPNIMG>cannot open image image_name (File: device_name:(file_id,file_ id,file_id)) Facility: DEBUG, VMS DebuggerB Explanation: The information the debugger needs to allow you toC debug this section of code is in an image file that could not be opened.D User Action: Check fo4r the existence of the specified file and/or- its associated file protection attributes. 3 CANTPAST!cannot paste to read-only window. Facility: DEBUG, VMS DebuggerC Explanation: The window which has the input focus is a read-only2 window. You cannot paste to a read-only window.D User Action: Assign the input focus to a writeable window and, if3 applicable, to the appropriate text-entry field. 3 CANTREGSERVER0could not register Debug as ACA Services serve5r. Facility: DEBUG, VMS DebuggerB Explanation: Debug could not register itself as an ACA Services Server.B User Action: Verify that ACA Services is installed and that theC Control Server is running on the current system. If ACA Services@ is installed and the Control Server is running on the currentD system and this problem still exist, submit a Software Performace? Report, otherwise install ACA Services and start the Control Server. 3 CANTUNREGSERVER2coul6d not unregister Debug as ACA Services server. Facility: DEBUG, VMS DebuggerD Explanation: Debug could not unregister itself as an ACA Services Server.D User Action: Use ACA Services command, STOP SERVER, to unregister# Debug as an ACA Services server. 3 CIRCSTK*circular stack at frame address frame-addr Facility: DEBUG, VMS DebuggerA Explanation: The debugger is attempting to chain down the callD stack, following frame pointers. The debugger has determi 7ned that; the linked frames loop back on themselves at frame-addr.D User Action: Determine what part of your code is writing into theA FP register or overwriting the saved frame pointer on the callC stack (or a preceding saved frame pointer) and correct it. SinceC the debugger looks at the call stack to symbolize addresses, youA may suppress some of these messages by typing the command "SET MODE NOSYMBOLIC". 3 CIREXLST@command aborted after number_of_handlers exi8t handlers displayed$circular exit handler list suspected Facility: DEBUG, VMS Debugger; Explanation: After displaying information about 100 exit@ handlers, the debugger suspects a circular exit handler list.> User Action: If there is a circular exit handler list, then6 identify and correct the error in the user program. 3 CLIBRDFAIclipboard operation failure Facility: DEBUG, VMS DebuggerD Explanation: One of the DECtoolkit clipboard routines has failed.?9 The attempt to write to the clipboard may not have completed successfully.D User Action: Verify that the clipboard contains the data that you< wrote to it. If it does not, attempt the operation again. 3 CLIBRDLCKclipboard locked Facility: DEBUG, VMS Debugger@ Explanation: Some other DECWINDOWS application has locked the clipboard.A User Action: Wait until the other application has released the clipboard. 3 CMDBUFFERR!error in the command b:uffer size. Facility: DEBUG, VMS Debugger= Explanation: The debugger detected an error when trying to? process the input command. Debug determined that the command8 buffer size was to small to store the command buffer.A User Action: Try the debugger again, if the same results exist. submit a Software Performance Report (SPR). 3 CMDFAILEDthe !AC command has failed Facility: DEBUG, VMS Debugger> Explanation: The command has failed. The command has had no;+ effect on the current debugging session.A User Action: Reenter the command after correcting the problem. 3 CMDISCOR#the correct command is command_name Facility: DEBUG, VMS DebuggerD Explanation: The previous message shows the obsolete command. The1 command replacing it is shown in this message.> User Action: Use the correct command as shown. The obsolete; command will not be available in a future release of the debugger. 3 CMDISOBS command <command_name is obsolete Facility: DEBUG, VMS Debugger) Explanation: This command is obsolete.D User Action: Do not use this command, it will not be available in$ a future release of the debugger. 3 CMDNOTANAPROC<The !AC command is not allowed when analyzing a process dump Facility: DEBUG, VMS Debugger> Explanation: The specified command may not be used within a process dump analysis.? User Action: Do not use the command when analyzing a process d=ump. 3 CMDNOTAVAIL)the command command_name is not available Facility: DEBUG, VMS Debugger< Explanation: The specified command, although available in@ some debug implementations, is not available in this one. OneB reason why is that the qualifier just doesn't make sense on the> platform. For example, the /JSB qualifier on a STEP command< doesn't make sense on Alpha VMS because there is no "JSB"( instruction like there is on VAX VMS.' User Action: Choose another> command. 3 CMDNOTDW9The !AC command is not allowed in the DECWindows debugger Facility: DEBUG, VMS Debugger> Explanation: The specified command may not be used with the DECWindows debugger.D User Action: Do not use the command with the DECWindows debugger. 3 CMDNOTONE:The !AC command is not allowed in the one process debugger Facility: DEBUG, VMS Debugger> Explanation: The specified command may not be used with the single process debugger.;? User Action: Do not use the command with the one process debugger. 3 CMDSYNERR>command syntax error at or near 'the debugger_command_segment' Facility: DEBUG, VMS Debugger< Explanation: There is a syntax error in the Debug command2 somewhere near the string shown in the message.B User Action: Correct the syntax error and re-enter the command. 3 CMPNOTFND*specified component not found in this type Facility: DEBUG, VMS DebuggerA Explanation: The en@umeration component named in this operation@ could not be found in the list of components defined for this type.@ User Action: Correct the name of the enumeration component or correct the expression. 3 CNTRLWRDNOTACCESS)the vector control word is not accessible Facility: DEBUG, VMS Debugger? Explanation: The debugger does not have direct access to theB vector control word. Therefore the operands of this instruction! cannot be displayed correctly.@ UseAr Action: Do not attempt to display the operands of vector; instructions whose control word is not accessible to the debugger. 3 COMPNAMEAvariant selector 'compname' must be an unqualified component name Facility: DEBUG, VMS DebuggerA Explanation: When the language is C or C++, a variant selector8 must specify a component of the union being selected.) User Action: Specify a component name. 3 COMPNDSTRNG#error generating a compound string. FacilitBy: DEBUG, VMS DebuggerA Explanation: The debugger could not generate a compound string$ that is utilized by the Xtoolkit.$ User Action: No action necessary. 3 CONFLICT=illegal combination of command elements - check documentation Facility: DEBUG, VMS DebuggerC Explanation: Command line elements conflict in their operations.% The command will not be performed.A User Action: Do not specify conflicting command line elements. 3 CONFROMEXC@WARNING: cContinuing after severe error; integrity not guaranteed Facility: DEBUG, VMS DebuggerB Explanation: The debugger has encountered a severe error in theC users program and is continuing. The integrity of this debugging' session can no longer be guaranteed.D User Action: Determine and correct the cause of the severe error. 3 CONSTRCOMP1illegal deposit to a constrained record component Facility: DEBUG, VMS Debugger> Explanation: The debugger cannot DEPOSIT intoD a constrained record component.C User Action: Do not attempt to deposit into a constrained record component. 3 COULDNOTRUN(the RUN or RERUN command did not succeed Facility: DEBUG, VMS Debugger: Explanation: An error occurred while trying to create a? subprocess for the program to run. The error status returned= from the RUN or RERUN command is appended to this message.@ User Action: If the error is correctable, correct the problemB and reenter the cEommand. If not, the RUN and RERUN commands are unavailable. 3 CPOSTDECR5side effect on post-decrement operation not performed Facility: DEBUG, VMS DebuggerA Explanation: The debugger does not support the evaluation of a post-decrement expression. User Action: None 3 CPOSTINCR5side effect on post-increment operation not performed Facility: DEBUG, VMS DebuggerA Explanation: The debugger does not support the evaluation of a post-increment exFpression. User Action: None 3 CPREDECR4side effect on pre-decrement operation not performed Facility: DEBUG, VMS DebuggerA Explanation: The debugger does not support the evaluation of a pre-decrement expression. User Action: None 3 CPREINCR4side effect on pre-increment operation not performed Facility: DEBUG, VMS DebuggerA Explanation: The debugger does not support the evaluation of a pre-increment expression. User Action: None G 3 CRMPSCFAIL0failed to map-in the Debugger Symbol Table (DST) Facility: DEBUG, VMS DebuggerC Explanation: There will always be a secondary message describingD why the debugger failed to map-in the debugger symbol table (DST) or global symbol table (GST).A User Action: Please refer to the secondary message to take the appropriate action. 3 CVTNEGUNSBcannot convert negative value to unsigned value at or near opcode_name Facility: DEBUG, VMS DebuggerHD Explanation: The command is attempting to assign a negative value, to an unsigned type. This is not allowed.> User Action: Do not attempt to put a negative value into an unsigned variable. 3 DBGERR%debugger error or session corruption. Facility: DEBUG, VMS DebuggerA Explanation: The debugger has encountered an internal error or session corruption.C User Action: If the error is reproducible, and is not an obviousC side effect of the user program (i.Ie. stack corruption, resourceC exhaustion, etc.) submit a Software Performance Report (SPR) andA if possible, enclose a copy of the program being debugged, itsB build procedure, and a logged debugging session that reproduces the error. 3 DBGSTOPPED=a debugger process from a previous debugging session has been terminated Facility: DEBUG, VMS Debugger? Explanation: While attempting to create a process to run theB debugger, a debug process from a previous debugJging session was found and terminated.@ User Action: Under normal circumstances, the debugger process? will exit when a debugging session ends via the EXIT or QUITB commands. If the previous debugging session was terminated with? an EXIT or QUIT command and this error is reproducable, then- submit a Software Performance Report (SPR) 3 DECLARERR-too many declarations, parameter_name ignored Facility: DEBUG, VMS Debugger9 Explanation: There is a mismatch betwKeen the number ofC declarations in a command procedure and the number of parameters$ passed to that command procedure.; User Action: Check the command procedure and the DECLARE< statements within to see if they agree with the number of" parameters on the command line. 3 DECOVF'decimal overflow at or near opcode_name Facility: DEBUG, VMS Debugger? Explanation: The value being deposited does not fit into the specified address.D User Action: Specify eiLther a smaller value or a different target address. 3 DECROPRAND>illegal packed or decimal string value (Reserved Operand faultoccurred during conversion) Facility: DEBUG, VMS DebuggerA Explanation: The debugger encountered a Reserved Operand FaultA when attempting to convert the specified value. This indicatesB that the packed or decimal string value did not contain a valid number.@ User Action: Ensure that the string value contains only valid digits.M 3 DEFKEY(state_name key key_name has been defined Facility: DEBUG, VMS Debugger< Explanation: The defining of functions keys has just been? performed using the DEFINE/KEY command. This command assigns@ a string to function key. This is the logging message for the DEFINE/KEY command. User Action: None 3 DEFKEYERR'error in processing DEFINE/KEY command: Facility: DEBUG, VMS Debugger? Explanation: There was an error in defining the given key inN= the display system. The key may not be redefinable, eitherD because the display system will not allow it or because there areB protections that prevent it. The key definition may be invalid.8 User Action: Correct the error in the key definition. 3 DEFTOOREC2command defined with too many levels of recursion. Facility: DEBUG, VMS DebuggerD Explanation: Commands may only be defined to a specified depth of recursion (now set at 100).C User Action: Redefine youOr command such that it uses less levels of recursion. 3 DELKEY(state_name key key_name has been deleted Facility: DEBUG, VMS Debugger> Explanation: The undefining of functions keys has just beenC performed using the DELETE/KEY command. This command deletes theB key definitions that were established by the DEFINE/KEY commandA or, by default by the debugger.This is the logging message for the DELETE/KEY command. User Action: None 3 DELKEYERR'error Pin processing DELETE/KEY command: Facility: DEBUG, VMS Debugger< Explanation: There was an error in deleting the given key> definition from the display mechanism. The key may not be aB defined key. The key definition might also be protected against deletions.? User Action: Correct the error in the command or correct the> protections of the key in the display mechanism being used. 3 DELTIMTOOdelta time too large Facility: DEBUG, VMS DebuggerD ExplanaQtion: The debugger encountered an error when attempting to7 convert the string form of the delta time to binary.@ User Action: Enter the delta time specifying a smaller value. 3 DESCNOTSETdescriptor not set up yet Facility: DEBUG, VMS DebuggerA Explanation: A descriptor used in an expression in the commandB is not yet fully initialized. Some of the fields are not valid,? which means that the Debugger cannot completely evaluate the expression.B User ActiRon: Examine the descriptor that caused the problem andD determine which fields are not correct. Fill in these fields with the correct values. 3 DISABLEAST'ASTs were enabled, and are now disabled Facility: DEBUG, VMS Debugger@ Explanation: Delivery of asynchronous system traps (ASTs) has< been turned off in your program by a DISABLE AST command. User Action: None 3 DISNAMREQ'display name required with this command Facility: DEBUG, VMS Debugger= S Explanation: user did not specify a display name with this command6 User Action: enter a display name with this command 3 DISNOTSEL-display not selected; was removed from screen Facility: DEBUG, VMS DebuggerA Explanation: You specified a display which is removed from the screen.B User Action: Either specify a display which is not removed fromA the screen, or place the specified display onto the screen and attempt the operation again. 3 DISPEXITSTS#display_name display already exists Facility: DEBUG, VMS Debugger? Explanation: You attempted to create a display which alreadyD exists, either by explicitly creating the display or by trying toB save the contents of a display into currently existing display.7 User Action: Specify a display which does not exist. 3 DISPKINDINV.the display kind display_name is not available Facility: DEBUG, VMS DebuggerA Explanation: The specified display kind, althoughU available in< some debug implementations, is not available in this one./ User Action: Do not select the display kind. 3 DISPRLENSIZ<the size of display_name is too small for its display-window?increase the display size or decrease the display-window length Facility: DEBUG, VMS Debugger9 Explanation: You attempted to (re)size a display, e.g.A DISPLAY/SIZE=n or EXPAND/DOWN=m, such that the defined display= size is less than its display-window length. (See the SHOVWB DISPLAY command.) This is not allowed. The command was aborted.A User Action: Try again with either a larger display size, e.g.C bigger n in DISPLAY/SIZE=n, OR a smaller expansion, e.g. smaller m in EXPAND/DOWN=m. 3 DIVBYZEROattempted to divide by zero Facility: DEBUG, VMS DebuggerD Explanation: During the evaluation of an expression, the debugger( noticed an attempt to divide by zero.D User Action: Correct the expression so that it does not divide byW zero. 3 DSFMISMATCHCusing file_specification BUT it does NOT appear to match with file_ specification Facility: DEBUG, VMS Debugger@ Explanation: The debugger is pulling debug symbol information@ for an image from the image DSF file BUT the link time in the> image header for the DSF does NOT match with the image EXE.B This means there may be symbolic and/or source line correlation# misinterpretations or omissions.B User Action: Verify that, if defined, theX dbg$image_dsf_path isA set up correctly. Verify that your DSF was created by the same$ link that created your image EXE. 3 DSTERRG8error in DST (compiler error). GOTO DST has been ignored Facility: DEBUG, VMS Debugger? Explanation: This represents an internal compiler, linker or debugger error.B User Action: If this can be reproduced please submit a Software Performance Report (SPR). 3 DSTLOC1error occurs offset byte!%S from beginning of DST FYacility: DEBUG, VMS Debugger@ Explanation: This is a secondary message which gives detailed? information about where the DST error occurs. It is intended# primarily to be used by Digital.= User Action: If you are submitting a problem report on the; primary error message, be sure to include this one, too. 3 DSTNESDEP.DST nesting depth too deep in module path_name Facility: DEBUG, VMS Debugger= Explanation: Symbol table nesting depth is too deep in theB speZcified module. This occurs if routine nesting or data record, nesting is very deep in the user program.8 User Action: Simplify the user program and run again. 3 DUPLVQUAL@duplicate or conflicting vector qualifier specified at 'command_line' Facility: DEBUG, VMS DebuggerA Explanation: The qualifier indicated in the shown command lineA fragment has already been specified, or is conflicting with an earlier specified qualifier.. User Action: Delete the qualifi[er in error. 3 DUPSTATLINK@more than one static link DST encountered in path_name, compilererror Facility: DEBUG, VMS Debugger@ Explanation: Only one static link DST record is permitted forB a given module, Ada package, or routine. This message indicatesC that this constraint was violated somewhere within the specified; module. This message usually indicates a compiler error.; User Action: Submit a Software Performance Report (SPR). 3 DWERRAa DECwindows\ toolkit error has occurred the message text is '!AS' Facility: DEBUG, VMS Debugger< Explanation: An error has been reported by the DECwindowsB toolkit. This indicates that either the toolkit or the X serverC has detected a problem with the debuggers DECwindows display(s).D User Action: Try to correct the problem specified in the message.A For further information or assistance on this problem, contact your System Manager. 3 DWNOT1PROC7the 1 process debugger c]annot be run in DECwindows mode Facility: DEBUG, VMS Debugger@ Explanation: The debugger must have ASTs enabled at all times@ in order to properly run as a DECwindows program. This is not@ possible for a 1 process debugger. Therefore, the debugger is2 defaulting to not run as a DECwindows debugger.C User Action: Correct the logical name assignment for DBG$PROCESS; to be either "MULTIPROCESS" or "DEFAULT", and try again. 3 DYNIMGSETsetting image image_name ^ Facility: DEBUG, VMS Debugger? Explanation: The debugger is automatically setting the imageD containing the current PC. This is only an informational message. User Action: None 3 DYNLNGSETsetting language language_name Facility: DEBUG, VMS Debugger< Explanation: The debugger is automatically setting up theB language to correspond to the the module containing the current- PC. This is only an informational message. User Action: None 3 DYNMODSET_setting module path_name Facility: DEBUG, VMS Debugger@ Explanation: The debugger is automatically setting the moduleD containing the current PC. This is only an informational message. User Action: None 3 EDITDISVER*the original version is file_specification Facility: DEBUG, VMS DebuggerB Explanation: The original file has been revised since the startA of the debug session. This message indicates that source lines= may not correspond to the ones used to `compile this module? User Action: Use SET SOURCE command to point to the original/ source file if possible and retry operation. 3 EDITERRORerror while trying to EDIT Facility: DEBUG, VMS Debugger= Explanation: An error occurred because of specifying a bad= command line or because of choosing an editor which is not installed on this system.D User Action: Check command line syntax and re-enter, or select anC editor which is installed on the system. For fuarther information8 on the installed editors contact your system manager. 3 EDITFILEediting file file_specification Facility: DEBUG, VMS DebuggerC Explanation: The debugger is currently setup to edit the file asC specified in the message. This is only an informational message. User Action: None 3 EDITNOFILE!no source file to use for editing Facility: DEBUG, VMS DebuggerC Explanation: This messages indicates that the debugger could not5 finbd the specified source file to use for editing.? User Action: Use SET SOURCE command to point to the original/ source file if possible and retry operation. 3 EDITREVVER5editing a revised version of the original source file Facility: DEBUG, VMS DebuggerC Explanation: The original source file has been revised since theA start of the debug session. This message indicates that futureB source line may not correspond to the ones used to compile this module.? c User Action: Use SET SOURCE command to point to the original/ source file if possible and retry operation. 3 EMPTFIELDVIEW'error retrieving information from view. Facility: DEBUG, VMS Debugger= Explanation: The debugger could not retrieve the necessary? information for a particular view display. This inhibits the@ debugger from manipulating the contents of the window at this time.$ User Action: No action necessary. 3 ENABLEAST'ASTs were disabled, andd are now enabled Facility: DEBUG, VMS Debugger@ Explanation: Delivery of asynchronous system traps (ASTs) has< been turned off in your program by a DISABLE AST command. User Action: None 3 ENTRYMASK+entry mask has non-zero value in bits 12:13 Facility: DEBUG, VMS DebuggerB Explanation: This is an internal status signal, it should neverB be seen by the user. If this message does occur please submit a% Software Performance Report (SPR).; User Actione: Submit a Software Performance Report (SPR). 3 ENTRYNOTFND$error searching for a window object. Facility: DEBUG, VMS Debugger> Explanation: When looking for a window object, the debugger detected an error.A User Action: Try the debugger again, if the same results exist. submit a Software Performance Report (SPR). 3 ENUMRANGEenumeration value out of range Facility: DEBUG, VMS DebuggerD Explanation: An error in your program indicates that the valufe of$ this enumeration is out of range.A User Action: Examine this field in numeric format to determine; its value. Determine the error in your code and make the appropriate corrections. 3 ERRACTIMGunable to activate image Facility: DEBUG, VMS Debugger> Explanation: A bad status was returned from LIB$FIND_IMAGE_ SYMBOL.C User Action: The image the debugger was trying to activate couldC not be activated. The following error should help to resolve theg problem. 3 ERRASSIGN1failed to acquire an I/O channel for the debugger Facility: DEBUG, VMS Debugger@ Explanation: A bad status was returned from a $ASSIGN type of@ call. This message should be issued in the $DBG_INFO context.@ User Action: The debugger needs to acquire I/O channels to doC I/O. In this case the debugger failed to acquire such a channel. Check your process quotas. 3 ERRCLSFILEunable to close file Facility: DEBUG, VMS Debuggerh@ Explanation: A bad status was returned from a call to close a file.? User Action: The debugger failed to close a file. Unless theD reason for this is apparent, submit a Software Performance Report (SPR). 3 ERRCREATPB-error trying to create a user defined button. Facility: DEBUG, VMS Debugger> Explanation: The debugger detected and error when trying to' create the user defined push button.A User Action: Try the debugger again, if the same results iexist. submit a Software Performance Report (SPR). 3 ERRCREATWIND9error trying to create a window in routine function_name. Facility: DEBUG, VMS DebuggerD Explanation: The debugger detected an error when trying to create a window.A User Action: Try the debugger again, if the same results exist. submit a Software Performance Report (SPR). 3 ERRCRELNMunable to create a logical name Facility: DEBUG, VMS DebuggerB Explanation: The debugger failejd to create the required logical* names for input and output redirection.; User Action: Submit a Software Performance Report (SPR). 3 ERRDEASSIGN:failed to deassign an I/O channel acquired by the debugger Facility: DEBUG, VMS DebuggerC Explanation: The debugger wanted to deassign an I/O channel thatB is acquired for internal purposes. This error notes the failure? of the SYS$DASSGN system service, probably due to an invalid channel.; User Action: Submit ak Software Performance Report (SPR). 3 ERRFAOunable to format output string Facility: DEBUG, VMS Debugger: Explanation: An error was returned from a call to $FAO.; User Action: Submit a Software Performance Report (SPR). 3 ERRFETCHWID9error fetching objects from MRM in routine function_name. Facility: DEBUG, VMS Debugger@ Explanation: The debugger could not find one of the necessaryD objects in the Motif Resource Manager (MRM). This may prevent the(l debugger from continuing the session.A User Action: Try the debugger again, if the same results exist. submit a Software Performance Report (SPR). 3 ERRGETDVI unable to get device information Facility: DEBUG, VMS DebuggerA Explanation: The debugger needed some information from $GETDVI> and the call failed. This indicates an internal programming error.; User Action: Submit a Software Performance Report (SPR). 3 ERRGETEF(attempt to allocate an evemnt flag failed Facility: DEBUG, VMS DebuggerB Explanation: The debugger wanted to allocate a local event flagC for it's own use. For some reason the routine called to allocate? the event flag failed. This message is usually issued in the $DBG_INFO context.D User Action: The debugger needs event flags to operate. Check theB program being debugged for excessive allocation of event flags. 3 ERRINSDEC(error decoding instruction at current PC Facility: DEBUG, nVMS Debugger< Explanation: The debugger has encountered an error during/ decoding of an instruction at the current PC= User Action: The address may be an entry mask, examine the4 instruction 2 bytes beyond the specified address. 3 ERRINSIGNAL9signal arguments were incorrect, signal cannot be decoded Facility: DEBUG, VMS Debugger> Explanation: The arguments which were passed as part of theB signal in your program were incorrect. The debugger encounteredC an oerror in trying to analyze the signal arguments. The error is/ shown in the message following this message.B User Action: Analyze the arguments passed to LIB$SIGNAL by your" program, and correct the error. 3 ERRINVEDITerror invoking editor Facility: DEBUG, VMS DebuggerA Explanation: While trying to invoke an editor a bad status was returned.= User Action: Is the requested editor available and working? properly. If so, submit a Software Performance Repoprt (SPR). 3 ERROPENHIERAerror opening the Motif resource (UID) file, in routine function_name. Facility: DEBUG, VMS DebuggerA User Action: Please make sure that resource (UID) file for theD debugger is in appropriate directory (Usually SYS$SYSTEM). Please consult your system manager. 3 ERROR$debugger error or session corruption Facility: DEBUG, VMS DebuggerD Explanation: This message indicates an internal debugger error or session corruption.qC User Action: Correct the problem given by the messages followingC this message. If the problem cannot be solved, submit a Software Performance Report (SPR). 3 ERRORLIMIT-Error limit = error-limit, dumping terminated Facility: DEBUG, VMS Debugger> Explanation: The error limit specified for the DST dump wasC exceeded; the dumper was unable to continue processing the inputA file. By default, the error limit is set at 5. Use the /ERROR_' LIMIT qualifier to chrange the value. 3 ERRORTEXT!AS Facility: DEBUG, VMS Debugger" Explanation: Unspecified error. 3 ERROR_BLOCK)error handle signalled, address = address Facility: DEBUG, VMS DebuggerC Explanation: The debugger signalled an error handle. This shouldB never happen. The error handles are an internal construct whichB are used to obtain information within the debugger. They should) never appear in user-visible messages.; User Action: Submit a Softwarse Performance Report (SPR). 3 ERRQIOWerror from $QIOW Facility: DEBUG, VMS Debugger? Explanation: A bad status was returned from a call to $QIOW.> User Action: If problem can be recreated, submit a Software Performance Report (SPR). 3 ERRSMGBerror returned from a call to the Screen Management Facility (SMG) Facility: DEBUG, VMS DebuggerB Explanation: A bad status was returned from a call to SMG. ThisD could be a result of any number of things whitch may or may not be a debugger problem.A User Action: Check the user program for potential interactions@ between it and the debugger; pasteboard sharing and the like.D Also, check the set up of the terminal which might cause SMG someC problem. If the error still can't be explained submit a Software Performance Report (SPR). 3 ERRSYSSERV<error returned from an internal debugger system service call Facility: DEBUG, VMS DebuggerA Explanation: A bad status wasu returned from a call to a systemA service. This message will list the particular system service.; User Action: Submit a Software Performance Report (SPR). 3 ERRTARGOP5unable to perform operation for current target system Facility: DEBUG, VMS Debugger3 Explanation: This is an internal debugger error.? User Action: If the error is reproducible, submit a Software= Performance Report and, if possible, enclose a copy of the< program being debugged, its build pvrocedure, and a logged/ debugging session that reproduces the error. 3 ERRUSREVNTerror in user-specified event Facility: DEBUG, VMS DebuggerC Explanation: When attempting to process the specified event, the@ debugger called the Run Time Library, which returned an errorD status. The error status returned by the Run Time Library follows this message.C User Action: Correct the problem based on the associated message, which follows the debugger error message.w 3 EXABEYREG/attempt to examine beyond the end of a register Facility: DEBUG, VMS Debugger; Explanation: A ranged examine command was specified that= attempted to examine beyond the end of a bounded register.A User Action: Respecify the command so that it does not go past the end of the register. 3 EXARANGEinvalid range of addresses Facility: DEBUG, VMS DebuggerD Explanation: The first address of a range to examine must be less) than the sexcond address in this range.C User Action: Enter the address range specifying the addresses in increasing order. 3 EXCBREREPexception breakpoint replaced Facility: DEBUG, VMS DebuggerD Explanation: A SET BREAK/EXCEPTION was done when exception breaksD were already in effect. The old exception break was replaced with the new one.B User Action: Submit an SPR. This message is handled internally,, and should never be signaled to the user. 3 EXCDURCAL yBerror occurred while executing routine called from exception break Facility: DEBUG, VMS DebuggerB Explanation: While executing a routine called from an exception; break using the CALL command, an exception occurred. Any@ exceptions from routines called from an exception break cause; this message to be displayed followed by the text of theA exception. Execution of the called routine is then terminated.C User Action: Either correct the CALL command if it was in error,?z or correct the routine that caused the exception. To use theD debugger to help find the cause of the exception, try calling the+ routine while not at an exception break. 3 EXITARG)exitloop argument num_levels is too large Facility: DEBUG, VMS DebuggerB Explanation: The parameter specified on the EXITLOOP command isC greater than the number of loops nested at this time. It is alsoD possible that you have specified an EXITLOOP command when you are not inside of{ a loop.B User Action: Reduce the parameter on the EXITLOOP command to no@ more than the number of loops nested at the time the EXITLOOPC command is to be executed. If there are no loops currently being4 executed, then the EXITLOOP command is redundant. 3 EXITERR2an error occurred while trying to exit the program Facility: DEBUG, VMS DebuggerA Explanation: An error status was returned from the call to the= debugger-kernel service that terminates program execution|.A Depending on the severity of the error, the program may or may not have terminated.< User Action: Examine the error message after this message< and consider if the problem is related to a lack of quota? or otherwise related to your program's behavior. If so, thenA take corrective action. If, after this evaluation, you believe@ that the problem lies in the debugger, then submit a Software Performance Report (SPR). 3 EXITSTATUSis 'status_value' Facil}ity: DEBUG, VMS DebuggerD Explanation: The program has exited with the status status_value. User Action: None. 3 EXPMEMPOOLexpanding debugger memory pool Facility: DEBUG, VMS Debugger@ Explanation: The debugger kernel maintains a memory pool fromC which it allocates data structures to keep track of breakpoints,; tracepoints, watchpoints, and so on. The initial size of< the memory pool is 256 pages. The memory pool is expanded@ automatically when needed, ~and this informational is signaledD when memory pool expansion occurs. If you have set a large numberB of breakpoints, tracepoints, or watchpoints, this message is to be expected.C User Action: If this message appears for no evident reason (i.e.B you have not set a large number of breakpoints, tracepoints, orC watchpoints), there may be something wrong with the debugger. In9 this case, submit a Software Performance Report (SPR). 3 FAILFINDIMG6could not find the DECwindows image to be initialized. Facility: DEBUG, VMS Debugger@ Explanation: The debugger could not find the DECwindows image$ that it was trying to initialize.A User Action: Try the debugger again, if the same results exist. submit a Software Performance Report (SPR). 3 FAILHANDLERBRK7failed to set breakpoint on a condition handler address Facility: DEBUG, VMS DebuggerA Explanation: The user had requested a SET BREAK/HANDLERS but aC frame based conditi on handler was found that Debug was unable to set a breakpoint on.; User Action: You have several options. If the particular@ handler is NOT of interest, then it is safe to ignore the set= the breakpoint error messages. You also have the option toA CANCEL BREAK/HANDLERS and SET BREAK on only the breakpointable? handlers of interest. Finally, if the handler IS of interestB AND IS in an installed resident image, then you should activate9 the image privately via a logical, e.g. "DEFINE LIBOTS< SYS$LIBRARY:LIBOTS.EXE;". That should bring the handler's@ activated address into the process's writeable address space. 3 FAILHEIRKY8could not open the user interface definition (UID) file,SYS$LIBRARY:DEBUGUIL.UID. Facility: DEBUG, VMS Debugger@ Explanation: The debugger could not find one of the necessaryD file to support the DECWindows interface, preventing the debugger from continuing this session.< User Action: Check for the existance and accessability ofC SYS$LIBRARY:DEBUGUIL.UID. For further assistance and information2 on this probelm check with your system manager. 3 FAILXTINIT3error trying to connect to the DECWindows software. Facility: DEBUG, VMS DebuggerD Explanation: The debugger failed to establish a connection to theA X server preventing the debugger from continuing this session.A User Action: Try the debugger again, if the same results exist. submit a Software Performance Report (SPR). 3 FATALSTATUS/a fatal condition was detected by the debugger. Facility: DEBUG, VMS Debugger> Explanation: The debugger got an unexpected status from theA system service or RTL routine routine-name which prevents this! DEBUG session from continuing.= User Action: Examine the error message and consider if the@ problem is related to a lack of quota or otherwise related toC your program's behavior. If so, then take corrective action. If,B after this evaluation, you believe that the problem lies in the7 debugger, then submit a Software Performance Report. 3 FETCHLITERAL!error fetching literals from MRM. Facility: DEBUG, VMS Debugger@ Explanation: The debugger could not find one of the necessaryB literals in the Motif Resource Manager (MRM). This prevents the) debugger from continuing this session.A User Action: Try the debugger again, if the same results exist. submit a Software Performance Report (SPR). 3 FILENAMETOOLONG*maximum file name length is 251 characters Facility: DEBUG, VMS DebuggerA Explanation: The name of the file specified by the user is too# large for the debugger to handle@ User Action: Try to redo the operation with a shorter string. 3 FILEUNALfile not available Facility: DEBUG, VMS Debugger? Explanation: The source file for the given program cannot be read.A User Action: Change the protections on the source file, or use? SET SOURCE to tell the Debugger where the source file really exists. 3 FLTOVF(floating overflow at or near opcode_name Facility: DEBUG, VMS Debugger? Explanation: The value being deposited does not fit into the specified address.D User Action: Specify either a smaller value or a different target address. 3 FRAMENOREAD7stack frame at frame address frame-addr is not readable Facility: DEBUG, VMS DebuggerA Explanation: The debugger is atte mpting to chain down the call? stack, following frame pointers. The debugger has determinedD that part or all of the frame at frame-addr is not accessible forB reading. This usually indicates a corrupt frame list, but couldA also indicate that the program has protected part of memory in: which the frame lies. In either case, this is an error.D User Action: Determine what part of your code is writing into theA FP register or overwriting the saved frame pointer on the callC  stack (or a preceding saved frame pointer) and correct it. SinceC the debugger looks at the call stack to symbolize addresses, youA may suppress some of these messages by typing the command "SET MODE NOSYMBOLIC". 3 HEIGHTDIFFCdesired height of specified_height is not allowed, height is set to actual_height Facility: DEBUG, VMS Debugger? Explanation: The device specified by DBG$OUTPUT had a screen- height that wasn't in the range of 18-100.= User Action: Use SHOW TERMINAL command and verify that the@ terminal height is correct, it is in the range 18-100, and is% pointing to a valid terminal type. 3 IDENTLONG#identifier too long, please shorten Facility: DEBUG, VMS DebuggerB Explanation: Identifiers in address expressions must be shorter than 256 characters.+ User Action: Enter a shorter identifier. 3 IFIXUND+precision lost during fixed point operation Facility: DEBUG, VMS DebuggerA Explanation: While doing operations on fixed point data items,8 the debugger recognized that some precision was lost.< User Action: You should understand that the result of theA operation is imprecise and may not be exactly what you expect. 3 IFLTUND)floating underflow at or near opcode_name Facility: DEBUG, VMS Debugger< Explanation: While performing the arithmetic operation, aC floating-point value became less than the smallest representable value for that data type.< User Action: You should understand that the result of theA operation is imprecise and may not be exactly what you expect. 3 IGNORELNMignoring logical logical name Facility: DEBUG, VMS DebuggerD Explanation: The debugger is ignoring this logical likely because3 a previous error, e.g. unable to delete logical.C User Action: If there was an error message previous to this one,& see its user action and correct it. 3 IINTOVF'integer overflow at or near opcode_name Facility: DEBUG, VMS Debugger< Explanation: While performing the arithmetic operation, a@ floating-point value exceeded the largest representable value for that data type.< User Action: You should understand that the result of theA operation is imprecise and may not be exactly what you expect. 3 ILLADDCON4illegal constant constant_name in address expression Facility: DEBUG, VMS Debugger? Explanation: The constant in the message evaluates to a non-= integer type. Only integer types can be used in an address expression.> User Action: Change the constant to the appropriate integer value. 3 ILLASTERDsubscript range ('*') not permitted here (must be at lowest level ofdata structure) Facility: DEBUG, VMS DebuggerB Explanation: The debugger does not allow an asterisk as a rangeD in an EXAMINE except as the last index in the array. That is, theD memory to examine must be a contiguous region. Unconnected slices of arrays are not allowed.C User Action: Remove the asterisk from the expression to examine.C Placing the corrected EXAMINE inside a Debugger FOR loop command> could provide the functionality needed to do the command as originally desired. 3 ILLDEFNAM%illegal name for DEFINE: defined_name Facility: DEBUG, VMS Debugger0 Explanation: A defined name must be non-null.0 User Action: Enter a non-null name to DEFINE. 3 ILLENUMVAL$enumeration value out of legal range Facility: DEBUG, VMS Debugger@ Explanation: The predecessor (or successor) function has been@ used on the first (or last) component of the enumeration. The8 result would not be a valid value of the enumeration.B User Action: Do not use the predecessor (or successor) function7 on the first (or last) component of the enumeration. 3 ILLEVNSTR:Attempt to pass an illegal event structure: structure-name Facility: DEBUG, VMS DebuggerB  Explanation: This message indicates an internal debugger error. User Action: Submit an SPR. 3 ILLFILPTR/file variable points to invalid file descriptor Facility: DEBUG, VMS DebuggerC Explanation: The file variable references a file descriptor thatA cannot be read, is incomplete, or points to a file that is not open., User Action: Correct the file descriptor. 3 ILLFLOAT.float_value is an illegal floating point value Facility: DEBUG, VMS DebuggerB Explanation: The Debugger attempted to parse the given floating5 point number and encountered an illegal character.2 User Action: Correct the floating point number. 3 ILLINVNUM&invalid invocation number at invoc_num Facility: DEBUG, VMS DebuggerC Explanation: An illegal invocation number was specified (must be in decimal radix).: User Action: Specify a legal decimal invocation number. 3 ILLLENGTH8illegal length field length_value in structure reference Facility: DEBUG, VMS DebuggerD Explanation: A negative value was given for the length of a field in a structure reference.@ User Action: Change the field length to a non-negative value. 3 ILLNUMPATH%illegal numeric pathname at path_name Facility: DEBUG, VMS DebuggerB Explanation: An illegal numeric pathname was specified (must be in decimal radix).9 User Action: Specify a legal decimal numeric pathname. 3 ILLPACSIZ-illegal packed size size_value; must be 0..31 Facility: DEBUG, VMS Debugger< Explanation: The specified size on a /PACKED qualifier is0 illegal. It must be a value between 0 and 31.A User Action: Specify a legal value with the /PACKED qualifier. 3 ILLPATH1Billegal use of %SOURCE_SCOPE (must not be combined with invocationnumbers) Facility: DEBUG, VMS DebuggerA Explanation: %SOURCE_SCOPE has been used in the same path with other scope numbers.C User Action: Remove all but one of the references to the desired scope. 3 ILLPATH2=illegal use of %SOURCE_SCOPE (must appear at the start of the pathname) Facility: DEBUG, VMS Debugger@ Explanation: %SOURCE_SCOPE has been used in a path name in an@ illegal position. The %SOURCE_SCOPE lexical must be the first item in the path list.D User Action: Move the %SOURCE_SCOPE lexical to the first position in the pathname. 3 ILLPATHELEM%illegal pathname element at path_name Facility: DEBUG, VMS Debugger< Explanation: Invocation numbers cannot be used with other pathnames.D User Action: Eliminate the continuation of the pathname after the invocation number. 3 ILLPATHIDENT+unknown identifier in pathname at path_name Facility: DEBUG, VMS DebuggerD Explanation: An illegal identifier was specified in the pathname.+ User Action: Specify a legal identifier. 3 ILLPOSFLD0position field value position_value is too large Facility: DEBUG, VMS Debugger@ Explanation: The value of the position specifier in the BLISSA field reference is an incredibly large number, larger than the@ Debugger can handle. The value may be negative, which is also illegal.A User Action: Change the value of the position specifier in the: BLISS field reference to a smaller (or positive) value. 3 ILLQUALIF+illegal or unsupported qualifier on command Facility: DEBUG, VMS DebuggerB Explanation: One of the qualifiers to the command is incorrect.> User Action: Remove the incorrect qualifier to the command. 3 ILLRANGECsubscript range not permitted here (must be at lowest level of data structure) Facility: DEBUG, VMS DebuggerA Explanation: The Debugger does not allow a range in an EXAMINE@ except as the last index in the array. That is, the memory toD examine must be a contiguous region. Unconnected slices of arrays are not allowed.@ User Action: Remove the range from the expression to examine.C Placing the corrected EXAMINE inside a Debugger FOR loop command> could provide the functionality needed to do the command as originally desired. 3 ILLSETCON"illegal set constant in expression Facility: DEBUG, VMS Debugger? Explanation: One of the constants specified in the given set@ expression has a type that is inconsistent with the set type.< User Action: Change the erroneous set constant value to a6 constant with a type that agrees with the set type. 3 ILLSIGEXT2illegal sign extension field value extension_value Facility: DEBUG, VMS Debugger> Explanation: An illegal value has been entered for the sign( extension field in a field reference.A User Action: Re-enter the command using a valid sign extension field value. 3 ILLSIZFLD4illegal size field size_value; must be 0..size_limit Facility: DEBUG, VMS DebuggerC Explanation: The size value for a BLISS field reference contains an illegal value.B User Action: Change the size value of the field reference to an/ integer between 0 and size_limit, inclusive. 3 ILLSUBLEN.substring length larger than 32K not supported Facility: DEBUG, VMS Debugger; Explanation: The calculated length of a substring in the< expression is larger than can be handled by the Debugger.A User Action: Do not use a substring with a length greater than8 32K in an expression to be evaluated by the Debugger. 3 ILLSUBSTR7can only apply substring operation to string data types Facility: DEBUG, VMS DebuggerA Explanation: The Debugger has found a substring operation, but5 the data type of the operand is not a string type.B User Action: Correct the data type of the string operand in the substring expression. 3 ILLTHUNKADDRillegal thunk call address Facility: DEBUG, VMS Debugger= Explanation: The debugger detected a 0 addressed compiler-1 supplied routine during Value Spec evaluation.A User Action: Submit a Software Performance Report (SPR) to the appropriate compiler. 3 ILLTYPEillegal type of operand(s) Facility: DEBUG, VMS DebuggerC Explanation: The type of the operand is illegal for the operator specified.# User Action: Change the operand. 3 ILLVQUAL@illegal vector instruction qualifier specified at 'command_line' Facility: DEBUG, VMS Debugger6 Explanation: A vector instruction qualifier that is= illegal for this vector instruction was specified during a DEPOSIT/INSTRUCTION command.= User Action: Do not specify that illegal qualifier on that instruction. 3 IMAGENF8target image file_specification not found on host system Facility: DEBUG, VMS Debugger? Explanation: An image that is loaded on the target system or@ represented in the dump file does not have a matching copy onC the host system. The debugger can not load any information aboutD this image, therefore, symbolic debugging of code in the image is impossible.B User Action: Check the the image search path on the host system@ for this image. Either fix the search path or place a copy of9 this image in that path and restart the debug session. 3 IMGMISMATCH?target system image file_specification does not match host copy Facility: DEBUG, VMS DebuggerA Explanation: An image that is loaded on the target system doesC not match the host copy of that image. This occurs when the linkD time in the image header for the DSF or EXE file on the host does8 not match the link time of the target system's image.B User Action: Verify that the image path is set up correctly and@ that it points to the same images as are loaded on the target system. 3 INCDSTNES9incorrect DST nesting in module path_name, compiler error Facility: DEBUG, VMS Debugger@ Explanation: Incorrect symbol table nesting occurred, such asC improper routine or data record nesting in the specified module.4 This message normally indicates a compiler error.5 User Action: Submit a Software Performance Report. 3 INCMPSTACK:WARNING: stack corrupted; session integrity not guaranteed Facility: DEBUG, VMS Debugger> Explanation: While walking the call stack, the debugger has@ determined that the stack has been corrupted. It did however,@ find some valid call frames and will attempt to continue with@ that information. Continuation in the presence of a corrupted@ stack typically results in unpredictable program and debugger behavior.A User Action: Look at what little valid information is left and? then start over. Attempt to find and fix the point where the> stack gets corrupted. It may be possible to examine program@ state, but continuing instruction execution typically results2 in unpredictable program and debugger behavior. 3 INCOMPOPR(operand number operand_number incomplete Facility: DEBUG, VMS DebuggerB Explanation: When parsing an instruction, the debugger found an incomplete operand.? User Action: Specify complete operands when entering machine instructions. 3 INCOMPPTR6pointers of different size, cannot perform subtraction Facility: DEBUG, VMS DebuggerC Explanation: The two pointers point to objects with incompatible@ types. A computation involving these pointers does not have a meaningful result.D User Action: Do not attempt to mix pointers of different types in arithmetic computations. 3 INCOMQUALAqualifier qualifier_name is not compatible with qualifier_name(s) Facility: DEBUG, VMS DebuggerA Explanation: Qualifiers specified with the command conflict in their operations.3 User Action: Specify non-conflicting qualifiers. 3 INCOMTARGETDa debugger_type kernel debugger is incompatible with a debugger_type main debugger Facility: DEBUG, VMS Debugger@ Explanation: A kernel debugger attempted to connect to a main, debugger with which it is not compatible.A User Action: Make sure that the logical names used to point at? the sharable and non_sharable debugger images are defined to' point to the same type of debuggers. 3 INCOMVERSIONBthe RPC versions of the main and kernel debuggers are incompatible Facility: DEBUG, VMS Debugger@ Explanation: A kernel debugger attempted to connect to a main, debugger with which it is not compatible.A User Action: Make sure that the logical names used to point at? the sharable and non_sharable debugger images are defined to' point to the same type of debuggers. 3 INDBASEQLDindex and base registers are equal for operand number operand_number Facility: DEBUG, VMS DebuggerB Explanation: When parsing an instruction, the debugger found anA operand whose base register and index registers were the same.> The VAX instruction architecture forbids this construction.B User Action: Specify different registers for the base and index registers. 3 INIBRKtarget system interrupted Facility: DEBUG, VMS Debugger> Explanation: The target system has hit a break point in the@ INI$BRK system routine. The system code calls this routine inB order to return control to the debugger either because the callB is compiled into the code or an IPL 14 interrupt was generated. User Action: None. 3 INITERR?an error has occurred during debugger initialization, unable tocontinue this session. Facility: DEBUG, VMS Debugger8 Explanation: The debugger encountered an error during@ initialization which does not allow this debugging session to proceed.> User Action: Use the message which preceded this message to0 analyze and correct the error, and try again. 3 INITIAL*Language: language_name, Module: path_name Facility: DEBUG, VMS Debugger> Explanation: This message is displayed when the debugger isC invoked by the image activator. The language is set to language_C name, and the module to path_name. Module path_name is the firstC module specified in the LINK command, and language language_name' is the language used in that module. User Action: None. 3 INPREADERRerror reading input line: Facility: DEBUG, VMS DebuggerB Explanation: There was an error from the system while trying to  read the input line.@ User Action: Re-enter the command line. Check to see that the? Debugger has read access to the input source. If the problem8 persists, submit a Software Performance Report (SPR). 3 INSNOTCURAV)No instructions for address address_value Facility: DEBUG, VMS DebuggerB Explanation: No instructions correspond to the address address_ value.4 User Action: None. This message is informational. 3 INSVIRMEM8insufficient virtual memory for the debugger memory pool Facility: DEBUG, VMS Debugger@ Explanation: Failed to allocate additional memory for working storage.B User Action: Cancel set modules to free space in memory and try again. 3 INTERR=debugger error in debugger_routine_name or session corruption Facility: DEBUG, VMS DebuggerA Explanation: The debugger has encountered an internal error or session corruption.C User Action: If the error is reproducible, and is not an obviousC side effect of the user program (i.e. stack corruption, resourceC exhaustion, etc.) submit a Software Performance Report (SPR) andA if possible, enclose a copy of the program being debugged, itsB build procedure, and a logged debugging session that reproduces the error. 3 INTERRUPTED,process interrupted via cross-process signal Facility: DEBUG, VMS DebuggerC Explanation: This signal is delivered asyncronously to a process7 to cause the debugger to be invoked in that process.B User Action: Submit an SPR. This message is handled internally,, and should never be signaled to the user. 3 INTMEMERRinternal memory-pool error Facility: DEBUG, VMS Debugger< Explanation: The debugger's internal memory area has beenB corrupted or is inconsistent. This can be caused by an internal: debugger error or by random stores by the user program.> User Action: Correct the user program. If the problem still6 exists, submit a Software Performance Report (SPR). 3 INTOVF'integer overflow at or near opcode_name Facility: DEBUG, VMS Debugger? Explanation: The value being deposited does not fit into the specified address.D User Action: Specify either a smaller value or a different target address. 3 INTVECERR=internal debugger coding error in using vector instruction(s) Facility: DEBUG, VMS DebuggerD Explanation: An internal debugger error has been encountered whenC attempting to execute a vector instruction. Messages will follow5 this text which will more fully explain the error.? User Action: If the error is reproducible, submit a Software= Performance Report and, if possible, enclose a copy of the< program being debugged, its build procedure, and a logged/ debugging session that reproduces the error. 3 INUMTRUNC'number truncated at or near opcode_name Facility: DEBUG, VMS Debugger= Explanation: On some conversions packed numbers need to beC truncated to fit into their destination. Truncation is done from= the least significant digit to the most significant digit.< User Action: You should understand that the result of theA operation is imprecise and may not be exactly what you expect. 3 INVALTEXTRANG%error retrieving text from an object. Facility: DEBUG, VMS DebuggerA Explanation: The debugger found a discrepancy in the ranges of& the text string that was retrieved.$ User Action: No action necessary. 3 INVARGLIS8invalid argument list for 'the debugger_command_segment' Facility: DEBUG, VMS Debugger= Explanation: There is an error with the argument list. The; Debugger may be expecting an argument list when none was? supplied. The Debugger may have found an argument list where@ one was not expected. The Debugger may have found an argumentA list that was too long or too short. Finally, the Debugger may4 have found an inconsistency in the argument list.@ User Action: Correct the command. Supply the correct argument@ list if one was missing or in error. Delete the inappropriate% argument list, if one was present. 3 INVARRDIMarray dimension is out of range Facility: DEBUG, VMS Debugger> Explanation: The array dimension is out of the range of the= declared size and shape of the array. Either the dimension@ requested is less than zero, or it is greater than the number- of dimensions the array was declared with.4 User Action: Correct the invalid array dimension. 3 INVARRDSCinvalid array descriptor Facility: DEBUG, VMS DebuggerB Explanation: An array descriptor in the image does not have theC correct format. This can be caused by a reference to a VAX BASICB array when the first line of the program has not been executed.< The array is not set up correctly until the BASIC program? initialization is done. This message can also be caused by aA user program or DEPOSIT commands altering a compiler generatedC array descriptor. This can also be caused by an incomplete arrayC declaration in C or C++. For example, the declaration extern int@ element_array[] can result in an array descriptor with a zero stride.9 User Action: If the reference is to a VAX BASIC array,> enter a STEP or GO command to ensure that the BASIC program? initialization is done and then repeat the reference. If theD reference is to an Alpha C array, try accessing the global symbolA table definition for the array by upper-casing the array name.9 Otherwise, submit a Software Performance Report (SPR). 3 INVCHARinvalid character Facility: DEBUG, VMS DebuggerB Explanation: When parsing the command, an invalid character was detected.C User Action: Enter the command specifying only valid characters. 3 INVCHARLOCALE#invalid character in current locale Facility: DEBUG, VMS DebuggerC Explanation: An illegal character in the current locale has been found.: User Action: Reenter the string using valid characters. 3 INVCHRCON(invalid character constant in expression Facility: DEBUG, VMS DebuggerC Explanation: When evaluating a language expression, the debuggerB expected to find a closing single quote mark, or the end of the@ command. Some other character was found, which resulted in an illegal language expression.2 User Action: Enter a valid language expression. 3 INVCMD/command is not available for this configuration Facility: DEBUG, VMS DebuggerD Explanation: This command is not available for this configuration< of the debugger. It may be available in a future version. User Action: None. 3 INVDEPTH(unable to access stack to depth of depth Facility: DEBUG, VMS DebuggerD Explanation: The debugger is trying to access the register set of* a frame depth frames down on the stack.@ User Action: If you explictly requested for information aboutC that frame, (e.g. via a previous SET SCOPE command), modify your? command such that it is requesting information about a valid frame. 3 INVDESCinvalid string descriptor Facility: DEBUG, VMS DebuggerB Explanation: This message indicates an internal debugger error.; User Action: Submit a Software Performance Report (SPR). 3 INVDIGBIN,invalid digit in binary number: number_value Facility: DEBUG, VMS DebuggerC Explanation: A numeric value other than '0' and '1' was found in a binary number.C User Action: Enter binary numbers specifying only digits '0' and '1'. 3 INVDIGDEC-invalid digit in decimal number: number_value Facility: DEBUG, VMS DebuggerC Explanation: A numeric value other than in the range '0' through% '9' was found in a decimal number.@ User Action: Enter decimal numbers specifying only digits '0' through '9'. 3 INVDIGHEX1invalid digit in hexadecimal number: number_value Facility: DEBUG, VMS DebuggerC Explanation: A numeric value other than in the range '0' throughA '9' or an alphabetic value other than in the range 'A' throughB 'F' was found in a hexadecimal number. Hexadecimal numbers must9 also start with a numeric character, for example '0F'.D User Action: Enter hexadecimal numbers specifying only digits '0'5 through '9' and alphabetic values 'A' through 'F'. 3 INVDIGOCT+invalid digit in octal number: number_value Facility: DEBUG, VMS DebuggerC Explanation: A numeric value other than in the range '0' through% '7' was found in a decimal number.@ User Action: Enter decimal numbers specifying only digits '0' through '7'. 3 INVDIRNAM*invalid directory name: file_specification Facility: DEBUG, VMS DebuggerB Explanation: The directory name 'file_specification' given in aA DEBUGGER command SET SOURCE is not valid. Either the directory7 syntax is incorrect or the directory does not exist.D User Action: Ensure that the directory exists and that the syntax is correct. 3 INVDMTPTR6invalid DMT pointer; internal linker or debugger error Facility: DEBUG, VMS Debugger@ Explanation: The debugger found that the pointer in the imageC header to the Debug Module Table (DMT) was invalid. The debuggerB will continue from this error trying to initialize based on the Debug Symbol Table (DST).A User Action: Check that the image file hasn't been modified or? corrupted in some way. If not, submit a Software Performance Report (SPR). 3 INVDSPSIZ"invalid display size: display_size Facility: DEBUG, VMS DebuggerB Explanation: The SIZE value for a display must be between 1 and 1000.: User Action: Specify the SIZE value between 1 and 1000. 3 INVDSTRECinvalid DST record Facility: DEBUG, VMS Debugger? Explanation: The debugger has detected an error in the DebugD Symbol Table of your program. This indicates an internal error in6 either the debugger or the compiler of this module.B User Action: Please submit a Software Performance Report (SPR). 3 INVEXPR4invalid expression for operand number operand_number Facility: DEBUG, VMS Debugger> Explanation: The specified operand was not correct for this instruction.> User Action: Please check the documentation for the correctC operands for this instruction, and re-enter the instruction with the correct operands. 3 INVFILHNDLinvalid file handle Facility: DEBUG, VMS DebuggerD Explanation: The debugger has detected an invalid file handle forD the given context connection. This indicates an internal error in' either the debugger or the compiler.< User Action: Please submit a Software Performance Report. 3 INVFIXDSTCinvalid DST fixup records in image image_name, symbol references to!shareable im ages may be erroneous Facility: DEBUG, VMS Debugger9 Explanation: While attempting to read the symbol table@ information in the specified image, the debugger found errorsD in the symbol table address fixup records. These records are usedC to adjust for the base addresses of shareable images. This meansC that any symbols in this image which point to addresses in otherB (shareable) images will most likely be incorrect. Symbols whichB refer to addresses in this image will be correct unless this is also a shareable image.C User Action: Relink the image and, if the error is reproducible,@ submit a Software Performance Report explaining how the image file was created. 3 INVFLDREF3invalid field reference; too many or few parameters Facility: DEBUG, VMS Debugger@ Explanation: The Debugger could not complete the parse of the@ BLISS field reference specification. Either the closing angleB bracket terminator was found too soon, or it was not found when it was expected., User Action: Correct the field reference. 3 INVGSTRECinvalid GST record Facility: DEBUG, VMS Debugger@ Explanation: The debugger has detected an error in the GlobalD Symbol Table of your program. This indicates an internal error in6 either the debugger or the compiler of this module.B User Action: Please submit a Software Performance Report (SPR). 3 INVGSTTYP*invalid GST record; GST is partially built Facility: DEBUG, VMS DebuggerA Explanation: The debugger found an invalid Global Symbol Table; (GST) record in the image. The debugger will discontinueA initializing the GST at this point. The debugger will continue@ from this error, however global symbol information may not be complete.A User Action: Check that the image file hasn't been modified or? corrupted in some way. If not, submit a Software Performance Report (SPR). 3 INVMAR&right margin must be greater than left Facility: DEBUG, VMS DebuggerC Explanation: You specified a right margin that was less than theC left margin in the debugger command SET MARGIN. The right margin( must be greater than the left margin.> User Action: Re-enter the command specifying a valid margin range. 3 INVNUMBER%invalid numeric string 'number_value' Facility: DEBUG, VMS DebuggerD Explanation: A numeric value which was not in the specified radix( was found in the language expression.C User Action: Enter numbers specifying only valid digits for that radix. 3 INVNUMSRCinvalid number of source files Facility: DEBUG, VMS DebuggerB Explanation: An invalid number of source files was specified onA the SET MAX_SOURCE_FILES command. The maximum number of source? files that the debugger will keep open simultaneously is 20.> User Action: Re-enter the command specifying a valid number within the range. 3 INVNUMSTR0invalid numeric string at or near 'number_value' Facility: DEBUG, VMS DebuggerD Explanation: The debugger encountered an error when attempting toD convert the specified value. This indicates that the string value" did not contain a valid number.@ User Action: Ensure that the string value contains only valid digits. 3 INVOPADDR8invalid operator 'operator_symbol' in address expression Facility: DEBUG, VMS Debugger= Explanation: Address expressions cannot contain operators.? User Action: Enter the address expression without operators. 3 INVOPSYM7invalid operator symbol 'operator_symbol' in expression Facility: DEBUG, VMS DebuggerB Explanation: Identifiers in address expressions must be shorter than 256 characters.+ User Action: Enter a shorter identifier. 3 INVPAGE?invalid screen height, value must be between minimum_height andmaximum_height Facility: DEBUG, VMS DebuggerB Explanation: The height of the terminal which the debugger uses> to place it's windows must be between the values specified.A User Action: Specify the page size of the screen to be between the values specified. 3 INVPASS6the password does not match the target system password Facility: DEBUG, VMS DebuggerB Explanation: The password specified in the connect command doesB not match the password in the target systems password file. Or,@ no password was specified and the target system requires one.< User Action: Check to make sure the correct node name and@ password were specified. Check the target system to make sure both were set up correctly. 3 INVPRCSYN"process specification syntax error Facility: DEBUG, VMS DebuggerD Explanation: The specified process specification is syntactically invalidA User Action: Re-enter the command specifying a correct process specification 3 INVPRIOR%invalid task priority value specified Facility: DEBUG, VMS DebuggerA Explanation: The priority of an Ada task must be between 0 and 15.6 User Action: Specify a valid priority for the task. 3 INVRANSPEC.invalid range specification in array subscript Facility: DEBUG, VMS Debugger> Explanation: A range specification in an array reference is= illegal. The Debugger may have found a range where none isA allowed. An asterisk may have been used as a range where it is? not allowed. The array subscripts may have more than one setB of ranges, which is not allowed. The range may be invalid, withA bounds greater than the declared bounds of the array. Finally,C the lower bound of the range may be greater than the upper bound of the array.< User Action: Correct the range specification in the array subscript. 3 INVSELDIS=invalid selection of display_name display; wrong display kind Facility: DEBUG, VMS DebuggerC Explanation: Some attributes can only be placed on certain typesD of displays. For example, the SOURCE attribute can only be placedC on source displays. The attribute you specified cannot be placed on the display you specified.D User Action: See the debugger documentation of the SELECT commandC for details on which attributes can be placed on which displays.A Specify attributes which are compatible with the display kind. 3 INVSRCLINinvalid source line range Facility: DEBUG, VMS Debugger? Explanation: An invalid source line range was entered in theD debugger TYPE command. The first line number of the range must beB non-negative and less than or equal to the second number in the range.C User Action: Re-enter the command specifying a valid line number range. 3 INVTIMSLI1time slice was not set, parameter is out of range Facility: DEBUG, VMS DebuggerA Explanation: The value specified for the time slice was out of8 range for the Ada type DURATION used by the debugger.> User Action: See the Ada documentation for the range of the? DURATION type. Specify time slice values which are in range. 3 INVWIDTH@invalid screen width, must be between minimum_width and maximum_width Facility: DEBUG, VMS DebuggerD Explanation: The width of the terminal which the debugger uses to: place its windows must be between the values specified.A User Action: Specify the width of the screen to be between the values specified. 3 INVWINP AR&invalid window parameter: number_value Facility: DEBUG, VMS DebuggerB Explanation: The value specified was out of range of the screenA on which the window will be placed. If the debugger is placingA its windows on a terminal screen, the beginning row and columnD numbers must be between 1 and the height and width of the screen,A and the beginning value plus the height or width of the window> must not exceed the height or width of the terminal screen.@ If the debugger is running with the DECwindows interface, the; beginning row and column numbers must be greater than 0.? User Action: Specify valid parameters for the window row and= column values, and for the height and width of the window. 3 IRFAOVF3record file address overflow at or near opcode_name Facility: DEBUG, VMS DebuggerC Explanation: The conversion of the ASCII string to a record fileD address caused an overflow. The conversion was performed however.; User Action: Check the value to make sure the conversion performed as expected. 3 ISTRTRU'string truncated at or near opcode_name Facility: DEBUG, VMS Debugger9 Explanation: The string did not fit into the specifiedD destination resulting in lost trailing characters. The conversion was performed however.; User Action: Check the value to make sure the conversion performed as expected. 3 ITMNOTAVAitem not available Facility: DEBUG, VMS DebuggerD  Explanation: The user should never see this message. The debugger> uses an item list construct for passing information between@ its parts. This message indicates that the requesting routine= requested data which the target routine was not capable of> providing. Appearance of this message indicates an internal problem in the debugger.: User Action: Submit a Software Performance Report (SPR) 3 ITMTRUNC,item truncated - buffer of insufficient size Facility: DEBUG, VMS DebuggerD Explanation: The user should never see this message. The debugger> uses an item list construct for passing information between@ its parts. This message indicates that the requesting routineA allocated a buffer which was too small for the requested data.B Appearance of this message indicates an internal problem in the debugger.: User Action: Submit a Software Performance Report (SPR) 3 IVALNOFIT>value does not fit into target location at or near opcode_name Facility: DEBUG, VMS Debugger> Explanation: The value can not be represented in the targetC location and may be truncated. The bit field is not large enough to hold the value.7 User Action: Check the value in the target location. 3 IVALOUTBNDS6value assigned is out of bounds at or near opcode_name Facility: DEBUG, VMS DebuggerD Explanation: The value is out of the bounds defined for the data.' The operation was performed however.D User Action: Check the results of the operation to make sure they are as you expected. 3 IVPRCLOG?logical name DBG$PROCESS must be either MULTIPROCESS or DEFAULT Facility: DEBUG, VMS DebuggerD Explanation: The logical name DBG$PROCESS translates to something* other than "MULTIPROCESS" or "DEFAULT".C User Action: Correct the logical name assignment for DBG$PROCESS and try again. 3 KEPTNOT1PROC9the Kept Debugger must be run as a multi-process debugger Facility: DEBUG, VMS DebuggerB Explanation: The kept debugger must be a master process runningC and rerunning programs as subprocesses. This is not possible forC a one process debugger. The kept debugger must be run using more than one process.C User Action: Correct the logical name assignment for DBG$PROCESS; to be either "MULTIPROCESS" or "DEFAULT", and try again. 3 KERFUNCNYI9Kernel Function function_name not yet implemented on this architecture Facility: DEBUG, VMS DebuggerB Explanation: This message indicates an internal debugger error.; User Action: Submit a Software Performance Report (SPR). 3 KERNOTAVAIL4host kernel of the VMS system debugger not available Facility: DEBUG, VMS DebuggerB Explanation: The host kernel for the VMS system debugger is not> available on this system so a connection could not be made.: User Action: Contact your Digital Representative on the availability of this feature. 3 KEYNAMERRunrecognized key name: key_name Facility: DEBUG, VMS DebuggerD Explanation: This keyname is in error. It can not be defined by the user./ User Action: Check spelling of the key name. 3 KEYSTATERR#unrecognized state name: state_name Facility: DEBUG, VMS DebuggerD Explanation: This key state is in error. It has not been defined by the user.> User Action: Check spelling of the state name or define the state. 3 LASTCHANCE4stack exception handlers lost, re-initializing stack Facility: DEBUG, VMS DebuggerA Explanation: The user's program contained an error that caused> the exception handling mechanism to fail. This error occursB when the stack is overwritten by the user program or by deposit commands.C User Action: Identify and correct the error in the user program. 3 LINEINFOline-description Facility: DEBUG, VMS DebuggerB Explanation: This is either 'No line information available', orD 'No line , previous line is ,# next line is ' 3 LOGFILEIS+the error log is in file file_specification Facility: DEBUG, VMS Debugger< Explanation: An internal debugger error has occurred, andB information which will be useful in locating the error has been! written to file_specification.? User Action: If the error is reproducible, submit a Software? Performance Report (SPR) and, if possible, enclose a copy of@ the program being debugged, program build steps, and a logged/ debugging session that reproduces the error. 3 LONGSTRING2strings longer than 2**16 characters not supported Facility: DEBUG, VMS Debugger@ Explanation: The length of a string or the range of one arrayD bound is greater than 2**16. The string or array is too large for the Debugger.D User Action: Do not use strings of this length with the Debugger.  3 LOOPINCRloop increment cannot be zero Facility: DEBUG, VMS DebuggerB Explanation: The loop increment specified on the FOR command is zero.A User Action: Change the loop increment to be a non-zero value. 3 LOOPVAR;loop var loop_variable has been redefined; exiting for loop Facility: DEBUG, VMS Debugger? Explanation: Since the loop variable has been redefined, theB debugger will exit the loop. No further comparison is possible. User Action: None. 3 LOWBNDOPT*lower bound of subrange was optimized away Facility: DEBUG, VMS DebuggerC Explanation: The lower bound of the subrange was optimized away.B The largest negative number on the machine is being used as the lower bound.= User Action: You may wish to recompile the program without optimizations. 3 MAINFUNCNYIDMain Function function_name not yet implemented on this architecture Facility: DEBUG, VMS DebuggerB Explanation: This message indicates an internal debugger error.; User Action: Submit a Software Performance Report (SPR). 3 MASKMISMATCH4mask/target subscripts do not match, displaying mask Facility: DEBUG, VMS Debugger@ Explanation: The subscript values for the supplied mask valueC are different then the subscript values for the target value. ToB minimize confusion, Debug is showing the mask values as well as the target values.4 User Action: None, this message is informational. 3 MASKNOTUSED;mask operations not allowed on record and SCAN tree objects Facility: DEBUG, VMS Debugger? Explanation: A mask operation (as specified by the /TMASK orB /FMASK qualifiers) cannot be performed on a record or SCAN tree object.@ User Action: Specify an array or address range to perform the mask operation on. 3 MASKNOTVMR0mask used is not %VMR, displaying specified mask Facility: DEBUG, VMS Debugger: Explanation: The supplied mask is not %VMR. To minimizeD confusion, Debug is showing the mask values as well as the target values.4 User Action: None, this message is informational. 3 MASKPARNREQ+parenthesis required in 'EXAMINE/xMASK=(x)' Facility: DEBUG, VMS DebuggerC Explanation: Parentheses are required around the mask expression@ specified with the /TMASK or /FMASK qualifiers on the Examine command.: User Action: Include parantheses when specifying a mask expression. 3 MATQUOMISmatching quote is missing Facility: DEBUG, VMS DebuggerC Explanation: The matching quote at the end of a quoted string is missing.; User Action: Correct the error and re-enter the command. 3 MCHVECNOREADDmechanism array for exception frame frame-addr at mchvec-addr is notreadable Facility: DEBUG, VMS DebuggerA Explanation: The debugger is attempting to chain down the callD stack, following frame pointers. The debugger has determined that@  part or all of the mechanism array for the exception frame at@ frame-addr is not accessible for reading. This vector lies at@ mchvec-addr. This usually indicates a corrupt frame list, butD could also indicate that the program has protected part of memory= in which the frame lies. In either case, this is an error.D User Action: Determine what part of your code is writing into theA FP register or overwriting the saved frame pointer on the callC stack (or a preceding saved frame pointer) and correct it. SinceC the debugger looks at the call stack to symbolize addresses, youA may suppress some of these messages by typing the command "SET MODE NOSYMBOLIC". 3 MISCLOSUB%missing closing subscript parenthesis Facility: DEBUG, VMS Debugger9 Explanation: This is a syntax error in a Debug command; User Action: Reinvoke the command with the proper syntax 3 MISINVNUM(misplaced invocation number in path_name Facility: DEBUG, VMS Debugger> Explanation: The invocation number was not placed after the@ innermost (rightmost) routine name in the specified pathname.> User Action: Correct the pathname and re-enter the command. 3 MISINVOPER0missing or invalid operator at 'operator_symbol' Facility: DEBUG, VMS DebuggerC Explanation: An operand was encountered in a language expression= when an operator was expected. For example, 'EVALUATE A B' instead of 'EVALUATE A + B'.9 User Action: Specify valid operators between operands. 3 MISMODBEG3missing Module-Begin record in DST (compiler error) Facility: DEBUG, VMS Debugger@ Explanation: An expected Module-Begin record was not found inD the debugger Symbol Table. This indicates a probable error in the compiler output.; User Action: Submit a Software Performance Report (SPR). 3 MISMODEND8missing Module-End in DST for path_name (compiler error) Facility: DEBUG, VMS DebuggerB Explanation: An expected Module-End record was not found in the@ debugger Symbol Table. This indicates a probable error in the compiler output.; User Action: Submit a Software Performance Report (SPR). 3 MISOPEMIS:misplaced operator or missing operand at 'operator_symbol' Facility: DEBUG, VMS DebuggerC Explanation: An operand was encountered in a language expressionA when an operator was expected, or an operand did not follow anC operator. For example, 'EVALUATE A B' or 'EVALUATE A + ' instead of 'EVALUATE A + B'.9 User Action: Specify valid operators between operands. 3 MODUSCOPE/a module name was expected; path_name not valid Facility: DEBUG, VMS Debugger9 Explanation: This is a syntax error in a Debug command; User Action: Reinvoke the command with the proper syntax 3 MONITMNOTFND2error searching for information on a monitor item. Facility: DEBUG, VMS Debugger@ Explanation: When looking for up information for a particular0 monitor item, the debugger detected an error.A User Action: Try the debugger again, if the same results exist. submit a Software Performance Report (SPR). 3 MONVALTRUNC*monitor value truncated to 256 characters. Facility: DEBUG, VMS DebuggerD Explanation: The monitor view displays a maximum of 256 character values.D User Action: You may monitor specific character ranges or monitor the value in hex. 3 MPARENREQ9parenthesis required around process list in debug_command Facility: DEBUG, VMS Debugger= Explanation: Parentheses must be placed around the process; list for debugger commands SET/PROCESS=(process-list) or DO/PROCESS=(process-list).@ User Action: Place parentheses around the process list in the command. 3 MPCOMMAND:command is only valid when multiprocess support is enabled Facility: DEBUG, VMS Debugger@ Explanation: The debugger was unable to execute the specifiedB command since it is only valid when the debugger's multiprocess support is enabled.? User Action: Restart the debugging session with multiprocessC support enabled. Multiprocess support is enabled by defining theA logical name DBG$PROCESS as follows: ($ DEFINE/JOB DBG$PROCESS MULTIPROCESS) 3 NAMSTRMIS1name string missing or invalid in %NAME construct Facility: DEBUG, VMS DebuggerC Explanation: The %NAME construct requires either a quoted string or a name to be supplied.? User Action: Specify a valid name after the %NAME construct. 3 NAMTOOLONGname is too long: 'symbol_name' Facility: DEBUG, VMS Debugger= Explanation: Display and window names must be less than 80 characters in length.D User Action: Shorten the name to be less than 80 characters long. 3 NEEDMOREunexpected end of command line Facility: DEBUG, VMS Debugger@ Explanation: The command entered was not complete. A required# part of the command was omitted.. User Action: Re-enter the complete command. 3 NEEDPAREN2parenthesis required in THEN, ELSE, and DO clauses Facility: DEBUG, VMS Debugger> Explanation: Parenthesis are required in THEN, ELSE, and DO5 clauses to group the containing debugger commands.A User Action: Correct the THEN, ELSE, or DO clause by including parenthesis. 3 NETFAIL/network connection failed, reason = reason_code Facility: DEBUG, VMS Debugger@ Explanation: The network connection between the host debuggerB and target system can fail for a variaty of reasons. The target@ system may have stopped responding or crashed. Or there could0 have been too many collisions on the network.; User Action: Check the reason code in the documentation. 3 NETRETRY,connection to target system failed, retrying Facility: DEBUG, VMS DebuggerA Explanation: Either the connection could not be started or wasB interrupted due to a failure. The host debugger will try to re- connect to the target system.? User Action: If no connection is re-made after many retries,? check the target system's console for errors. Also check the network. 3 NOACCESSR'no read access to address address_value Facility: DEBUG, VMS Debugger? Explanation: The address you specified cannot be read by the< debugger. Therefore the operation you requested cannot be performed.> User Action: Verify that the address being read is correct.? One way to do this is to use EVALUATE to find the address ofB the specified symbol, or to EXAMINE the descriptor to see if it specifies a valid address. 3 NOACCESSW(no write access to address address_value Facility: DEBUG, VMS DebuggerD Explanation: A DEPOSIT, SET BREAK, or SET TRACE command specified> the address address_value. The debugger does not have writeC access to that page. The debugger requires write access in order4 to be able to set up breakpoints and tracepoints.C User Action: None. You cannot do the requested operation without proper access. 3 NOADDRREGBregister register_name does not have an address use @register_name0to obtain the contents of register register_name Facility: DEBUG, VMS DebuggerD Explanation: The user has requested the address of a register but" registers do not have addresses- User Action: Examine the register directly 3 NOALOCERRLIST!could not allocate an error list. Facility: DEBUG, VMS DebuggerB Explanation: A problem was detected in the processing of an ACAA Services message and Debug could not allocate an error list so5 that this error could be reported to ACA Services.; User Action: Submit a Software Performance Report (SPR). 3 NOALTERSP4deposit into register 14 (stack pointer) not allowed Facility: DEBUG, VMS DebuggerB Explanation: You cannot deposit into the stack pointer register@ because the debugger is on the stack and it would corrupt the$ debugger or program stack frames. User Action: None. 3 NOATTACHattach command failed Facility: DEBUG, VMS DebuggerD Explanation: The ATTACH command could be not performed because ofB an error which was returned by the system service called by theD debugger. The error status returned by the system service routine follows this message.C User Action: Correct the problem based on the associated message, which follows the debugger error message. 3 NOBKPTEXT7error retrieving the text associated with a breakpoint. Facility: DEBUG, VMS DebuggerC Explanation: The debugger could not retrieve the associated text! which belongs to a breakpoint.A User Action: Try the debugger again, if the same results exist. submit a Software Performance Report (SPR). 3 NOBKPTVIEW+the breakpoint view has not been activated. Facility: DEBUG, VMS Debugger@ User Action: Create the breakpoint view from the "VIEW" menu. 3 NOBREAGGR=break or trace points on registers, records or arrays are notallowed Facility: DEBUG, VMS DebuggerB Explanation: Only watchpoints are allowed on registers, records or arrays.> User Action: Either change the address of the breakpoint or6 tracepoint, or specify a watchpoint on the address. 3 NOBREAKAT2cannot set break or trace at address address_value Facility: DEBUG, VMS DebuggerB Explanation: The user has requested that a breakpoint be set atB an address that is either non-writable, in Debug, or invalid in some other way.; User Action: Correct the address and reissue the command 3 NOBREAKSno breakpoints are set Facility: DEBUG, VMS Debugger9 Explanation: The SHOW BREAK command was entered and no breakpoints were set. User Action: None. 3 NOCALLSno active call frames Facility: DEBUG, VMS Debugger? Explanation: The call stack cannot be displayed because yourA program has run to completion, and there are no call frames on the stack. User Action: None. 3 NOCANMAINcannot cancel main image Facility: DEBUG, VMS DebuggerB Explanation: The user has requested that the main image symbols- be canceled. This is an invalid operation.7 User Action: No action required - operation invalid. 3 NOCLI"no CLI present to perform function Facility: DEBUG, VMS DebuggerB Explanation: There is no command line interpreter in the target/ process from which to perform the operation.A User Action: None. You cannot perform the attempted operation. 3 NOCONNECTCONNECT command failed Facility: DEBUG, VMS Debugger> Explanation: The debugger was unable to execute the connect= command. The reason is given in the message following this message.C User Action: Correct the problem given by the messages following? this message. Most often, the problem is due to specifying a process that does not exist. 3 NOCONNECTDEBUG'you cannot connect a debugger to itself Facility: DEBUG, VMS Debugger@ Explanation: The process you are trying to connect to is this debugger.> User Action: Use the connect command with a process name or@ process id of the process you actually want to connect to and* that is NOT your current main debugger. 3 NOCORRFAC9cannot perform operation without the Correlation Facility Facility: DEBUG, VMS Debugger< Explanation: The given operation requires the Correlation> Facility and the appropriate correlation data. Without thisA information, the debugger cannot determine how to complete the operation.: User Action: Make sure that the Correlation Facility is? appropriately set up and in use when compiling and debugging the given program. 3 NOCROSSPROC4cross-process signal system service is not available Facility: DEBUG, VMS Debugger@ Explanation: The debugger was unable to execute the specifiedA command because the cross-process signal system service is not$ available in this version of VMS.? User Action: Upgrade to a version of VMS that has the cross-! process signal system service. 3 NOCROSSUICGRP6cannot connect to a process with a different UIC group Facility: DEBUG, VMS Debugger; Explanation: The given operation is not supported by the@ Debugger. You can only connect to processes with the same UIC- group as the process running the Debugger.D User Action: Make sure that the process you want to connect to is= in the same UIC group as the process running the Debugger. 3 NOCURLOCcurrent location not defined Facility: DEBUG, VMS Debugger- Explanation: '.' is not currently defined.8 User Action: Do not reference '.' until an EXAMINE or/ EVALUATE/ADDRESS command has been performed. 3 NODECTHREADSUP8this command qualifier is not supported by POSIX Threads Facility: DEBUG, VMS Debugger@ Explanation: The POSIX Threads facility does not support this feature. User Action: None. 3 NODEFSCPE+No default scope list: error performing !AC Facility: DEBUG, VMS DebuggerA Explanation: The specified command or built-in symbol requires. that the default scope list be established.> User Action: To establish the default scope list, perform a CANCEL SCOPE command. 3 NODEFWIND2no default window in which to attach your display. Facility: DEBUG, VMS Debugger; Explanation: The display specified did not have a window? associated with it. The Debugger attempted to attach it to aC default window called H1. Debugger discovered that the H1 window had been deleted.D User Action: Either re-create window H1 or specifically specify a2 window that exists when creating a new display. 3 NODELIMTR0missing or invalid instruction operand delimiter Facility: DEBUG, VMS DebuggerB Explanation: A DEPOSIT command specified an invalid instruction operand format.9 User Action: Re-enter the command with valid operands. 3 NODEPDEBUG;depositing into the debugger's address space is not allowed Facility: DEBUG, VMS Debugger< Explanation: The user has tried to deposit into addresses1 occupied by the Debugger. This is not allowed.< User Action: Correct the address and reissue the command. 3 NODIRLISM0no source directory list in effect for path_name Facility: DEBUG, VMS DebuggerC Explanation: The debugger command CANCEL SOURCE/MODULE=path_nameD failed because there is no source directory search list in effect for module path_name.A User Action: This is an informational message. However, if theD wrong module was specified, the command should be re-entered with the correct name. 3 NODIRLIST"no source directory list in effect Facility: DEBUG, VMS Debugger@ Explanation: The debugger command CANCEL SOURCE had no effectB because no source directory search list is currently in effect.4 User Action: None. This message is informational. 3 NODIRNAMESELECTEDno directory is selected. Facility: DEBUG, VMS Debugger 3 NODISCONNECTDISCONNECT command failed Facility: DEBUG, VMS DebuggerA Explanation: The debugger was unable to execute the disconnect= command. The reason is given in the message following this message.C User Action: Correct the problem given by the messages following? this message. Most often, the problem is due to specifying a process that does not exist. 3 NODSTIMGno symbols in image_name Facility: DEBUG, VMS DebuggerC Explanation: The image is linked with the /NODEBUG qualifier, so there is no symbol table.; User Action: Relink the image with the /DEBUG qualifier. 3 NODSTS/no Debugger Symbol Table: no DSF file found and Facility: DEBUG, VMS DebuggerB Explanation: The information the debugger needs to allow you toC debug this section of code is in an image file that could not be opened.D User Action: Check for the existence of the specified file and/or- its associated file protection attributes. 3 NOELABBODY-package body path_name has no executable code Facility: DEBUG, VMS Debugger 3 NOELABSPEC-package spec path_name has no executable code Facility: DEBUG, VMS Debugger 3 NOEND=string beginning with 'string_value' is missing end delimiterdelimiter_character Facility: DEBUG, VMS Debugger> Explanation: A DEPOSIT command specified an ASCII string orA INSTRUCTION string beginning with characters string_value that( do not have a terminating apostrophe.A User Action: Re-enter the command with characters containing a terminating apostrophe. 3 NOEPTSPEC<no eventpoints were specified with a SHOW or CANCEL command. Facility: DEBUG, VMS Debugger@ Explanation: Eventpoints were not given with a SHOW or CANCEL command.@ User Action: Try the command again, specifying eventpoints to operate on. 3 NOEVALEXPR2unable to evaluate expression for following reason Facility: DEBUG, VMS DebuggerD Explanation: The expression could not be evaluated. The following message indicates why.* User Action: See the following message. 3 NOEVENTFACDthe /EVENT qualifier is not allowed: first type 'SET EVENT facility'to specify an event facility Facility: DEBUG, VMS Debugger@ Explanation: No event facility has been set up yet, thereforeA no events which use an event facility can be set, canceled, or displayed.C User Action: Set an event facility, and try the operation again. 3 NOEXCBREno exception breaks were set Facility: DEBUG, VMS DebuggerA Explanation: A CANCEL BREAK/EXCEPTION command was entered whenB exception breaks were not in effect. The CANCEL BREAK/EXCEPTION command had no effect.4 User Action: None. This message is informational. 3 NOEXHNDno exit handlers are declared Facility: DEBUG, VMS Debugger> Explanation: There are no user-mode exit handlers currently declared.4 User Action: None. This message is informational. 3 NOEXITRUN6cannot exit running process !UL-you must STOP it first Facility: DEBUG, VMS DebuggerC Explanation: The debugger cannot exit from the indicated processB because it is running. In order exit the process, it must first be stopped.9 User Action: Use the STOP command to exit the process. 3 NOFIELD*'field_name' is not a field in this record Facility: DEBUG, VMS DebuggerD Explanation: An attempt was made to reference a field that is not defined in the record.> User Action: Check the field specified to ensure that it is defined in the record. 3  NOFREEno free storage available Facility: DEBUG, VMS Debugger; Explanation: The debugger has used all memory available.A User Action: Memory must be made available before the debugger@ can continue executing. SET modules could be canceled, or the> debugging session can be stopped and the system manager can. increase the virtual memory on your system. 3 NOGLOBALS)some or all global symbols not accessible Facility: DEBUG, VMS DebuggerA Explanation: The image was linked with the /NODEBUG qualifier,7 and there are no global symbols in the symbol table.; User Action: Relink the image with the /DEBUG qualifier. 3 NOHEAP%the Heap Analyzer will not be invoked Facility: DEBUG, VMS DebuggerC Explanation: The debugger encountered a problem trying to define; the librtl logical required to invoke the Heap Analyzer.B User Action: Insure there is enough room in the process logicalC name table for the debugger to de fine the librtl logical. If so,@ and the command still fails, define the librtl logical at theA DCL level, restart the debugger and reexecute the RUN or RERUN command. 3 NOHIDDENDEBUG1message cannot be executed when the UI is hidden. Facility: DEBUG, VMS DebuggerB Explanation: The Debug message cannot be executed when a HideUI message is in effect.? User Action: Send the ShowUI message and then re-execute the Debug message. 3 NOHLPLIB1the debu gger could not open the help library file Facility: DEBUG, VMS DebuggerA Explanation: The debugger could not open the help library file4 because there was some low level file open error.A User Action: Check for user quotas being exceeded. For furtherD assistance and information on this problem check with your system manager. 3 NOINPAVAILinput objects not available Facility: DEBUG, VMS DebuggerC Explanation: The debugger was unable to open either DBG $INPUT or SYS$INPUT.C User Action: Check that logicals used to point at input files or devices are properly defined. 3 NOINPFOC8debugger must have input focus to accept paste operation Facility: DEBUG, VMS DebuggerA Explanation: A writeable debugger window and, if applicable, aC text-entry field in that window must have the input focus before8 the selection can be pasted to it from the clipboard.D User Action: Assign the input focus to a writeable wind ow and, if3 applicable, to the appropriate text-entry field. 3 NOINSTRAN1cannot translate opcode at location address_value Facility: DEBUG, VMS Debugger? Explanation: The address specified in the EXAMINE command isB not the beginning of a valid instruction. This can be caused byC specifying an address that is in the middle of an instruction or( by an address that is in a data area.8 User Action: Specify an address that contains a valid instruction.  3 NOINVCTXINSTHAN7cannot retrieve the invocation context instance handle. Facility: DEBUG, VMS DebuggerB Explanation: In the course of trying to execute an ACA ServicesA message, Debug has tried and failed to retrieve the invocation- context instance handle from ACA Services.; User Action: Submit a Software Performance Report (SPR). 3 NOKERNEL3this kernel debugger does not exist in this context Facility: DEBUG, VMS DebuggerC Explanation: Debug main is trying to communicate with the kernelB debugger in a context where the kernel debugger does not exist.; User Action: Submit a Software Performance Report (SPR). 3 NOKEYDEF3cannot accept keypad input, mode is set to NOKEYPAD Facility: DEBUG, VMS Debugger< Explanation: The user is trying to define or set a keypad; definition which can not be performed due to the current operating mode.? User Action: Use a terminal that supports keypad operations. 3 NOKEYPAD#unable to set up keypad definitions Facility: DEBUG, VMS Debugger< Explanation: An error status was returned from the Screen> Management Facility that indicates that the debugger keypad definitions are corrupted.B User Action: Try to set keypad mode again (SET MODE KEYPAD). IfB this fails to correct the problem submit a Software Performance Report (SPR). 3 NOLASTVALlast value is not defined Facility: DEBUG, VMS Debugger- Explanation: '\' is not currently defined.@ User Action: Do not reference '\' until a DEPOSIT or EVALUATE command has been performed. 3 NOLINXXXline_descriptor Facility: DEBUG, VMS Debugger= Explanation: The line number range CZ:yyy specified on the? DEBUGGER command TYPE does not exist. There are no such line; numbers in the specified module (or the default module).D User Action: Re-enter the command specifying line numbers that do exist. 3 NOLIST=list of parameter values not allowed - check use of comma (,) Facility: DEBUG, VMS DebuggerD Explanation: A command that only accepts a single input value for@ a parameter contains multiple values separated by commas (,).; User Action: Re-enter the command; specify one value. If4 necessary, issue the command once for each value. 3 NOLOCALS$image does not contain local symbols Facility: DEBUG, VMS Debugger= Explanation: All the modules in the image were compiled orD assembled without traceback information. There is no local symbol information in the image.D User Action: Recompile or reassemble the modules using the /DEBUG" qualifier and then relink them. 3 NOMAIN=error trying to fetch the main window from the Motif ResourceManager (MRM). Facility: DEBUG, VMS DebuggerC Explanation: The debugger detected an error when trying to fetchA debuggers main window from the Resource Manager. This prevents- the debugger from continuing this session.A User Action: Try the debugger again, if the same results exist. submit a Software Performance Report (SPR). 3 NOMAINIMAGE,host copy of the main system image not found Facility: DEBUG, VMS DebuggerA Explanation: The debugger running on the host system could notB find a local copy of the target system's main image - SYS$BASE_ IMAGE.< User Action: Check to make sure the image search path for= the host is set up correctly. See the System-Code Debugger documentation for details. 3 NOMARKCHNG@[NO]MARK_CHANGE qualifier not applicable to display_name display Facility: DEBUG, VMS DebuggerB Explanation: The /MARK_CHANGE and /NOMARK_CHANGE qualifiers can3 not be applied to the indicated kind of display. User Action: None. 3 NOMATCH no matches Facility: DEBUG, VMS DebuggerC Explanation: A SEARCH command was being used and no matches were found" User Action: No action required 3 NOMONEXPR0no monitor entry was found matching "expression" Facility: DEBUG, VMS Debugger? Explanation: The input "monitor /delete" expression does not* match with any currenly monitored item.B User Action: Retry "monitor /delete" with corrected expression. 3 NOMOREwildcard request complete Facility: DEBUG, VMS Debugger7 Explanation: This is a debugger internal error code.B User Action: If the debugger reports this error please submit a Software Performance Report. 3 NOMOTIF7Motif images not found; defaulting to command interface Facility: DEBUG, VMS Debugger; Explanation: The images of the Motif layered product areD optionally installed. If the Motif user interface to the debuggerC is desired, then Motif must be properly installed, otherwise the( default character cell mode will run.@ User Action: If desiring the Motif user interface, check that Motif is installed correctly. 3 NONAMEDWIDGET-widget by name !AC not found in the UID file. Facility: DEBUG, VMS Debugger 3 NONAMEMATCH<specified name does not match any name in the selection box. Facility: DEBUG, VMS DebuggerB Explanation: A name was entered as the selection that is not in the selection box.+ User Action: Select a name from the box. 3 NONEXPRnonexistent process Facility: DEBUG, VMS DebuggerB Explanation: A process name or process identification specified  in a command is not valid.A User Action: Verify that the process name or identification isD correct and that the process was not already deleted. Also verify> that you have the required privilege to access the process. 3 NONEXPRC,process process-specification does not exist Facility: DEBUG, VMS Debugger> Explanation: The process-specification was not valid or the# specified process did not exist.D User Action: Verify that the process specification is correct and? that the process still exists and then re-enter the command. 3 NONUMSCOPE:scope does not exist or is not in set module: scope_number Facility: DEBUG, VMS DebuggerB Explanation: The debugger could not find the scope indicated by( the numbered scope in the scope list.8 User Action: Set the module that contains that scope. 3 NONXTLIN(next line for source display not defined Facility: DEBUG, VMS Debugger? Explanation: The debugger command TYPE or SEARCH was entered? without specifying a line number (for example, the next lineB after the last source line printed should be used). But no next$ source line is currently defined.> User Action: Re-enter the command explicitly specifying the desired line number. 3 NOOCCLDISP(display_name display may not be occluded Facility: DEBUG, VMS DebuggerC Explanation: A display was positioned over the indicated display@ that is not allowed to be occluded. The indicated display was popped to the front.= User Action: You may wish to move the display so it is not0 occluded by the display named in the message. 3 NOOPNIMAGEcannot open image image_name Facility: DEBUG, VMS DebuggerB Explanation: The information the debugger needs to allow you toC debug this section of code is in an image file that could not be opened.D User Action: Check for the existence of the specified file and/or- its associated file protection attributes. 3 NOOUTAVAIL output objects are not available Facility: DEBUG, VMS DebuggerD Explanation: The debugger was unable to open either DBG$OUTPUT or SYS$OUTPUT.D User Action: Check that logicals used to point at output files or devices are properly defined. 3 NOOUTVIEW"error writing to the Message view. Facility: DEBUG, VMS DebuggerA Explanation: The debugger got an unexpected status when tryingA to write to the Message view . This prevents the debugger from continuing this session.A User Action: Try the debugger again, if the same results exist. submit a Software Performance Report (SPR). 3 NOPACKMEMBODY7'symbol_name' is not a member of package body path_name Facility: DEBUG, VMS Debugger 3 NOPACKMEMSPEC7'symbol_name' is not a member of package spec path_name Facility: DEBUG, VMS Debugger 3 NOPARSEINSTHAND4cannot parse the invocation context instance handle. Facility: DEBUG, VMS DebuggerB Explanation: Debug cannot parse the invocation context instance& handle retrieved from ACA Services.; User Action: Submit a Software Performance Report (SPR). 3 NOPREDlogical predecessor not defined Facility: DEBUG, VMS Debugger< Explanation: The logical predecessor of the identifier or) instruction referenced is not defined.4 User Action: None. This message is informational. 3 NOPROCDEBUG/there are currently no processes being debugged Facility: DEBUG, VMS DebuggerC Explanation: The debug session is currently not connected to any user processes.= User Action: Either RUN a program or CONNECT to a program. 3 NOPROCESSES8the current command is targetted at an empty process set Facility: DEBUG, VMS DebuggerD Explanation: The set of processes at which the current command is targetted is empty.< User Action: Either change the current process set, run a> program, connect to a p rogram, stop a program or wait for a program 3 NOPROGRAM2function function_name requires a running program. Facility: DEBUG, VMS Debugger= Explanation: There is no program currently being debugged.D User Action: Start a program using RUN or RERUN, then reenter the command. 3 NOPROMPTCcannot delete, remove, unselect, or change kind of the display_namedisplay Facility: DEBUG, VMS Debugger9 Explanation: This display can not be deleted, removed,!) unselected, or have it's kind changed. User Action: None. 3 NOPTHDBG*no compatible pthread debugger established Facility: DEBUG, VMS DebuggerB Explanation: Either this threaded application is not controlledC by PTHREAD$RTL or else this debugger was built to interface withD a PTHREAD$DBGSHR that is incompatible with the system PTHREAD$RTL versionA User Action: pthread commands are not possible, use older task> commands, for example, SHOW TASK/ALL, o"r upgrade your POSIX Threads environment 3 NORADBLIFLD,radix override not allowed with BLISS fields Facility: DEBUG, VMS Debugger< Explanation: The use of a radix override qualifier is notA supported when evaluating a BLISS field reference. BLISS fieldC references are always displayed using a decimal notation. It is,D however, possible to use a radix override qualifier when refering$ to the contents of a BLISS field.< User Action: Don't use a radix switch wit#h a BLISS field. 3 NORECSYM>recursive symbol_type symbol definition encountered at or near'debugger_command_segment' Facility: DEBUG, VMS Debugger> Explanation: While attempting to expand a defined symbol, a/ recursive symbol definition was encountered.B User Action: Redefine the symbol specified in the error messageA so that it does not contain any circular dependencies and then re-enter the command. 3 NOREDEFINE.predefined process set !AC cannot be r$edefined Facility: DEBUG, VMS Debugger; Explanation: Predefined process set cannot be redefined.D User Action: Choose a different name for the user-defined process set. 3 NORERUNPGMthere is no program to RERUN. Facility: DEBUG, VMS DebuggerA Explanation: You must RUN a program first before you can RERUN it.: User Action: Use the RUN command and specify a program. 3 NORESUMEDunable to resume execution, stack or PC corrupted in %PROCESS_NU %MBER process_id Facility: DEBUG, VMS Debugger@ Explanation: The debugger has determined that the stack or PCC is corrupted. The top application frame is so corrupted that the1 debugger is unable to do normal STEPs and GOs.> User Action: Look at what little valid information is left,? especially the call stack, machine instruction view, currentB PC, FP, etc. It may be possible to realize the stack corruption= and fix it by hand through deposits to stack locations and&? registers. It should also be possible to CALL or GO newPC if@ the call target or newPC is valid. More likely, you will need? exit/quit, start over, and attempt to find and fix the point3 where your application corrupts the stack or PC. 3 NORETBRKALTBRKAunable to set return break; breakpoint set on caller's return PC. Facility: DEBUG, VMS Debugger7 Explanation: This is a debugger internal error code.B User Action: If the debugger reports this error please su'bmit a Software Performance Report. 3 NORETBRKSTEP;unable to set return break, stepping to caller's return PC. Facility: DEBUG, VMS Debugger7 Explanation: This is a debugger internal error code.B User Action: If the debugger reports this error please submit a Software Performance Report. 3 NORMALsuccessful debugger status Facility: DEBUG, VMS DebuggerB Explanation: This is an internal status signal, it should neverB be seen by the user. If( this message does occur please submit a% Software Performance Report (SPR).; User Action: Submit a Software Performance Report (SPR). 3 NORSTBLDcannot build symbol table Facility: DEBUG, VMS Debugger> Explanation: The debugger is unable to build a symbol table5 because of errors in the format of the image file.C User Action: Relink the image and, if the error is reproducible,@ submit a Software Performance Report explaining how the image file was crea)ted. 3 NOSAVEDREGSDcan't find the saved registers for the CALL command for frame frame-addr Facility: DEBUG, VMS DebuggerA Explanation: The debugger is attempting to chain down the call? stack, following frame pointers. The debugger has determinedA that the frame at frame-addr was caused by a CALL command fromC the debugger. The debugger is unable to find the register set it1 saved for the context before the CALL command.D User Action: Determine what part of* your code is writing into theA FP register or overwriting the saved frame pointer on the callC stack (or a preceding saved frame pointer) and correct it. SinceC the debugger looks at the call stack to symbolize addresses, youA may suppress some of these messages by typing the command "SET MODE NOSYMBOLIC". 3 NOSAVPROG!cannot save a program I/O display Facility: DEBUG, VMS Debugger@ Explanation: The SAVE command is not allowed on a program I/O? display since+ the debugger does not know the contents of the display. User Action: None. 3 NOSCOPE+no scope exists to look up line line_number Facility: DEBUG, VMS DebuggerA Explanation: The specified line_number cannot be found because. there is no current scope to look it up in.; User Action: Specify the module explicitly and retry the operation. 3 NOSCOPELIST2a list of scopes is not allowed with this command. Facility: DEBUG, VMS Debugger: Exp,lanation: You cannot enter a list of scopes with the previously executed command.; User Action: Enter the command with only one scope item. 3 NOSCRATCHSPACE.the target system has run out of scratch space Facility: DEBUG, VMS DebuggerB Explanation: Scratch space is allocated on the target system toC implement single stepping. The target system has run out of this% space so no more work can be done.D User Action: Reboot the target system with more scratch spa-ce andB try the debugger again. See the documentation for more details. 3 NOSCRDEVAscreen mode is not supported on this device screen mode output is being lost Facility: DEBUG, VMS DebuggerB Explanation: The debugger output is being sent to a device that> the Screen Management Facility does can not write to. WhileB the debugger will continue to process commands, the screen mode output will be lost.@ User Action: Make sure the logical DBG$OUTPUT is pointed to a.; device that the Screen Management Facility can write to. 3 NOSCRMODEDscreen mode is not supported on this terminal screen mode is not set Facility: DEBUG, VMS DebuggerD Explanation: Screen mode is not allowed on the terminal type used by the current session.> User Action: Use another terminal if screen mode is desired 3 NOSCROLL5no scrolling display selected or missing display name Facility: DEBUG, VMS Debugger> Explanation: The user did not ent/er a display name with theB command, and the debugger attempted to use the display with theA SCROLL attribute. However, no display currently has the SCROLL attribute.@ User Action: Either reenter the command, specifying a display= name, or SELECT a display to have the SCROLL attribute and reenter the command. 3 NOSCROLLDISP(display_name display may not be scrolled Facility: DEBUG, VMS Debugger1 Explanation: This display can not be scrolled. User Ac0tion: None. 3 NOSEGLISTDerror trying to access a source display segment in routine function_name. Facility: DEBUG, VMS DebuggerD Explanation: The debugger got an unexpected status when trying toC access a source display segment. This prevents the debugger from continuing this session.A User Action: Try the debugger again, if the same results exist. submit a Software Performance Report (SPR). 3 NOSEMEVENTS3no semantic events defined for the specified s1ymbol Facility: DEBUG, VMS Debugger< Explanation: There are no semantic events defined for the specified symbol.( User Action: Pick a different symbol. 3 NOSETTERM:the SET TERMINAL command is not supported on this terminal Facility: DEBUG, VMS Debugger> Explanation: The SET TERMINAL command is not allowed on the. terminal being used for the current session, User Action: Use another type of terminal 3 NOSMG7could not locate SMGSHR (or locale spe 2cific equivalent) Facility: DEBUG, VMS DebuggerA Explanation: The debugger relies on the ability to dynamically> link to the SMGSHR.EXE (or a locale specific equivalent) atD runtime. (The locale specific equivalent of SMGSHR.EXE is denoted@ by defining logical, DBG$SMGSHR.) When this error occurs, theB debugger cannot locate the SMG sharable image and hence, cannot run.A User Action: Verify that the SMG sharable image exists. If so,/ please submit a Software Perf3ormance Report. 3 NOSPAWNspawn command failed Facility: DEBUG, VMS DebuggerA Explanation: The debugger failed to perform a SPAWN command orD SPAWN an editor. The error status returned from the SPAWN command% is appended to this error message.> User Action: If the SPAWN error is correctable, correct the@ problem and reenter the command. If not, the SPAWN command is unavailable. 3 NOSRCHSTRsearch string not set Facility: DEBUG, VMS DebuggerD4 Explanation: No current search string is defined for the debuggerB command SEARCH. The SEARCH command was entered without a searchC string indicating that the current search string should be used.> But no previous SEARCH command has been entered to define a current search string.C User Action: Explicitly specify the desired search string on the command. 3 NOSRCLIN(no source line for address address_value Facility: DEBUG, VMS DebuggerB Explanation: No s5ource line corresponds to the address address_: value specified on the debugger command EXAMINE/SOURCE.4 User Action: None. This message is informational. 3 NOSTEPGOCno STEP, GO, SET PROCESS/VISIBLE or CALL commands allowed in screendisplays Facility: DEBUG, VMS Debugger? Explanation: A STEP, GO, SET PROCESS/VISIBLE or CALL commandC was used in a screen display command list. The debugger does not; allow the use of such commands in display command lists.B U6ser Action: Re-specify the screen display command list without( using any of the disallowed commands. 3 NOSUCClogical successor not defined Facility: DEBUG, VMS DebuggerC Explanation: The logical successor of the referenced instruction or identifier is not defined.4 User Action: None. This message is informational. 3 NOSUCHBPTno such breakpoint Facility: DEBUG, VMS DebuggerB Explanation: The CANCEL BREAK command specified an address that& is 7not the address of a breakpoint.B User Action: Use the SHOW BREAK command to find the location ofD the current breakpoints, and then cancel any of these breakpoints that you want to cancel. 3 NOSUCHDISP%no such display defined: display_name Facility: DEBUG, VMS DebuggerB Explanation: The specified display does not exist.< User Action: Re-enter the command, specifying an existing display. 3 NOSUCHELP*no such help topic or in8valid HELP command Facility: DEBUG, VMS DebuggerA Explanation: The user has requested help for a topic for which> there is no help or the syntax used to request the help was invalidD User Action: Try another topic or just type HELP for a topic list 3 NOSUCHIMGimage image_name not found Facility: DEBUG, VMS Debugger> Explanation: The specified image does not exist.C User Action: Re-enter the command, specifying an existing image.9 3 NOSUCHMODU'module path_name is not in module chain Facility: DEBUG, VMS DebuggerA Explanation: The module path_name, specified in the SET MODULEC command, does not exist in the image. This message can be caused@ when: (1) a module name has been entered incorrectly or (2) a/ module is compiled with the /NOTRACE switch.6 User Action: Specify a module that is in the image. 3 NOSUCHPACK4library package path_name is not in the symbol table Facility:: DEBUG, VMS Debugger 3 NOSUCHSCOPE8scope does not exist or is not in set module: scope_name Facility: DEBUG, VMS DebuggerD Explanation: The user has requested that the current scope be set4 to a scope that is invalid for the current module? User Action: Correct the scope specification and reissue the command 3 NOSUCHTASK1no such task exists or no task satisfies criteria Facility: DEBUG, VMS Debugger@ Explanation: The user entered a task expression; that does notD correspond to an existing task, or no existing task satisfies the task expression.? User Action: Reenter the command with a task expression that specifies an existing task. 3 NOSUCHTPTno such tracepoint Facility: DEBUG, VMS DebuggerB Explanation: The CANCEL TRACE command specified an address that' was not the address of a tracepoint.A User Action: Use the SHOW TRACE command to display the current; tracepoints and then cancel any that <you want to cancel. 3 NOSUCHWIND$no such window defined: display_name Facility: DEBUG, VMS Debugger@ Explanation: The specified, or defaulted window does not exist.B User Action: Reenter the command, specifying an existing window name. 3 NOSUCHWPTno such watchpoint Facility: DEBUG, VMS DebuggerB Explanation: The CANCEL WATCH command specified an address that' was not the address of a watchpoint.A User Action: Use the =SHOW WATCH command to display the current; watchpoints and then cancel any that you want to cancel. 3 NOSYMBOL/symbol 'symbol_name' is not in the symbol table Facility: DEBUG, VMS Debugger@ Explanation: The debugger could not find the symbol '' in its symbol table.@ User Action: The symbol may have been entered incorrectly, inA which case the fix is to enter the symbol correctly. The other> possibility is that the module the symbol is defi>ned in hasB not been loaded into the debugger's symbol table; perform a SET$ MODULE of the appropriate module. 3 NOSYMBOLR9no symbol 'symbol_name' was declared in routine path_name Facility: DEBUG, VMS Debugger 3 NOTADAPROG.program is not an ADA program; command ignored Facility: DEBUG, VMS DebuggerB Explanation: The entered command applies only to Ada programs ;D since this is not an Ada program, the command cannot be executed.( User Action: No user ?action required. 3 NOTARRAYtype of variable is not array Facility: DEBUG, VMS DebuggerC Explanation: The variable being treated as an array has not been defined as one.B User Action: Check that the correct variable reference is being made. 3 NOTASTRUCT-'symbol_name' was not declared as a structure Facility: DEBUG, VMS Debugger> Explanation: A VAX BLISS-32 structure reference specified a8 symbol symbol_name that was not declared a structure.@C User Action: Re-enter the command with a valid symbol reference. 3 NOTATMAINType GO to reach MAIN program Facility: DEBUG, VMS Debugger< Explanation: The debugger has started at the beginning of LIB$INITIALIZE code.B User Action: If you want to get to the actual start of the main? program you should type GO at the debug prompt. The debugger@ will allow the program to execute the LIB$INITIALIZE code and@ then break at the start of the main program. If yAou'd like toD debug the LIB$INITIALIZE code you are positioned to do so at this point. 3 NOTCURPC?target of EXAMINE/OPERANDS is not the current PC results may be unexpected Facility: DEBUG, VMS Debugger> Explanation: The operands being examined will probably give= incorrect results, because the context for the instruction? is probably not set up properly. Specifically, the values of@ registers used in address computations depend on the previousD series of iBnstructions being executed, which was not done in this case.5 User Action: Only use EXAMINE/OPERANDS with .0\%PC 3 NOTDECTHREADS,program does not use POSIX Threads services. Facility: DEBUG, VMS DebuggerB Explanation: The entered command applies only to programs using POSIX Threads services.( User Action: No user action required. 3 NOTDEFINEdefined_symbol was not defined Facility: DEBUG, VMS Debugger> Explanation: The symbol was not found in Cthe defined symbol table.B User Action: Check your spelling or use SHOW DEFINE to see what symbols have been defined. 3 NOTEDITABLEthis text can not be edited. Facility: DEBUG, VMS Debugger 3 NOTEXPANDABLEthis entry cannot be expanded. Facility: DEBUG, VMS Debugger 3 NOTEXTSELECTEDselect some text and try again. Facility: DEBUG, VMS Debugger 3 NOTIMPLAN3expression_type is not implemented at command level Facility: DEBUG, DVMS DebuggerB Explanation: The expression_type is not supported at this type.> User Action: Specify a type of expression that the debugger supports. 3 NOTIMSLI<time slice modification not supported by this event facility Facility: DEBUG, VMS Debugger? Explanation: The current event facility does not support theA ability to to dynamically modify time slicing in the debugger.D User Action: This operation is not supported by the debugger. The; user must recEode his application to change time slicing. 3 NOTINLOOP'exitloop encountered when not in a loop Facility: DEBUG, VMS DebuggerB Explanation: An incorrect nesting of loops exist in the command# stream currently being executed.* User Action: Correct the command stream 3 NOTINSCOPE9specified scope cannot be found in the default scope list Facility: DEBUG, VMS DebuggerB Explanation: The specified scope was not in the current default scope list.= F User Action: Enter the command with a scope that is in the default scope list. 3 NOTINST3examined address is not the start of an instruction Facility: DEBUG, VMS DebuggerD Explanation: The examined address does not denote the start of an instruction.C User Action: Specify an address that does denote the start of an instruction. 3 NOTKEPTCFunction function_name applies only to Kept Debugger configuration. Facility: DEBUG, VMS DebuggerD ExpGlanation: This command only makes sense when executed from the+ Kept Debugger configuration of DECdebug.8 User Action: Restart debugger using the Kept Debugger* configuration and re-enter the command. 3 NOTNUMSCOPE(specified scope is not a numbered scope. Facility: DEBUG, VMS DebuggerA Explanation: The SET SCOPE/CURRENT command requires a numbered scope.8 User Action: Enter the command with a numbered scope. 3 NOTORIGSRC<original version of source f Hile not found file used is file_ specification Facility: DEBUG, VMS Debugger@ Explanation: A source file was found for some module. But theB revision date and time or the file size indicates that this mayD not be the same version of the file that was used in the original< compilation of the module. This warning message indicatesA that future source line displays from this source file may not> correspond to the actual source used to compile the module.> User Action: NoIne, unless the original source is available.? Then you can use the debugger command SET SOURCE to indicate. the location of the source to the debugger. 3 NOTPTR(variable must be of pointer or file type Facility: DEBUG, VMS Debugger@ Explanation: The variable should be a pointer or a file type.; User Action: Specify a variable of pointer or file type. 3 NOTRACES)no tracepoints are set, no opcode tracing Facility: DEBUG, VMS Debugger? Explanation: JThere are no tracepoints or opcode tracing set.4 User Action: None. This message is informational. 3 NOTRAZEROCUnable to find a trailing zero for ASCIZ object at address address_value Facility: DEBUG, VMS DebuggerC Explanation: The debugger was unable to find a trailing zero for the specified ASCIZ string.C User Action: The ASCIZ string is missing a trailing zero, or the* object examined is not an ASCIZ string. 3 NOTRECORD>variable is not record; caKnnot select component component_name Facility: DEBUG, VMS Debugger> Explanation: The user has requested a record operation on a" variable which is not a record.2 User Action: Correct the command and reissue it 3 NOTREE1SCAN tree or subtree not found SCAN error message Facility: DEBUG, VMS Debugger 3 NOTRUNDW<the debugger is uncertain about the DECWindow configuration. Facility: DEBUG, VMS Debugger; Explanation: The debugger is uncertain about thLe systems DECWindow configurationA User Action: Try the debugger again, if the same results exist. submit a Software Performance Report (SPR). 3 NOTSAVED%Unable to save configuration options. Facility: DEBUG, VMS Debugger? Explanation: The Debugger was unable to access the necessary resource file.? User Action: If attempting to SAVE OPTIONS, check to be sure? that the logical name DECW$USER_DEFAULTS is properly definedB and that the assigned direc Mtory has write access. If attempting= to RESTORE DEFAULT OPTIONS, check to be sure both logicalsC DECW$USER_DEFAULTS and DECW$SYSTEM_DEFAULTS are properly definedB and are accessible. The user defaults directory must have writeD access while the system defaults directory must have read access.C Finally, be sure that the file DECW$SYSTEM_DEFAULTS:VMSDEBUG.DATC exists (installed during Operating System installation). If not, contact your system manager. 3 NOTTASKVAL.Nexpression does not specify a valid task value Facility: DEBUG, VMS DebuggerD Explanation: The expression entered does not specify a valid taskD value. Only Ada task values are known as such in the symbol table1 - Thread values are considered to be pointers.= User Action: Unless you are debugging threads, reenter the. command, correctly specifying a task value. 3 NOTTHREADNUM1expression does not specify a valid thread number Facility: DEBUG, VMS Debugger?O Explanation: The expression entered does not specify a valid thread sequence number.B User Action: Reenter the command, correctly specifying a thread number. 3 NOTUISOSC@the debugger will be unable to create a separate window; OSC notenabled. Facility: DEBUG, VMS DebuggerC Explanation: The debugger requires OSC support enabled to create- a separate window (see SET MODE SEPARATE).B User Action: To allow the debugger to create a separate window,A type Pat DCL: DEFINE/SYSTEM UIS$VT_ENABLE_OSC_STRINGS TRUE. You: may wish to put this line in your private startup file. 3 NOTUISV30@the debugger will be unable to create a separate window; UIS tooold. Facility: DEBUG, VMS DebuggerC Explanation: The debugger requires VWS V3.0 or later to create a+ separate window (see SET MODE SEPERATE).B User Action: To allow the debugger to create a separate window,B install VWS V3.0 or later, and in your private startup file (or9 Q at DCL), DEFINE/SYSTEM UIS$VT_ENABLE_OSC_STRINGS TRUE. 3 NOTUNQOVR"symbol 'symbol_name' is overloaded Facility: DEBUG, VMS Debugger> Explanation: More than one instance of the specified symbolC '' exists in the user program. Without furtherB information, the debugger cannot determine which symbol to use.D User Action: Re-enter the command, uniquely specifying the symbol> to be used. The SHOW SYMBOL command can be used to find the unique symbolR names. 3 NOTUPDATE&instruction screen display not updated Facility: DEBUG, VMS Debugger> Explanation: The instruction screen display was not updated* because of the preceding error message.0 User Action: See the preceding error message. 3 NOTYPEINFO@symbol type information not available please SET the module thatdescribes this type Facility: DEBUG, VMS DebuggerA Explanation: The user has requested information about a symbol3 which cannot be proSvided in the current context.= User Action: SET the module containing the information and reissue the command 3 NOTYPELEN@'symbol_name' has no type or length information, cannot proceed. Facility: DEBUG, VMS DebuggerD Explanation: The requested information cannot be obtained becauseC the entity in question doesn't have all the attributes necessary& to follow through with the request.4 User Action: None. This message is informational. 3 NOUI>debuggerT user interface image not found; defaulting to command interface Facility: DEBUG, VMS Debugger? Explanation: The user interface portion of the debugger is a* separate image which cannot be located.A User Action: Check that the debugger is properly installed. If9 so, please submit a Software Performance Report (SPR). 3 NOUNIQ"symbol 'symbol_name' is not unique Facility: DEBUG, VMS DebuggerB Explanation: The symbol specified was not in a default scope or&U was defined in more than one scope.@ User Action: Specify the scope of the symbol in a pathname or change the default scope. 3 NOUNIQUE"symbol 'symbol_name' is not unique Facility: DEBUG, VMS DebuggerB Explanation: The symbol specified was not in a default scope or& was defined in more than one scope.@ User Action: Specify the scope of the symbol in a pathname or change the default scope. 3 NOUNIVERSALS-shareable image contains no universal symbolVs Facility: DEBUG, VMS Debugger= Explanation: No universal symbols were found in the image. User Action: None. 3 NOUSREVNT7no user-specified events are allowed; none are declared Facility: DEBUG, VMS DebuggerD Explanation: A reference was made to an event, when no such event( had been defined (language not SCAN).@ User Action: Reenter the last command, without specifying any events. 3 NOVALATPC<entity 'symbol_name' does not have a value at Wthe current PC Facility: DEBUG, VMS DebuggerB Explanation: The value of the specified variable does not exist= at this point in the program's execution. For example, theC variable might be assigned to a register that is currently being used for some other purpose.? User Action: Retry the operation at a point in the program's3 execution when the variable is being referenced. 3 NOVALTYP4'symbol_name' has no value because it is a type name Facility: DEBUGX, VMS Debugger 3 NOVALUEreference does not have a value Facility: DEBUG, VMS DebuggerD Explanation: The command specified a reference that has no value.% User Action: Change the reference. 3 NOVECT/no vector support - command cannot be performed Facility: DEBUG, VMS Debugger? Explanation: An attempt was made to modify vector state on a@ system which has neither hardware vector capabilities nor theD VVIEF. This includes the EXAMINE vector-registeYr, DEPOSIT vector-* register, and SET VECTOR_MODE commands.A User Action: Do not attempt to modify vector state on a system+ which does not have vector capabilities. 3 NOVIEWQUAL*no qualifier specified on the VIEW command Facility: DEBUG, VMS Debugger> Explanation: There were no qualifiers specified on the VIEW command.C User Action: Reenter the command, specifying a qualifier for the VIEW command. 3 NOWATCHESno watchpoints are set FacilZity: DEBUG, VMS Debugger' Explanation: No watchpoints are set.4 User Action: None. This message is informational. 3 NOWATONOPT7cannot watch entity; not in memory (was optimized away) Facility: DEBUG, VMS Debugger@ Explanation: A watchpoint cannot be set on that entity due to* optimizations performed by the compiler> User Action: Recompile the program with no optimizations in effect 3 NOWATTARcannot watch protected target Facility: DEBUG, [VMS DebuggerA Explanation: You are attempting to set a /STATIC watchpoint onC a location that is either a register, is not in your program, orA is on the stack (P1 space). These kinds of locations cannot be+ watchpointed with the /STATIC qualifier.D User Action: Either use the /NOSTATIC qualifier, or do not watch- point this location. 3 NOWATVARIA)cannot set watchpoints on variant records Facility: DEBUG, VMS DebuggerD Explanation: The user has request\ed that a watchpoint be set on a< variant record. This operation is not currently supported' User Action: No user action required 3 NOWATVARSTG=watchpoints not allowed after SET TYPE ASCIC, ASCIW, or ASCIZ Facility: DEBUG, VMS Debugger 3 NOWBPTcannot insert breakpoint Facility: DEBUG, VMS DebuggerB Explanation: This message indicates an internal debugger error.; User Action: Submit a Software Performance Report (SPR). 3 NOWILDno wildcard ]permitted Facility: DEBUG, VMS Debugger; Explanation: Wildcards are not permitted in this context< User Action: Re-enter the command without using wildcards 3 NOWILDFIL1file name, type, and version cannot be wildcarded Facility: DEBUG, VMS DebuggerC Explanation: The components of a file specification entered in a, SET SOURCE command may not be wildcarded.@ User Action: Reenter the command without wildcarding any file specification components. ^3 NOWOPCO%cannot replace breakpoint with opcode Facility: DEBUG, VMS DebuggerB Explanation: This message indicates an internal debugger error.; User Action: Submit a Software Performance Report (SPR). 3 NOWPROTcannot set protection Facility: DEBUG, VMS DebuggerB Explanation: This message indicates an internal debugger error.; User Action: Submit a Software Performance Report (SPR). 3 NOWRITEACCESS8unable to set breakpoint at break-addr, no write_ access. Facility: DEBUG, VMS DebuggerC Explanation: Most debugger startups set a breakpoint in the user@ program and then return control to that program. The debuggerC regains control when that breakpoint is hit. It is necessary forD the debugger to have write access to the user program in order to set breakpoints.A User Action: Change/allow write access to your program's code. 3 NO_SYNC_FROM_EXC_BRE4synchronize can not be done from an exception break. ` Facility: DEBUG, VMS Debugger= Explanation: A synchronize command can not be done from an exception break.C User Action: Do not perform a synchronization command when at an exception break. 3 NPROMPT+could not initialize state to accept input. Facility: DEBUG, VMS DebuggerB Explanation: The debugger it could not properly setup the stateC to accept input. This prevents the debugger from continuing this session.A User Action: Try the debugger agaain, if the same results exist. submit a Software Performance Report (SPR). 3 NULLPTRcannot dereference null pointer Facility: DEBUG, VMS Debugger 3 NULWIDGET=error retrieving widget information in routine function_name. Facility: DEBUG, VMS Debugger> Explanation: The debugger detected an error when retrieving@ information on a particular widget in the MOTIF toolkit. This6 prevents the debugger from continuing this session.A User Action: Try the debubgger again, if the same results exist. submit a Software Performance Report (SPR). 3 NUMCONLONG)numeric constant too long, please shorten Facility: DEBUG, VMS DebuggerA Explanation: A number entered in the command line is too long.@ User Action: Reenter the command, shortening the long number. 3 NUMTRUNCnumber truncated Facility: DEBUG, VMS Debugger> Explanation: The number entered is greater than the largest? signed longword integer. The value chas been truncated to the the largest signed integer. User Action: None. 3 NYI function is not yet implemented. Facility: DEBUG, VMS Debugger 3 OBJECTINVrequested object is invalid Facility: DEBUG, VMS DebuggerB Explanation: This message indicates an internal debugger error. User Action: Submit an SPR. 3 OBJPTRINV;the pointer associated with the requested object is invalid Facility: DEBUG, VMS DebuggerB Explanation: This messadge indicates an internal debugger error. User Action: Submit an SPR. 3 OBJTYPMIS:the type associated with the requested object is incorrect Facility: DEBUG, VMS DebuggerB Explanation: This message indicates an internal debugger error. User Action: Submit an SPR. 3 OBSOLETE_1#this message is available for reuse Facility: DEBUG, VMS DebuggerC Explanation: This message is obsolete, and should never be seen.< User Action: Please submit a Softwaree Performance Report. 3 OBSOLETE_2#this message is available for reuse Facility: DEBUG, VMS DebuggerC Explanation: This message is obsolete, and should never be seen.< User Action: Please submit a Software Performance Report. 3 OBSOLETE_3#this message is available for reuse Facility: DEBUG, VMS DebuggerC Explanation: This message is obsolete, and should never be seen.< User Action: Please submit a Software Performance Report. 3 OBSOLETE_4f#this message is available for reuse Facility: DEBUG, VMS DebuggerC Explanation: This message is obsolete, and should never be seen.< User Action: Please submit a Software Performance Report. 3 OBSOLETE_5#this message is available for reuse Facility: DEBUG, VMS DebuggerC Explanation: This message is obsolete, and should never be seen.< User Action: Please submit a Software Performance Report. 3 OPCDEC6no support for G/H instructions at or near ogpcode_name Facility: DEBUG, VMS Debugger 3 OPNOTALLOW:operator 'operator_symbol' not allowed on given data types Facility: DEBUG, VMS DebuggerB Explanation: The debugger encountered a problem when performingD the operation '' on the specified operands., This may be a data type conversion error.D User Action: Reenter the command, specifying compatible operands. 3 OPSYNTAXBinstruction operand syntax error for operand number operand_nuhmber Facility: DEBUG, VMS Debugger? Explanation: The debugger encountered an error in one of the operands of an instruction.C User Action: If the instruction was entered by the user, reenterD the instruction, correcting the operand error. If not, then there4 may be an error in the user program instructions. 3 OUTPUTLOST:output being lost, both NOTERMINAL and NOLOG are in effect Facility: DEBUG, VMS DebuggerD Explanation: The SET OUTPUT command has set tihe output conditions; to NOTERMINAL and NOLOG; consequently, the output is notA displayed on the terminal or written to a log file. The output< normally displayed by the debugger will not be available.@ User Action: Use the SET OUTPUT command to send output to the terminal or to a log file. 3 OVRWIDGETFAIL@error trying to fetch and override an object from MRM in routinefunction_name. Facility: DEBUG, VMS Debugger? Explanation: The debugger detected an error wjhen fetching anB object from the Motif Resource Manager (MRM) for the purpose ofB overriding behavior. This prevents the debugger from continuing this session.A User Action: Try the debugger again, if the same results exist. submit a Software Performance Report (SPR). 3 PACSIZREQpacked size required Facility: DEBUG, VMS Debugger, Explanation: A size parameter is required? User Action: Supply a size parameter and reissue the command 3 PARENREQBpakrentheses required around qualifier value in 'debug_cmd_segment' Facility: DEBUG, VMS DebuggerC Explanation: The indicated qualifier value must be surrounded by parentheses.? User Action: Place parentheses around the type of expression specified. 3 PARSTKOVR)parse stack overflow, simplify expression Facility: DEBUG, VMS DebuggerB Explanation: The expression was too complex for the debugger to evaluate.( User Action: Simplify the expression. l 3 PASTHRU-The primary handler should ignore this signal Facility: DEBUG, VMS DebuggerB Explanation: This is an internal status signal, it should neverB be seen by the user. If this message does occur please submit a% Software Performance Report (SPR).; User Action: Submit a Software Performance Report (SPR). 3 PATHNOTACPDpathname qualifiers (path_name) not allowed in SHOW SYMBOL data name Facility: DEBUG, VMS DebuggerA Explanation: The user has issuemd a command with invalid syntax' User Action: No user action required 3 PATHTLONGtoo many qualifiers on name Facility: DEBUG, VMS DebuggerC Explanation: There are too many pathname elements in the entered' pathname for the debugger to handle.D User Action: Shorten the pathname entered, either by abbreviatingA the pathname, defining a symbol for the pathname, or setting a7 search scope so that you can use a shorter pathname. 3 PATHTOOLONGpathnamen too long at path_name Facility: DEBUG, VMS DebuggerD Explanation: The entered pathname is too long for the debugger to handle.D User Action: Shorten the pathname entered, either by abbreviatingA the pathname, defining a symbol for the pathname, or setting a7 search scope so that you can use a shorter pathname. 3 PCLINLOOKUP4error trying to associate the PC with a line number. Facility: DEBUG, VMS DebuggerB Explanation: The debugger detected an error wheon looking up the! PC to line number correlation.A User Action: Try the debugger again, if the same results exist. submit a Software Performance Report (SPR). 3 PCNOTALL;PC not allowed in context for operand number operand_number Facility: DEBUG, VMS Debugger9 Explanation: Using the PC as an operand in the entered instruction is not allowed.C User Action: If the instruction was entered by the user, reenter@ the instruction, without using the PC in the opperand. If not,? then there may be an error in the user program instructions. 3 PLICVTERR+PLI conversion error at or near opcode_name Facility: DEBUG, VMS DebuggerC Explanation: An error occurred in the PL/I RTL performing a data6 type conversion, for the object .C User Action: Reenter the command, specifying a legitimate object for the operation desired. 3 PREDEPTNOT%predefined eventpoint(s) not canceled Facility: DEBUG, VMS DeqbuggerA Explanation: Any existing predefined eventpoints have not been. canceled as the result of a CANCEL command.A User Action: Specify the /PREDEFINED qualifier with the CANCEL, command to cancel predefined eventpoints. 3 PRMNOTAVAIL5the command parameter parameter_name is not available Facility: DEBUG, VMS DebuggerC Explanation: The specified command parameter, although available? in some debug implementations, is not available in this one.? One reasorn why is that the parameter just doesn't make sense@ on the platform. For example, the JSB parameter on a SET STEPD command doesn't make sense on Alpha VMS because there is no "JSB"( instruction like there is on VAX VMS.: User Action: Reissue the command without the parameter. 3 PRNOTRDYprocess not ready Facility: DEBUG, VMS DebuggerB Explanation: A process name or process identification specifiedB in a command is either delete pending or not fully connected tos yet.A User Action: Verify that the process name or identification isD correct and that the process was not already deleted. Also verify> that you have the required privilege to access the process. 3 PROFRANOT2proper frame not found on call stack for path_name Facility: DEBUG, VMS Debugger@ Explanation: You attempted to look at a variable in a routine" invocation that does not exist.? User Action: Specify a routine or routine invocation that is currenttly active. 3 PROMPTCLENDdisplay_name display width not changed, must be full width of screen Facility: DEBUG, VMS DebuggerC Explanation: This display's width can not be changed. It must be the full width of the screen. User Action: None. 3 PROMPTOCCL=display_name display now occludes some or all of display_namedisplay's text Facility: DEBUG, VMS Debugger< Explanation: This display now occludes some or all of the specified display. Useur Action: None. 3 PROMPTRLENAdisplay_name display length not changed, must be at least 2 lineslong Facility: DEBUG, VMS Debugger@ Explanation: This display's length can not be changed to less$ than the minimum value specified. User Action: None. 3 PROVRFLOW&too many levels of @ procedure nesting Facility: DEBUG, VMS DebuggerC Explanation: The user has nested indirect command processing too deeplyB User Action: Try to eliminate some of tvhe levels of indirection% or look for a recursive invocation 3 PSHINARYNYICPUSH_INNER_ARRAY DST stack machine operator for array 'symbol_name'is not yet implemented Facility: DEBUG, VMS DebuggerC Explanation: The named array is unconstrained, and its subscript= bounds live in different places at different points in theA program's execution. This cannot be denoted using DEBUG SymbolD Table (DST) features which this version of the debugger supports.@ User Actiwon: Verify that you are using the latest releases ofC the compiler and debugger. Examine the nearest object code which? references the variable and simulate the access algorithm by hand. 3 PSHVALNYIBPUSH_VALSPEC DST stack machine operator for variable 'symbol_name'is not yet implemented Facility: DEBUG, VMS Debugger@ Explanation: The named variable's address is complex, and its> computation uses operands which live in different places at> different points in thex program's execution. This cannot be= denoted using DEBUG Symbol Table (DST) features which this$ version of the debugger supports.D User Action: Verify that you are using the latest releases of theA compiler and debugger. Try recompiling the application withoutA optimization. Examine the nearest object code which references: the variable and simulate the access algorithm by hand. 3 PTHDBGFAIL5PTHREAD debugger call failed, error code (hex) status Facility: DEBUGy, VMS Debugger? Explanation: The OpenVMS Debug PTHREAD command calls a POSIX, Threads Debugger image. That call failed.D User Action: Check your POSIX Threads Debugger command syntax and> semantics (see Guide to POSIX Threads, debugging appendix). 3 PTHREADINVALCMD&invalid POSIX Threads debugger command Facility: DEBUG, VMS DebuggerA Explanation: Your PTHREAD command had an invalid POSIX ThreadsB debugger command string. See Debugger Manual and Guide To POSIX<z Threads for legal POSIX Threads debugger command strings.? User Action: Re-issue the command with a legal POSIX Threads debugger command string. 3 PTRNOTSET;'symbol_name' is not initialized (try a STEP command first) Facility: DEBUG, VMS DebuggerD Explanation: An object containing either virtual member functionsD or virtual base classes contain pointers to tables which are usedB to implement those features of the C++ language. Such a pointerC is initialized {by a constructor, and hence is not valid prior toA the execution of that constructor. Certain debugger operationsD applied to such an object require that such a pointer to be valid@ in order for the debugger operation to complete successfully.9 User Action: Advance the program until the appropriate@ constructor has been executed. Usually, a single STEP command will suffice. 3 PXCNArecord object or record formal parameter must prefix 'CONSTRAINED Facility: DEBUG|, VMS Debugger 3 QUALNOTAVAIL5the command qualifier qualifier_name is not available Facility: DEBUG, VMS DebuggerC Explanation: The specified command qualifier, although available? in some debug implementations, is not available in this one.? One reason why is that the qualifier just doesn't make sense= on the platform. For example, the /JSB qualifier on a STEPD command doesn't make sense on Alpha VMS because there is no "JSB"( instruction like there is on VAX }VMS.: User Action: Reissue the command without the qualifier. 3 QUALREQ@A direction qualifier must be specified with the EXPAND and MOVE commands. Facility: DEBUG, VMS DebuggerB Explanation: Direction ( UP, DOWN, LEFT, RIGHT ) information is missing from the command.C User Action: Provide a direction with the command and try again. 3 QUOSTRLONG&quoted string too long, please shorten Facility: DEBUG, VMS DebuggerA Explanation: A quoted string wa~s entered in a debugger command1 that was too large for the debugger to handle.C User Action: Reenter the command, shortening the string entered. 3 READERR0debugger input read error; session may terminate Facility: DEBUG, VMS Debugger< Explanation: Excessive read errors have occurred from theB input command stream. The Debugger may exit after printing this message.: User Action: Check the physical integrity of the device@ containing the input stream. Also check that the input bufferC is large enough to handle the input stream or reduce the rate of command entry. 3 REENTER1reenter the command using a more precise pathname Facility: DEBUG, VMS Debugger> Explanation: More than one instance of the specified symbol? exists in the user program. Without further information, the1 debugger cannot determine which symbol to use.D User Action: Re-enter the command, uniquely specifying the symbol> to be used. The SHOW SYMBOL command can be used to find the unique symbol names. 3 REFUSEDattach request refused Facility: DEBUG, VMS Debugger@ Explanation: Either you have attempted to attach to a process? that is your own process or that is not part of your process tree.A User Action: None. You cannot perform the attempted operation. 3 REGMASKHIDDEN6register save mask hidden for stack frame frame_number Facility: DEBUG, VMS Debugger; Explanation: Information on  where the designated routine? invocation might save registers is in a module which has notC been set. Symbolic references to non-static variables of callersB of this routine may not be resolved correction by the debugger.= User Action: Set the module by using the SET MODULE or SETC MODULE/CALLS commands, or enable dynamic module setting with theA SET MODE DYNAMIC command. Then retry the action which produced this message. 3 REGMASKMISSING7register save mask missing for stack frame frame_number Facility: DEBUG, VMS Debugger; Explanation: Information on where the designated routine= invocation might save registers is not available. Symbolic@ references to non-static variables of callers of this routine2 may not be resolved correction by the debugger.D User Action: Recompile or reassemble the modules using the /DEBUG" qualifier and then relink them. 3 REGNAMEFAIL%error registering resources with MRM. Facility: DEBUG, VMS Debugger? Explanation: The debugger detected an error when registeringA resources with the Motif Resource Manager (MRM). This prevents- the debugger from continuing this session.A User Action: Try the debugger again, if the same results exist. submit a Software Performance Report (SPR). 3 REGREQ>register required in context for operand number operand_number Facility: DEBUG, VMS DebuggerC Explanation: A register is required to establish context for the specified operand.C User Action: If the instruction was entered by the user, reenterC the instruction, using a register with the specified operand. IfD not, then there may be an error in the user program instructions. 3 REGWRERR<unable to write/update register set, stack likely corrupted. Facility: DEBUG, VMS Debugger? Explanation: Debug kernel failed to write/update the current@ context register set. Any pending deposits or steps may fail.> Continuatio n in the presence of a corrupted stack typically= results in unpredictable program and/or debugger behavior.A User Action: Look at what little valid information is left and? then start over. Attempt to find and fix the point where the> stack gets corrupted. It may be possible to examine program@ state, but continuing instruction execution typically results5 in unpredictable program and/or debugger behavior. 3 RENAMENOTBUnable to look up 'symbol_name', object being renamed not found in symbol table Facility: DEBUG, VMS Debugger@ Explanation: The user has requested an operation on an object* that was not found in the symbol table./ User Action: Correct and reissue the command 3 RESUMERRAan error occurred while trying to resume execution of the program Facility: DEBUG, VMS DebuggerA Explanation: An error status was returned from the call to theD debugger-kernel service that resumes program execution. Depending@ on the severity of the error, the program may or may not have resumed execution.< User Action: Examine the error message after this message< and consider if the problem is related to a lack of quota? or otherwise related to your program's behavior. If so, thenA take corrective action. If, after this evaluation, you believe@ that the problem lies in the debugger, then submit a Software Performance Report (SPR). 3 RETURNED(control returned to process process_name Facility: DEBUG, VMS Debugger; Explanation: Control has returned to the parent process. User Action: None. 3 RNDFCTROUTround factor out of range Facility: DEBUG, VMS Debugger? Explanation: The DIBOL scale factor is out of the acceptable range 3 ROPRANDF-reserved operand fault at or near opcode_name Facility: DEBUG, VMS DebuggerC Explanation: The debugger encountered an opcode that is reserved to Digital.C User Action: If the instruction was entered by the user, reenterC the instruction, without using an opcode reserved to Digital. IfD not, then there may be an error in the user program instructions. 3 ROUTNOTAVAIL*the source to routine !AC is not available Facility: DEBUG, VMS Debugger> Explanation: There is no source available for this routine. 3 RPCDBBDT Bad DTYPE for RPC Data Blocking. Facility: DEBUG, VMS DebuggerB Explanation: This message indicates an internal debugger error.; User Action: Submit a Software Performance Report (SPR). 3 RPCERR;an internal inter-process communications error has occurred Facility: DEBUG, VMS DebuggerB Explanation: An internal communications error has occurred. The9 reason is given in the message following this message.A User Action: If the error is reproducible, and not a result of> continued instruction execution after a severe error (stack; corruption, resource exhaustion, etc.) submit a Software> Performance Report (SPR) and if possible, enclose a copy of@ the program being debugged, its build procedure, and a logged/ debugging session that reproduces the error. 3 RPCINVDSCinvalid RPC descriptor Facility: DEBUG, VMS DebuggerB Explanation: This message indicates an internal debugger error.; User Action: Submit a Software Performance Report (SPR). 3 RPCOVFRPC packet overflow Facility: DEBUG, VMS DebuggerB Explanation: This message indicates an internal debugger error.; User Action: Submit a Software Performance Report (SPR). 3 RPCUNF"undefined RPC function encountered Facility: DEBUG, VMS DebuggerB Explanation: This message indicates an internal debugger error.; User Action: Submit a Software Performance Report (SPR). 3 RPCUNKARG"undefined RPC argument encountered Facility: DEBUG, VMS DebuggerB Explanation: This message indicates an internal debugger error.; User Action: Submit a Software Performance Report (SPR). 3 RSTERRerror in symbol table Facility: DEBUG, VMS Debugger< Explanation: There is a format error in the symbol table.C User Action: If the format error is not caused by a user programD error or a DEPOSIT command, submit a Software Performance Report. 3 SAVED%File: DECW$USER_DEFAULTS:VMSDEBUG.DAT Facility: DEBUG, VMS DebuggerB Explanation: The Debuggers current customization resources have> been written to the DECW$USER_DEFAULTS directory (typically< sys$login). If the user selected RESTORE DEFAULT OPTIONS,= then a copy of the system-wide resource file, DECW$SYSTEM_? DEFAULTS:VMSDEBUG.DAT, has been copied to the users resource! directory, DECW$USER_DEFAULTS.A User Action: The resources will be activated the next time the Debugger is started. 3 SCALEADDDpointer addition: scale factor of scale_factor applied to right/leftargument Facility: DEBUG, VMS DebuggerC Explanation: Indicates the scale factor applied in computing the address. User Action: None. 3 SCALESUBBpointer subtraction: a scale factor of scale_factor applied to the right/left Facility: DEBUG, VMS DebuggerC Explanation: Indicates the scale factor applied in computing the address. User Action: None. 3 SCRNOACCESSRCno read access to address address_value for display in display_name Facility: DEBUG, VMS Debugger 3 SCRNOSRCLIN)No source line for address: address_value Facility: DEBUG, VMS DebuggerB Explanation: No source line corresponds to the address address_: value specified on the debugger command EXAMINE/SOURCE.4 User Action: None. This message is informational. 3 SCRNOTORIGSRCAoriginal version of source file not found for display in display_$name file used is file_specification Facility: DEBUG, VMS Debugger@ Explanation: A source file was found for some module. But t heB revision date and time or the file size indicates that this mayD not be the same version of the file that was used in the original< compilation of the module. This warning message indicatesA that future source line displays from this source file may not> correspond to the actual source used to compile the module.> User Action: None, unless the original source is available.? Then you can use the debugger command SET SOURCE to indicate. the location of the source to the debugger. 3 SCRTOBIG?screen too big for Screen Mode width must be less than maximum_&width, height less than maximum_height Facility: DEBUG, VMS Debugger? Explanation: The current screen dimensions are too large for debugger screen mode.C User Action: Change the screen dimensions to be small enough for debugger screen mode. 3 SCRTOSMALL@screen too small for Screen Mode width must be at least minimum_-width, height must be at least minimum_height Facility: DEBUG, VMS Debugger? Explanation: The current screen dimensions are too small for debugger screen mode.C User Action: Change the screen dimensions to be large enough for debugger screen mode. 3 SCRUNAOPNSRC-unable to open source file file_specification Facility: DEBUG, VMS DebuggerD Explanation: Source lines from the file file_specification cannotB be displayed because the debugger was unable to open the sourceA file (represented as file_specification). The accompanying RMSB status message gives more information about the reasons for the source file not being opened.? User Action: Examine the RMS status message to determine the= reasons for the source file not being opened, and take the0 appropriate action based on that information. 3 SCRUNAREASRC-unable to read source file file_specification Facility: DEBUG, VMS DebuggerD Explanation: Source lines from the file file_specification cannotB be displayed because the debugger was unable to read the sourceA file (represented as file_specification). The accompanying RMSB status message gives more information about the reasons for the source file not being opened.; User Action: Examine the RMS status message to determine? the reasons for the source file not being read, and take the0 appropriate action based on that information. 3 SDDKERNOTAVAIL@system dump kernel of the VMS system dump debugger not available Facility: DEBUG, VMS Debugger> Explanation: The system dump kernel for the VMS system dump, debugger is not available on this system.: User Action: Contact your Digital Representative on the availability of this feature. 3 SELECTFAIL&error processing the user's selection. Facility: DEBUG, VMS Debugger> Explanation: The debugger detected an error when processing? the user's selection. The selection did not match any of theC specified selections in the list box. This prevents the debugger from continuing this session.A User Action: Try the debugger again, if the same results exist. submit a Software Performance Report (SPR). 3 SENDRETRY0network failure occurred during a send, retrying Facility: DEBUG, VMS DebuggerA Explanation: A network failure occurred during a send. This isB most likely due to excessive network traffic. The debugger willD retry the send until it sees a network time-out. Then it will try" to re-establish the connection.5 User Action: Wait for progress or network failure. 3 SETKEY'keypad state has been set to state_name Facility: DEBUG, VMS Debugger8 Explanation: The specified keypad state has been set. User Action: None. 3 SETKEYERR$error in processing SET KEY command: Facility: DEBUG, VMS Debugger> Explanation: An error has occurred during a SET KEY command 3 SFCNTNEGshift count is negative Facility: DEBUG, VMS Debugger 3 SHOKEYERR%error in processing SHOW KEY command: Facility: DEBUG, VMS Debugger@ Explanation: An error has occurred during the processing of a SHOW KEY command 3 SHRPRCdebugger sharing users process Facility: DEBUG, VMS Debugger: Explanation: An error occurred while trying to create aD subprocess to run the main debugger image. This message indicates> that the debugger is attempting to run in the user process.= User Action: Correct the problem specified in the messagesD preceding this message. If the problem cannot be solved, submit a% Software Performance Report (SPR). 3 SIDEFFECT1operators with side effects not supported (++, -) Facility: DEBUG, VMS DebuggerB Explanation: The user has requested the use of an operator thatA has side effects. This operation is not currently supported by the Debugger.; User Action: Issue the operation and the side effects as individual commands 3 SIG VECNOREADBsignal vector for exception frame frame-addr at sigvec-addr is notreadable Facility: DEBUG, VMS DebuggerA Explanation: The debugger is attempting to chain down the call? stack, following frame pointers. The debugger has determined@ that part or all of the signal vector for the exception frame@ at frame-addr is not accessible for reading. This vector liesC at sigvec-addr. This usually indicates a corrupt frame list, butD could also indicate that the program ha s protected part of memory= in which the frame lies. In either case, this is an error.D User Action: Determine what part of your code is writing into theA FP register or overwriting the saved frame pointer on the callC stack (or a preceding saved frame pointer) and correct it. SinceC the debugger looks at the call stack to symbolize addresses, youA may suppress some of these messages by typing the command "SET MODE NOSYMBOLIC". 3 SIGVECTRUNCsignal vector was truncated Facility: DEBUG, VMS DebuggerD Explanation: The signal vector on this stack frame was too big to fit into the DEBUG buffer.B User Action: Submit an SPR. This message is handled internally,, and should never be signaled to the user. 3 SILENTERROR silent error Facility: DEBUG, VMS DebuggerA Explanation: This error should never be displayed to the debug7 user. It is an internal debuger only condition code. User Action: None. 3 SIZEATOMIC/only atomic data types are supported with 'SIZE Facility: DEBUG, VMS Debugger; Explanation: SIZE is not supported on the item requested' User Action: No user action required 3 SIZETRUNC'size field truncated to size_limit bits Facility: DEBUG, VMS DebuggerD Explanation: The size of the entry in a BLISS field specificationA was larger then size_limit. The debugger set the entry size to' size_limit and executed the command.4 User Action: None. This message is informational. 3 SOURCESCOPE!Source lines not available for .0 Facility: DEBUG, VMS DebuggerD Explanation: There were no source lines available for the currentA PC, so the debugger displayed the source lines for the calling@ routine. The source lines may be unavailable because the code> associated with the current PC is not available (e.g. is in@ a Digital-supplied shareable image) or was compiled or linked /NODEBUG.B User Action: If source modules is available, then recompile and5 relink the application using the /DEBUG qualifier. 3 SPAWNEDsubprocess spawned Facility: DEBUG, VMS DebuggerA Explanation: This message is output by the DEBUG command SPAWN when it spawns a subprocess.4 User Action: None. This message is informational. 3 SRCLINNOT/source lines not available for module path_name Facility: DEBUG, VMS DebuggerC Explanation: The source lines from module CZ cannot be displayedA  or searched because there is no source line information in theC symbol table for that module. Either the compiler is not able toD generate such information or the /DEBUG qualifier was not used on# the compilation or link command.@ User Action: If the language in question supports source lineB display, recompile and relink with the /DEBUG qualifier. If theC language does not support source line display, source lines will? not be available to the debugger for modules written in that language. 3 SRCNOTCURAV?source code for line !UL in module !AC not currently available. Facility: DEBUG, VMS Debugger 3 SSIEARLYSTOPDchecking for static watchpoint hits before the actual system servicereturn address Facility: DEBUG, VMS DebuggerA Explanation: The debugger was unable to set a breakpoint at orA step to a system sevice return address. It attempts to do thisB when intercepting system service calls during static watchpoint event processing.? User Action: If there was a watchpoint hit, examine the call@ stack and find the frame before the DBGSSISHR (or SYS$SSISHR)D frame in order to realize the correct context and instruction forD the watchpoint hit. Otherwise, it is safe to ignore this message. 3 SS_INTsystem service intercepted Facility: DEBUG, VMS DebuggerC Explanation: This error code is used by the debugger to indicate. that a system service has been intercepted.B User Action: Submit an SPR. This message is handled internally,, and should never be signaled to the user. 3 SS_INT_END"system service intercept cycle end Facility: DEBUG, VMS DebuggerC Explanation: This error code is used by the debugger to indicate. that a system service has been intercepted.B User Action: Submit an SPR. This message is handled internally,, and should never be signaled to the user. 3 SS_INT_START$system service intercept cycle start Facility: DEBUG, VMS DebuggerC Explanation: This error code is used by the debugger to indicate. that a system service has been intercepted.B User Action: Submit an SPR. This message is handled internally,, and should never be signaled to the user. 3 STEPINTO#cannot step over PC = address_value Facility: DEBUG, VMS DebuggerD Explanation: The debugger was unable to step over the routine and, executed a step into the routine instead.4 User Action: None. This message is informational. 3 STGTRUNCstring truncated Facility: DEBUG, VMS DebuggerD Explanation: While processing the command, the debugger truncated a text string.> User Action: The debugger failed to allocate a large enoughA buffer to store the command output. Unless the reason for this; is apparent, submit a Software Performance Report (SPR). 3 STRNGPADAstring operand lengths don't match, shorter padded with blanks on the right Facility: DEBUG, VMS DebuggerD Explanation: The operands of a string comparison ( 'ABC' < 'AB' )B did not have the same length. The shorter one is blank extended on the right./ User Action: Use strings of the same length. 3 STRTOOLONG0strings longer than 255 characters not supported Facility: DEBUG, VMS Debugger@ Explanation: The string that was specified by the user is too# large for the debugger to handle? User Action: Try to redo the operation with a shorter string 3 STRUCSIZEDstructure size declared as num_units allocation units, num_units wasgiven Facility: DEBUG, VMS DebuggerB Explanation: The VAX BLISS-32 structure size was declared to be; num_units units but was referenced with num_units units.4 User Action: None. This message is informational. 3 SUBOUTBND+subscript subscript_number is out of bounds Facility: DEBUG, VMS Debugger? Explanation: An attempt to subscript out of the bounds of an array was made.2 User Action: Change the value of the subscript. 3 SUBSCRNG?subscript out of range, low/high bound for dimension subscript_number is subscript_bound Facility: DEBUG, VMS DebuggerD Explanation: The subscript specification is not within the bounds of the array.; User Action: Reenter the command, specifying a subscriptA specification that is within the bounds defined for the array. 3 SUBSTRINGAinvalid substring (start: low_bound, end: high_bound), object haslength string_size Facility: DEBUG, VMS DebuggerC Explanation: The substring specification (start: low_bound, end:C high_bound ) is not within the bounds defined for the data type.C User Action: Specify a substring specification within the bounds defined for the data type. 3 SUPERDEBUGSUPERDEBUG not available Facility: DEBUG, VMS DebuggerA Explanation: This is a Debug internal message. The user should never see this message.= User Action: If you see this message, please submit an SPR describing the circumstances. 3 SYMNOTACT/non-static variable 'symbol_name' is not active Facility: DEBUG, VMS DebuggerB Explanation: The symbol symbol_name is not defined in an active call frame.C User Action: Check the symbol specified; if correct, ensure that( you have defined the scope correctly. 3 SYMNOTFND.no symbols matching defined_symbol are defined Facility: DEBUG, VMS DebuggerD Explanation: You attempted to use the SHOW SYMBOL command to show a symbol that is not defined.A User Action: Verify that the symbol is defined and reenter the command. 3 SYNCDONEvector synchronization complete Facility: DEBUG, VMS Debugger? Explanation: This signal is generated by the debugger kernel; after it has executed the synchronization instruction(s); necessary to insure that all vector exceptions have been reported.B User Action: Submit an SPR. This message is handled internally,, and should never be signaled to the user. 3 SYNCREPCOMSynchronize reporting complete Facility: DEBUG, VMS DebuggerA Explanation: All current vector exceptions have been reported.4 User Action: None, this message is informational. 3 SYNC_ALREADY_IN_PROGRESS synchronize already in progress. Facility: DEBUG, VMS DebuggerB Explanation: Only one synchronize command is allowed at a time.B User Action: Do not perform a synchronization command until the" previous command has completed. 3 SYNERREXPR@syntax error in expression at or near 'debugger_command_segment' Facility: DEBUG, VMS DebuggerD Explanation: The debugger encountered text it does not understand* near ''.A User Action: Reenter the command, correcting the syntax error. 3 SYNERRLABELBsyntax error in %LABEL construct, see HELP Built_in_Symbols %LABEL Facility: DEBUG, VMS DebuggerC Explanation: The debugger encountered an error in the use of the %LABEL built-in symbol.A User Action: Reenter the command line, correcting the error in the %LABEL construct. 3 SYNERRLINE@syntax error in %LINE construct, see HELP Built_in_Symbols %LINE Facility: DEBUG, VMS DebuggerC Explanation: The debugger encountered an error in the use of the %LINE built-in symbol.A User Action: Reenter the command line, correcting the error in the %LINE construct. 3 SYNTAX:command syntax error at or near 'debugger_command_segment' Facility: DEBUG, VMS DebuggerD Explanation: The debugger encountered a command syntax error near( the element debugger_command_segment.% User Action: Re-enter the command. 3 TARGREJ-target system rejected the connection request Facility: DEBUG, VMS DebuggerC Explanation: The target system rejected. This can be because theA target system is not in a debuggable state, you have specified@ the password incorrectly, or a system with this name does not exist on the network.A User Action: Check spelling of the node name or password. AlsoC verify that the system is in a debuggable state (booted with the correct flags). 3 TASKERROR&error error_code from ADA multitasking Facility: DEBUG, VMS Debugger@ Explanation: An unexpected error was returned to the debugger? from the Ada RTL. Additional information from the Ada RTL is" appended to this error message.D User Action: User action is dependent on the information returnedB from the Ada RTL. If the error is not recoverable, the user may, wish to enter an SPR on the Ada compiler. 3 TASKNONULL(Null task cannot be selected or modified Facility: DEBUG, VMS Debugger 3 TASKNOREGS+Task has no registers (it is the Null task) Facility: DEBUG, VMS Debugger 3 TASKNOTABORT@task not aborted; ADA multitasking is executing critical section Facility: DEBUG, VMS DebuggerC Explanation: The task specified may not be aborted at this time.0 User Action: Retry the abort at a later time. 3 TASKNOTACTAtask cannot be made the active task; task is not ready or running Facility: DEBUG, VMS DebuggerD Explanation: The task specified to made the active task is not inD either the READY nor the RUNNING state. Tasks not in those states@ cannot be made the active task. To determine the state of the% task, perform a SHOW TASK command.A User Action: If the task is in the TERMINATED state, no actionA is possible. If the task is in the SUSPENDED state, the actionD required to get the task in the READY or RUNNING state depends on; the user program and the state of the debugging session. 3 TASKNULL0task is null; cannot set attributes of null task Facility: DEBUG, VMS Debugger 3 TERMINATINGprogram is terminating Facility: DEBUG, VMS DebuggerC Explanation: The process process-specification has just finishedA execution. All exit handlers in your program have run. Any SETB BREAK/TERMINATING or SET TRACE/TERMINATING events will now take effect.B User Action: Submit an SPR. This message is handled internally,, and should never be signaled to the user. 3 THDSTACKOVER4thread thread_number's stack is close to overflowing Facility: DEBUG, VMS DebuggerB Explanation: This thread's stack is close to overflow ing, it isC over 66% full. Note that the debug kernel image runs on the userB stacks, i.e. consumes user stack resources. Also the debug mainB image will run on the user stacks IF the debugger configurationA is one process (DBG$PROCESS logical set to "NONE"). If a stackD does overflow, memory errors, e.g. access violations, bus errors,* segmentation faults, will likely occur.B User Action: Your code may need to change to create this threadC with a larger stack, see the Guide to POSIX Threads. Also always@ run the debugger in its DEFAULT or MULTIPROCESS configuration( when debugging threaded applications. 3 THISMEMBER@primary (at address) has already been built for this->membername Facility: DEBUG, VMS DebuggerB Explanation: This is an internal status signal, it should neverB be seen by the user. If this message does occur please submit a% Software Performance Report (SPR).; User Action: Submit a Software Performance Report (SPR). 3 TIMESLICE3time slice interval has been slowed to 10.0 seconds Facility: DEBUG, VMS Debugger@ Explanation: DEBUG has changed the ADA time slice interval to> 10.0 seconds. When you set watchpoints, DEBUG automaticallyD increases the value of pragma TIME_SLICE to 10.0. This is because? of interaction between the watchpoint implementation and VAX@ Ada's time slicing. Slowing down the time-slice rate prevents problems from occurring.C User Action: If the change in time-slice setting is undesirable,% then avoid the use of watchpoints. 3 TOOFEWSUB7too few subscripts, array has num_dimensions dimensions Facility: DEBUG, VMS DebuggerB Explanation: The user has specified a symbol reference with too few subscripts/ User Action: Correct and reissue the command 3 TOOMANDIMtoo many dimensions in array Facility: DEBUG, VMS Debugger 3 TOOMANERR)too many errors, some errors not reported Facility: DEBUG, VMS DebuggerD Explanation: Too many MISMODBEG or certain other errors occurred.) Other similar errors are not reported.4 User Action: None. This message is informational. 3 TOOMANINV.too many invocation numbers in symbol pathname Facility: DEBUG, VMS Debugger 3 TOOMANPARMtoo many parameters on command Facility: DEBUG, VMS Debugger 3 TOOMANSUB8too many subscripts, array has num_dimensions dimensions Facility: DEBUG, VMS DebuggerB Explanation: The user has specified a symbol reference with too many subscripts/ User Action: Correct and reissue the command 3 TRUNC64#address !@XH being truncated in !AC Facility: DEBUG, VMS Debugger? Explanation: A 64-bit address is being truncated to 32-bits,C such that information is being lost. This is a debugger internal error.B User Action: Please submit a Software Performance Report (SPR). 3 UIISHIDDEN'the User Interface is currently hidden. Facility: DEBUG, VMS Debugger? Explanation: Debug did not hide the UI because it is already hidden.$ User Action: No action necessary. 3 UIISSHOWN*the User Interface is currently displayed. Facility: DEBUG, VMS DebuggerA Explanation: Debug did not show the UI because it is currently displayed.$ User Action: No action necessary. 3 UNAACCREG+unable to access beyond end of register set Facility: DEBUG, VMS Debugger> Explanation: The command entered attempted to read or write0 beyond the end of a register or register set.> User Action: Re-enter the command, insuring that you do not8 attempt to access beyond the end of the register set. 3 UNACREDBGO,unable to create DBG$OUTPUT, SYS$OUTPUT used Facility: DEBUG, VMS Debugger 3 UNACVT-unable to convert radixvalue to datatype_name Facility: DEBUG, VMS DebuggerD Explanation: Debug was unable to perform the requested conversion' User Action: No user action required 3 UNACVTBYTTAU9error converting byte count into target addressable units Facility: DEBUG, VMS Debugger3 Explanation: This is an internal debugger error.? User Action: If the error is reproducible, submit a Software= Performance Report and, if possible, enclose a copy of the< program being debugged, its build procedure, and a logged/ debugging session that reproduces the error. 3 UNALIGNED&data is not aligned on a byte boundary Facility: DEBUG, VMS DebuggerC Explanation: The user has requested a type override that can not be performed' User Action: No user action required 3 UNALLOCATED9'symbol_name' is not allocated in memory (optimized away) Facility: DEBUG, VMS DebuggerD Explanation: The requested entity is not available for use due to* optimizations performed by the compiler> User Action: Recompile the program with no optimizations in effect 3 UNAOPEDBGI(unable to open DBG$INPUT, SYS$INPUT used Facility: DEBUG, VMS Debugger 3 UNAOPESCR+unable to open DBG$OUTPUT for screen output Facility: DEBUG, VMS Debugger 3 UNAOPNDSF6unable to open Debugger Symbol File file_specification Facility: DEBUG, VMS DebuggerD Explanation: The Debugger Symbol File (DSF) cannot be opened. TheA accompanying VMS RMS status message gives you more information3 about the reasons for the file not being opened.C User Action: Examine the VMS RMS status message to determine theB reasons for the debugger symbol file not being opened, and takeB action based on that information. Also, verify that the logicalB name DBG$IMAGE_DSF_PATH is defined to indicate the proper file. 3 UNAOPNHLP.unable to open help library file_specification Facility: DEBUG, VMS DebuggerD Explanation: The help library file_specification cannot be opened? to look for the help you requested. The accompanying VAX RMSB status message gives you more information about the reasons for the library not being opened.? User Action: Examine the VAX RMS status message to determineB the reasons for the help library not being opened, and take theB appropriate action based on that information. Also, verify thatD the logical name DBG$HELP is either not defined, or is defined to indicate the proper file. 3 UNAOPNINI5unable to open initialization file file_specification Facility: DEBUG, VMS Debugger= Explanation: The initialization file cannot be opened. TheA accompanying VMS RMS status message gives you more information3 about the reasons for the file not being opened.C User Action: Examine the VMS RMS status message to determine theA reasons for the initialization file not being opened, and takeB action based on that information. Also, verify that the logical8 name DBG$INIT is defined to indicate the proper file. 3 UNAOPNSRC-unable to open sou rce file file_specification Facility: DEBUG, VMS DebuggerD Explanation: Source lines from the file file_specification cannotB be displayed because the debugger was unable to open the sourceA file (represented as file_specification). The accompanying RMSB status message gives more information about the reasons for the source file not being opened.? User Action: Examine the RMS status message to determine the= reasons for the source file not being opened, and take the0 appropriate action based on that information. 3 UNAORIGSRC:unable to open the original source file file specification Facility: DEBUG, VMS Debugger6 Explanation: Source lines from the original (before= preprocessing) source file cannot be displayed because the< debugger could not get the necessary information from the Correlation Facility.D User Action: Check your Correlation Facility logicals and library5 to see that they are referencing the proper files. 3 UNAREASRC-unable to read source file file_specification Facility: DEBUG, VMS DebuggerD Explanation: Source lines from the file file_specification cannotB be displayed because the debugger was unable to read the sourceA file (represented as file_specification). The accompanying RMSB status message gives more information about the reasons for the source file not being opened.; User Action: Examine the RMS status message to determine? the reasons for the source file not being read, and take the0 appropriate action based on that information. 3 UNASAVVAL;unable to save value for defined_symbol, definition ignored Facility: DEBUG, VMS Debugger 3 UNASETEVENTunable to set thread event Facility: DEBUG, VMS Debugger> Explanation: This is likely an internal error in either the< debugger or the thread facility. Please submit a Software Performance Report (SPR).; User Action: Submit a Software Performance Report (SPR). 3 UNASETIMG=unable to set image image_name because it has no symbol table Facility: DEBUG, VMS DebuggerC Explanation: The image is linked with the /NODEBUG qualifier, so there is no symbol table.; User Action: Relink the image with the /DEBUG qualifier. 3 UNASETTAS3unable to set visible task: registers not available Facility: DEBUG, VMS Debugger 3 UNASWISTA4Unable to create debugger stack, using program stack Facility: DEBUG, VMS DebuggerC Explanation: DEBUG failed to set the protection ($SETPRT) on the@ DEBUG stack's guard pages. This message indicates an internal debugger error. User Action: Submit an SPR. 3 UNBPAREN$unbalanced parentheses in expression Facility: DEBUG, VMS Debugger 3 UNDEXPN/undefined exponentiation at or near opcode_name Facility: DEBUG, VMS Debugger 3 UNDKEY$state_name key key_name is undefined Facility: DEBUG, VMS DebuggerC Explanation: You attempted to use the SHOW/KEY or the DELETE/KEY@ command to show or delete the definition of a key that is not defined.> User Action: Verify that the key is defined and reenter the command. 3 UNHANDLED>The primary handler should now handle this unhandled exception Facility: DEBUG, VMS DebuggerB Explanation: This is an internal status signal, it should neverB be seen by the user. If this message does occur please submit a% Software Performance Report (SPR).; User Action: Submit a Software Performance Report (SPR). 3 UNIMPLENT7attempt to evaluate unimplemented type, cannot proceed. Facility: DEBUG, VMS DebuggerD Explanation: The data type of the entity in question has not beenD implemented in the debugger. The debugger doesn't have the neededC information on the entity's type to follow through with request. 3 UNKNOWNCODE#unknown debugger function code !UL. Facility: DEBUG, VMS DebuggerB User Action: Make sure that none of the user definable function3 codes reference numbers that are not documented. 3 UNMTCHPARN unmatched left parenthesis found Facility: DEBUG, VMS DebuggerB Explanation: A left parenthesis (() was found, but the matching$ right parenthesis ()) is missing.2 User Action: Include the right parenthesis ()). 3 UNREQVQUAL@unrecognized vector instruction qualifier specified at 'command_line' Facility: DEBUG, VMS DebuggerA Explanation: The qualifier indicated in the shown command line fragment is unreqcognized.= User Action: Specify a legal vector instruction qualifier. 3 UPBNDOPT*upper bound of subrange was optimized away Facility: DEBUG, VMS Debugger= Explanation: The upper bound of the specified subrange was? optimized away by the compiler. In place of the actual upper, bound, DEBUG used the hex value 7FFFFFFF.4 User Action: None. This message is informational. 3 U SEPTHREADCMDBthis command qualifier is obsolete, use PTHREAD command equivalent Facility: DEBUG, VMS Debugger@ Explanation: This is a POSIX Threads application in which the? debugger has interfaced with a POSIX Threads debugger image.A Thread, mutex, condition value, and more state can be accessedC via the "PTHREAD debugger-command-string" command, e.g. "PTHREAD? THREAD 2 -F". See Debugger Manual and Guide To POSIX ThreadsA or the "PTHREAD HELP" command for legal POSIX Threads debugger command strings.= User Action: Use PTHREAD "debugger command string" command instead. 3 USERINPUTBUSYuser input thread is busy Facility: DEBUG, VMS Debugger? Explanation: The debugger's user input thread is busy trying< to collect a new input line. User's should never see this informational.< User Action: Please submit a Software Performance Report. 3 USREVNIGN5DEBUG detected a bad RTL EVCB sentinel-Event ignored. Facility: DEBUG, VMS DebuggerB Explanation: While process a pseudo-go operation, the EVCB sentD to the debugger by the RTL had a bogus sentinel field. Therefore," the debugger ignored the event. User Action: None. 3 USREVNTERR?user-specified event error code error_code returned by user RTL Facility: DEBUG, VMS Debugger 3 VALNOTADDR5value of variable 'symbol_name' not usable as address Facility: DEBUG, VMS DebuggerD Explanation: The value of the specified variable is not usable as. an address. The address must be a longword.; User Action: Modify the address and retry the operation. 3 VALRNG:value is subscript_value, bounds are low_bound..high_bound Facility: DEBUG, VMS Debugger? Explanation: An attempt to subscript out of the bounds of an array was made.2 User Action: Change the value of the subscript. 3 VARNESDEP@variant nesting depth exceeds 20, cannot access record component Facility: DEBUG, VMS Debugger 3 VECDIS(debugger-generated vector disabled fault Facility: DEBUG, VMS Debugger? Explanation: This signal is generated by the debugger kernel= while it is processing a vector disabled fault that it has caused.B User Action: Submit an SPR. This message is handled internally,, and should never be signaled to the user. 3 VECREASON9the reason values for this vector error are reason_values Facility: DEBUG, VMS DebuggerA Explanation: An internal error has occurred with the debuggers@ use of vector instructions. The particular error code has two@ values which are associated with it, which more fully explain what went wrong. User Action: None. 3 VECSCP00vector registers can be accessed only in scope 0 Facility: DEBUG, VMS DebuggerB Explanation: An attempt was made to reference a vector registerC from a scope other than scope 0. DEBUG will not accept a command9 which specifies any other scope for a vector register.B User Action: If the current scope has been set to a scope otherA than scope 0 (using the SET SCOPE command), use an explicit 0\* pathname to access the vector register. 3 VECTSUBRNGDvector register subscript out of bounds, bounds are low_bound..high_bound Facility: DEBUG, VMS Debugger? Explanation: An attempt to subscript out of the bounds of an array was made.2 User Action: Change the value of the subscript. 3 VERIFYICF4opening/closing command procedure file_specification Facility: DEBUG, VMS DebuggerC Explanation: The debugger is verifying a command procedure. ThisD message is displayed before the command procedure is executed and. after all the commands have been displayed.4 User Action: None. This message is informational. 3 VERSIONNUM@the debugger_type debugger has the following RPC version: major_version/minor_version Facility: DEBUG, VMS Debugger< Explanation: This message is to inform you of the versionB number(s) of the main and kernel debuggers. It will only appear4 as part of another message, such as INCOMVERSION.B User Action: Submit an SPR. This message is handled internally,, and should never be signaled to the user. 3 VERSMISMATCH9the host (!AC) and target (!AC) versions are incompatible Facility: DEBUG, VMS Debugger> Explanation: The host kernel and target kernel versions areA incompatible. This is usually due to different versions of the3 operating system on the host and target systems.C User Action: Check the versions of the operating systems. ReviewD the System-Code Debugger documentation to find out which versions are compatible. 3 VFLTDIV4Reserved operand, encoded as floating divide by zero Facility: DEBUG, VMS DebuggerA Explanation: During a floating-point operation, an attempt was made to divide by zero.C User Action: Examine the code that caused the fault. Verify thatA the operands or variables are specified correctly. Verify thatD the encoded reserved operand was not deposited by a non-floating- point operation. 3 VFLTOVF.Reserved operand, encoded as floating overflow Facility: DEBUG, VMS DebuggerC Explanation: During a floating-point operation, a floating point? value exceeded the largest representable value for that data type.C User Action: Examine the code that caused the fault. Verify thatA  the operands or variables are specified correctly. Verify thatD the encoded reserved operand was not deposited by a non-floating- point operation. 3 VFLTROP6Reserved operand, encoded as floating reserved operand Facility: DEBUG, VMS Debugger@ Explanation: During a floating-point operation, an attempt is made to divide by zero.C User Action: Examine the code that caused the fault. Verify thatA the operands or variables are specified correctly. Verify thatD  the encoded reserved operand was not deposited by a non-floating- point operation. 3 VFLTUND/Reserved operand, encoded as floating underflow Facility: DEBUG, VMS Debugger? Explanation: An arithmetic exception condition occurred as a& result of floating-point underflow.C User Action: Examine the code that caused the fault. Verify thatA the operands or variables are specified correctly. Verify thatD the encoded reserved operand was not deposited by a non-floating- point operation. 3 WATCHSETUP2instruction at current PC may trigger a watchpoint Facility: DEBUG, VMS Debugger? Explanation: This signal is generated by the debugger kernel@ when it is about to execute an instruction that may trigger a watchpoint.B User Action: Submit an SPR. This message is handled internally,, and should never be signaled to the user. 3 WATCHSIZE,cannot WATCH variables longer than 512 bytes Facility: DEBUG, VMS Debugger 3 WATCHSIZESMALL+cannot WATCH variable of 0 or negative size Facility: DEBUG, VMS Debugger 3 WATNOWCANwatchpoint now cancelled Facility: DEBUG, VMS Debugger; Explanation: This message is a sub-message to WATVARSCP,> WATVARPTR, WATVARPROT, etc. This message indicates that the@ original watchpoint has been cancelled (is no longer active).4 User Action: None. This message is informational. 3 WATNOWWATnow watching variable name Facility: DEBUG, VMS Debugger> Explanation: This message is a sub-message to WATVARSCP and? WATVARPTR. This message indicates the new name under which a> variable which either went out of scope or whose pointer(s)A changed is addressed by the debugger. If this message appears,6 the watchpoint is still active under this new name.4 User Action: None. This message is informational. 3 WATVARGSGONEAglobal section associated with watched variable variable name has been unmapped  Facility: DEBUG, VMS Debugger< Explanation: The global-section which contained a global-@ section watchpoint is no longer mapped by any process that isA under debugger control. This message is always followed by theD WATNOWCAN message, since the debugger must delete the watchpoint.$ User Action: No action necessary. 3 WATVARGSOVR/watched variable overlaps into a global section Facility: DEBUG, VMS Debugger? Explanation: The specified variable spans a range of virtualB memory which includes a global-section and a private-section orC two different global-sections. A watched variable must either beC entirely in one global-section or entirely in a private-section.< User Action: Do not use watchpoint on this address range. 3 WATVARINAC6watched variable variable name is no longer accessible Facility: DEBUG, VMS Debugger> Explanation: Some action by the program has made the target@ variable inaccessible to the debugger. Th e program might have= deleted the virtual memory which contains some part of the> variable or one of the pointers in the pointer chain to theA variable, or the program might have set the protection of such> virtual memory such that the debugger can not read it. ThisA message is always followed by the WATNOWCAN message, since the' debugger must delete the watchpoint.4 User Action: None. This message is informational. 3 WATVARNOWGBL=watched variable variable name has been re-mapped to a globalsection Facility: DEBUG, VMS DebuggerB Explanation: The program mapped a global-section over a watched> variable. This message indicates that the debugger made the@ watchpoint a global-section watchpoint. If the global-section@ is mapped by more than one process that is under the debugger@ control, the watched variable will be watched in each process( that is mapped to the global section.$ User Action: No action necessary. 3 WATVARNOWOVR>watched variable variable name now overlaps different sections Facility: DEBUG, VMS Debugger? Explanation: The specified variable spans a range of virtualB memory which has been re-mapped to include a global-section and@ a private-section or two different global-sections. A watched< variable must either be entirely in one global-section or! entirely in a private-section.< User Action: Do not use watchpoint on this address range. 3 WATVARNOWPVT>watched variable variable name has been re-mapped to a privatesection Facility: DEBUG, VMS DebuggerC Explanation: The program mapped a private-section over a watchedD global section variable. This message indicates that the debugger4 made the watchpoint a private-section watchpoint.$ User Action: No action necessary. 3 WATVARPROT@watched variable variable name has been protected by the program Facility: DEBUG, VMS Debugger; Explanation: Some action by the user program has made itC impossible for the debugger to set the protection on part or allB of the variable. The debugger will therefore not detect changesD to the variable. This message is always followed by the WATNOWCAN: message, since the debugger must delete the watchpoint.4 User Action: None. This message is informational. 3 WATVARPTR@watched variable variable name now points to a different address Facility: DEBUG, VMS DebuggerB Explanation: Some pointer in the variable reference has changed: value. This message is accompanied by a further message? indicating whether the debugger has cancelled the watchpointA or re-defined the watchpoint to address the original data by a different name.4 User Action: None. This message is informational. 3 WATVARSCP4watched variable variable name has gone out of scope Facility: DEBUG, VMS Debugger? Explanation: The identified variable is no longer accessible? by its original name. The p rogram may have returned from theC routine in which the variable was defined, or it may have calledD another routine. This message is accompanied by a further message? indicating whether the debugger has cancelled the watchpointB (in the case that the variable is truly gone) or re-defined the; watchpoint to address the same data by a different name.4 User Action: None. This message is informational. 3 WIDTHDIFF>desired width of display_width is not allowed, width is set to display_width Facility: DEBUG, VMS DebuggerC Explanation: After creating the display pasteboard using the SMGD routine SMG$CREATE_PASTEBOARD, DEBUG found that the display width was not in the range 20-255.C User Action: Issue the DCL command SHOW TERMINAL and verify that9 the terminal width is correct and in the range 20-255. 3 WORKSTACMDBthe command debugger-command is only supported on VWS workstations Facility: DEBUG, VMS Debugger@ Explanation: The debugger only supports the command debugger-' command on workstations running VWS.D User Action: None. This capability of the debugger does not exist for your terminal or machine. 3 WPTTRACE0non-static watchpoint, tracing every instruction Facility: DEBUG, VMS DebuggerB Explanation: Setting a watchpoint on a non-static location suchC as the stack or on a register forces the debugger to trace everyA instruction that is executed. This will slow down execution of) your program by a considerable amount.C User Action: If you do not want execution of your program slowed- down, then you must cancel the watchpoint. 3 WRITE_FAILED1an attempt to write into a memory location failed Facility: DEBUG, VMS DebuggerB Explanation: This message indicates an internal debugger error.; User Action: Submit a Software Performance Report (SPR). 3 WRITE_INTO_KERNEL5cannot write into the debugger kernel's address space  Facility: DEBUG, VMS DebuggerB Explanation: This message indicates an internal debugger error.; User Action: Submit a Software Performance Report (SPR). 3 WRITE_INTO_KERNEL_STACK-cannot write into the debugger kernel's stack Facility: DEBUG, VMS DebuggerB Explanation: This message indicates an internal debugger error.; User Action: Submit a Software Performance Report (SPR). 3 ZERLENDST8zero length DST record has been ignored (compiler error) Facility: DEBUG, VMS DebuggerA Explanation: A zero-length DST record was encountered within a< module. This message normally indicates a compiler error.5 User Action: Submit a Software Performance Report. 3 ZEROINCR2increment for ranged examine is zero; exiting loop Facility: DEBUG, VMS Debugger; Explanation: While performing a ranged examine, DEBUG noB successor to the current data item was found because the length+ of the current data item was zero bytes.4  User Action: None. This message is informational. 2 Path_Names? If your program has multiple symbols with the same name, you@ may need to use path names to resolve symbol ambiguities. For> example, your program may have a variable X in procedure A,A another variable X in procedure B which is nested in procedureD A, and still another variable X in procedure C. If you specify X,B as in this example, the debugger uses symbol search conventions4 (based on the PC scope) to resolve the ambiguity: DBG> EXAMINE XA If the debugger cannot do so, it issues the following message:& %DEBUG-W-NOUNIQUE, X is not unique.@ To resolve the ambiguity, you can specify which X you want by" using a path name. For example: DBG> EXAMINE A\X DBG> EXAMINE A\B\X DBG> EXAMINE C\X3 For more information, see the SET SCOPE command. 2 SS$_DEBUGD SS$_DEBUG (defined in STARLET) is a condition you can signal from@ your program to start the debugger. Signalling SS$_DEBUG fromB your program is equivalent to entering Ctrl/Y followed by DEBUG at that point.B You can pass commands to the debugger at the time you signal itA with SS$_DEBUG. For example, to start the debugger and issue aA SHOW CALLS command at a given point in your program, you could@ put the following into your program (this example is coded in BLISS): SIGNAL(SS$_DEBUG, 1,) UPLIT BYTE(%ASCIC 'SHOW CALLS')); 2 System_Mana gement; The debugger consists of two parts (main and kernel), to6 accommodate the debugging of multiprocess programs.A o For a program that runs in one process, a debugging session, requires two processes instead of one.A o For a multiprocess program, a debugging session requires asC many processes as are used by the program, plus an additional$ process for the main debugger.? Under these conditions, several users who are simultaneouslyC debugging progr ams can place an additional load on a system. TheD subtopics describe the resources used by the debugger so that you* can tune your system for this activity.A The discussion covers only the resources used by the debugger.D In the case of multiprocess programs, you might also have to tune2 your system to support the programs themselves. 3 User_QuotasC Each user needs a PRCLM quota sufficient to create an additionalB process for the debugger, beyond the number of processes needed by the program.A BYTLM, ENQLM, FILLM, and PGFLQUOTA are pooled quotas. They may> need to be increased to account for the debugger process as follows:A o Each user's ENQLM quota should be increased by at least the) number of processes being debugged.A o Each user's PGFLQUOTA might need to be increased. If a user? has an insufficient PGFLQUOTA, the debugger might fail to> activate or might cause "virtual memory exceeded" errors during  execution.B o Each user's BYTLM and FILLM quotas may need to be increased.@ The debugger requires BYTLM and FILLM quotas sufficient toC open each image file being debugged, the corresponding source; files, and the debugger input, output, and log files. "4 Behavior_After_Stack_Corruption? The debugger allocates a certain amount of memory at startupB and shares the stack with the user's program. If a user processD exception results in exhaustion of resources or corruption of theA stack, the debugger may be incapable of regaining control, and# the debug session may terminate.D Be aware of this potential behavior after the occurrence of stackA corruption messages or warnings about continuing from a severeC error. In either case, the integrity of the debug session cannot be guaranteed.@ It is recommended that you try one of the following measures:D o Change your source code, temporarily or permanently, to reduce; re source consumption or lessen the use of stack space o Increase quotas; o Specify a larger stack size when linking your program 3 System_ResourcesD The kernel and main debugger communicate through global sections.? The main debugger communicates with up to 8 kernel debuggersB through a 65-page global section. Therefore, the system global-@ page and global-section parameters (GBLPAGES and GBLSECTIONS,? respectively) might need to be increased. For example, if 10B users are using the debugger simultaneously, 10 global sectionsB using a total of 650 global pages are required by the debugger. 2 VWS_Workstations@ The following commands are recognized only when you are usingC the debugger at a workstation running VWS (not Compaq DECwindows Motif for OpenVMS): o SET MODE [NO]SEPARATE o SET PROMPT/[NO]POP 2 @_(Execute_Procedure)) Executes a debugger command procedure. Format% @file-spec [parameter[, . . . ]] 3 Parameters file-spec? Specifies the command procedure to be executed. For any partA of the full file specification not provided, the debugger uses> the file specification established with the last SET ATSIGNA command, if any. If the missing part of the file specificationD was not established by a SET ATSIGN command, the debugger assumesB SYS$DISK:[]DEBUG.COM as the default file specification. You can specify a logical name. parameterA Specifies a parameter that is passed to the command procedure.A The parameter can be an address expression, a value expressionC in the current language, or a debugger command; the command must@ be enclosed within quotation marks ("). Unlike with DCL, youA must separate parameters by commas. Also, you can pass as manyC parameters as there are formal parameter declarations within theC command procedure. For more information about passing parameters2 to command procedures, see the DECLARE command. 3 DescriptionB A debugger command procedure can contain any debugger commands,@ including another execute procedure (@) command. The debuggerC executes commands from the command procedure until it reaches anD EXIT or QUIT command or reaches the end of the command procedure.D At that point, the debugger returns control to the command streamB that invoked the command procedure. A command stream can be theD terminal, an outer (containing) command procedure, a DO clause inB a command such as SET BREAK, or a DO clause in a screen display definition.= By default, commands read from a command procedure are notC echoed. If you enter the SET OUTPUT VERIFY command, all commandsA read from a command procedure are echoed on the current outputC device, as specified by DBG$OUTPUT (the default output device is SYS$OUTPUT).B For information about passing parameters to command procedures, see the DECLARE command. Related commands: DECLARE (SET,SHOW) ATSIGN SET OUTPUT [NO]VERIFY SHOW OUTPUT 3 Example' DBG> SET ATSIGN USER:[JONES.DEBUG].DBG DBG> SET OUTPUT VERIFY DBG> @CHECKOUT8 %DEBUG-I-VERIFYICF, entering command procedure CHECKOUT SET MODULE/ALL SET BREAK SUB1 GO break at routine PROG5\SUB2 EXAMINE X PROG5\SUB2\X: 376 . . .3 %DEBUG-I-VERIFYICF, exiting command procedure MAIN DBG>8 In this example, the SET ATSIGN command establishes6 that debugger command procedures are, by default,8 in USER:[JONES.DEBUG] and have a file type of .DBG.9 The @CHECKOUT command executes the command procedureA USER:[JONES.DEBUG]CHECKOUT.DBG. The debugger echoes commands= in the command because of the SET OUTPUT VERIFY command. 2 ACTIVATE 3 BREAK? Activates a breakpoint that you have previously set and then deactivated. Format3 ACTIVATE BREAK [address-expression[, . . . ]] 4 Parameters address-expressionB Specifies a breakpoint to be activated. Do not use the asteriskC (*) wildcard character. Instead, use the /ALL qualifier. Do notA specify an address expression when using any qualifiers except! /EVENT, /PREDEFINED, or /USER. 4 Qualifiers /ACTIVATING7 Activates a breakpoint established by a previous SET BREAK/ACTIVATING command. /ALL@ By default, activates all user-defined breakpoints. When used= with /PREDEFINED, activates all predefined breakpoints but@ no user-defined breakpoints. To activate all breakpoints, use /ALL/USER/PREDEFINED. /BRANCHD Activates a breakpoint established by a previous SET BREAK/BRANCH command. /CALLB Activates a breakpoint established by a previous SET BREAK/CALL command. /EVENT /EVENT=event-name7 Activates a breakpoint established by a previous SET> BREAK/EVENT=event-name command. Specify the event name (and@ address expression, if any) exactly as specified with the SET BREAK/EVENT command.B To identify the current event facility and the associated event. names, use the SHOW EVENT_FACILITY command. /EXCEPTION7 Activates a breakpoint established by a previous SET BREAK/EXCEPTION command. /HANDLER7 Activates a breakpoint established by a previous SET BREAK/HANDLER command. /INSTRUCTION7 Activates a breakpoint established by a previous SET BREAK/INSTRUCTION command. /LINEB Activates a breakpoint established by a previous SET BREAK/LINE: command. Do not specify an address expression with this qualifier. /PREDEFINED@ Activates a specified predefined breakpoint without affectingC any user-defined breakpoints. When used with /ALL, activates all predefined breakpoints. /SYSEMULATED (Alpha only) Activates a breakpoint established by a previous SET BREAK/SYSEMULATE command. /TERMINATING7 Activates a breakpoint established by a previous SET BREAK/TERMINATING command. /UNALIGNED_DATA@ (Alpha only) Activates a breakpoint established by a previous@ SET BREAK/UNALIGNED_DATA command, or reactivates a breakpointD previously disabled by a DEACTIVATE BREAK/UNALIGNED_DATA command. /USERB Activates a specified user-defined breakpoint without affecting; any predefined breakpoints. To activate all user-defined' breakpoints, use the /ALL qualifier. /VECTOR_INSTRUCTIONB (VAX only) Activates a breakpoint established by a previous SET$ BREAK/VECTOR_INSTRUCTION command. 4 Description@ User-defined breakpoints are activated when you set them withA the SET BREAK command. Predefined breakpoints are activated byB default. Use the ACTIVATE BREAK command to activate one or more: breakpoints that you deactivated with DEACTIVATE BREAK.A Activating and deactivating breakpoints enables you to run andC rerun your program with or without breakpoints without having toB cancel and then reset them. By default, the RERUN command savesC the current state of all breakpoints (activated or deactivated).> You can activate and deactivate user-defined breakpoints or> predefined breakpoints or both. To check if a breakpoint is) activated, use the SHOW BREAK command. Related commands: CANCEL ALL RERUN( (SET,SHOW,CANCEL,DEACTIVATE) BREAK (SET,SHOW) EVENT_FACILITY 4 Examples% 1.DBG> ACTIVATE BREAK MAIN\LOOP+10B This command activates the user-defined breakpoint set at the% address expression MAIN\LOOP+10. 2.DBG> ACTIVATE BREAK/ALL9 This command activates all user-defined breakpoints., 3.DBG> ACTIVATE BREAK/ALL/USER/PREDEFINEDB This command activates all breakpoints, both user-defined and predefined. 3 TRACE? Activates a tracepoint that you have previously set and then deactivated. Format3 ACTIVATE TRACE [address-expression[, . . . ]] 4 Parameters address-expressionB Specifies a tracepoint to be activated. Do not use the asteriskC (*) wildcard character. Instead, use the /ALL qualifier. Do notA specify an address expression when using any qualifiers except! /EVENT, /PREDEFINED, or /USER. 4 Qualifiers /ACTIVATING9 Activates a tracepoint established with a previous SET TRACE/ACTIVATING command. /ALL@ By default, activates all user-defined tracepoints. When used= with /PREDEFINED, activates all predefined tracepoints but@ no user-defined tracepoints. To activate all tracepoints, use /ALL/USER/PREDEFINED. /BRANCH9 Activates a tracepoint established with a previous SET TRACE/BRANCH command. /CALLD Activates a tracepoint established with a previous SET TRACE/CALL command. /EVENT /EVENT=event-name9 Activates a tracepoint established with a previous SET> TRACE/EVENT=event-name command. Specify the event name (and@ address expression, if any) exactly as specified with the SET TRACE/EVENT command.B To identify the current event facility and the associated event. names, use the SHOW EVENT_FACILITY command. /EXCEPTION9 Activates a tracepoint established with a previous SET TRACE/EXCEPTION command. /INSTRUCTION9 Activates a tracepoint established with a previous SET TRACE/INSTRUCTION command. /LINED Activates a tracepoint established with a previous SET TRACE/LINE command. /PREDEFINED@ Activates a specified predefined tracepoint without affectingC any user-defined tracepoints. When used with /ALL, activates all predefined tracepoints. /TERMINATING9 Activates a tracepoint established with a previous SET TRACE/TERMINATING command. /USERB Activates a specified user-defined tracepoint without affecting; any predefined tracepoints. To activate all user-defined' tracepoints, use the /ALL qualifier. /VECTOR_INSTRUCTIOND (VAX only) Activates a tracepoint established with a previous SET$ TRACE/VECTOR_INSTRUCTION command. 4 Description@ User-defined tracepoints are activated when you set them withA the SET TRACE command. Predefined tracepoints are activated byB default. Use the ACTIVATE TRACE command to activate one or more: tracepoints that yo u deactivated with DEACTIVATE TRACE.A Activating and deactivating tracepoints enables you to run andC rerun your program with or without tracepoints without having toB cancel and then reset them. By default, the RERUN command savesC the current state of all tracepoints (activated or deactivated).> You can activate and deactivate user-defined tracepoints or> predefined tracepoints or both. To check if a tracepoint is) activated, use the SHOW TRACE command. Related com mands: CANCEL ALL RERUN (SET,SHOW) EVENT_FACILITY( (SET,SHOW,CANCEL,DEACTIVATE) TRACE 4 Examples% 1.DBG> ACTIVATE TRACE MAIN\LOOP+10> This command activates the user-defined tracepoint at the location MAIN\LOOP+10. 2.DBG> ACTIVATE TRACE/ALL9 This command activates all user-defined tracepoints. 3 WATCH? Activates a watchpoint that you have previously set and then deactivated. Format3 ACTIVATE WATCH   [address-expression[, . . . ]] 4 Parameters address-expression: Specifies a watchpoint to be activated. With high-level> languages, this is typically the name of a variable. Do notB use the asterisk (*) wildcard character. Instead, use the /ALL= qualifier. Do not specify an address expression with /ALL. 4 Qualifiers /ALL Activates all watchpoints. 4 DescriptionA Watchpoints are activated when you set them with the SET WATCHB comma nd. Use the ACTIVATE WATCH command to activate one or more: watchpoints that you deactivated with DEACTIVATE WATCH.A Activating and deactivating watchpoints enables you to run andC rerun your program with or without watchpoints without having to cancel and then reset them.? By default, the RERUN command saves the current state of all> static watchpoints (activated or deactivated). The state of@ a particular nonstatic watchpoint might or might not be savedC depending on  the scope of the variable being watched relative to4 the main program unit (where execution restarts).< To check if a watchpoint is activated, use the SHOW WATCH command. Related commands: CANCEL ALL RERUN( (SET,SHOW,CANCEL,DEACTIVATE) WATCH 4 Examples# 1.DBG> ACTIVATE WATCH SUB2\TOTAL? This command activates the watchpoint at variable TOTAL in module SUB2. 2.DBG> ACTIVATE WATCH/ALL< This command activates all watchpoints you have set and deactivated. 2 ANALYZE 3 /CRASH_DUMP? Opens a system dump for analysis by the System Dump Debugger (kept debugger only). Format ANALYZE/CRASH_DUMP 4 DescriptionD Invokes the OpenVMS Alpha System Dump Debugger (SDD) to analyze a system dump.? SDD is similar in concept to the System Code Debugger (SCD).C While SCD allows connection to a running system, with control ofA the system's execution and the examination and modification ofC variables, SDD allows analysis of memory as recorded in a system dump.? Use of SDD usually involves two systems, although all of the= required environment can be set up on a single system. TheD description that follows assumes that two systems are being used:D o The build system, where the image that causes the system crash has been builtA o The test system, where the image is executed and the system crash occursA In co mmon with SCD, the OpenVMS debugger user interface allows; you to specify variable names, routine names, and so on,> precisely as they appear in your source code. Also, SDD canB display the source code where the software was executing at the time of the system crash.B SDD recognizes the syntax, data typing, operators, expressions,C scoping rules, and other constructs of a given language. If your? code or driver is written in more than one language, you canC change the debugging context from one language to another during a debugging session.( To use SDD you must do the following:A o Build the system image or device driver that is causing the system crash.A o Boot a system, including the system image or device driver,@ and perform the necessary steps to cause the system crash./ o Reboot the system and save the dump file.@ o Invoke SDD, which is integrated with the OpenVMS debugger.C For more information about us ing the SDD, including a sample SDD? session, see the OpenVMS Alpha System Analysis Tools Manual. Related commands: ANALYZE/PROCESS_DUMP CONNECT %NODE SDA 4 Example DBG> ANALYZE/CRASH_DUMP DBG>/ Invokes SDD from within the kept debugger. 3 /PROCESS_DUMPB Opens a process dump for analysis with the System Code Debugger (kept debugger only) Format# ANALYZE/PROCESS_DUMP dumpfile 4 Parameters dumpfileB The name of the process dump file to be analyzed. The file type must be .DMP. 4 Qualifiers /IMAGE_PATH /IMAGE_PATH=directory-specD Specifies the search path for the debugger to find the files thatC contains the debugger symbol tables (DSTs). The files must be ofB type .DSF or .EXE, with the same name as the image names in theD dumpfile. For example, if image name foo.exe is in the dump file,5 then the debugger searches for foo.dsf or foo.exe.  4 Description? (Kept debugger only.) Opens a process dump for analysis withA the System Code Debugger (SCD). The qualifier /PROCESS_DUMP isD required and distinguishes this command from the one that invokes6 the System Dump Debugger (SDD), ANALYZE/CRASH_DUMP.< The qualifier /IMAGE_PATH=directory-spec is optional, and? specifies the search path the debugger is to use to find theB debugger symbol table (DST) files. The debugger builds an image@ list from the saved p rocess image list. When you set an imageB (the main image is automatically set), the debugger attempts to- open that image in order to find the DSTs.? If you include the /IMAGE_PATH=directory-spec qualifier, theB debugger searches for the .DST file in the specified directory.> The debugger first tries to translate directory-spec as the> logical name of a directory search list. If that fails, theC debugger interprets directory-spec as a directory specification,A and searche s that directory for matching .DSF or .EXE files. A@ .DSF file takes precedence over an .EXE file. The name of the/ .DSF or .EXE file must match the image name.B If you do not include the /IMAGE_PATH=directory-spec qualifier,= the debugger looks for the DST file first in the directory@ that contains the dump file. If that fails, the debugger nextB searches directory SYS$SHARE and then directory SYS$MESSAGE. If@ the debugger fails to find a DST file for the image, symbolicA  information available to the debugger is limited to global and universal symbol names.@ The debugger checks for link date-time mismatches between theB dump file image and the DST file and issues a warning if one is discovered.D The parameter dumpfile is the name of the process dump file to beB analyzed. Note that the process dump file type must be .DMP and1 the DST file type must be either .DSF or .EXE.> For more information about using SCD, see the OpenVMS Alpha  System Analysis Tools Manual. Related commands: ANALYZE/CRASH_DUMP CONNECT %NODE SDA 4 Example@ DBG> ANALYZE/PROCESS/IMAGE_DUMP=my_disk$:[my_dir] my_disk$:[my_dir]wecrash.dmpP %SYSTEM-F-IMGDMP, dynamic image dump signal at PC=001C0FA0B280099C, PS=001C003C3 break on unhandled exception preceding WECRASH\th_run\%LINE 26412 in THREAD 8 26412: if (verify) {) DBG> SET RADIX HEXEXADECIMAL; EXAMINE PC) WECRASH\th_run\%PC: 0000000000030244 DBG> 2 ATTACH> Passes control of your terminal from the current process to another process.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format ATTACH process-name 3 Parameters process-nameB Specifies the process to which your terminal is to be attached.A The process must already exist before you try to attach to it.D I f the process name contains nonalphanumeric or space characters,. you must enclose it in quotation marks ("). 3 Description> The ATTACH command enables you to go back and forth between? a debugging session and your command interpreter, or betweenA two debugging sessions. To do so, you must first use the SPAWN< command to create a subprocess. You can then attach to it= whenever you want. To return to your original process with7 minimal system overhead, use another ATTACH command. Related command: SPAWN 3 Examples 1.DBG> SPAWN $ ATTACH JONES9 %DEBUG-I-RETURNED, control returned to process JONES DBG> ATTACH JONES_1 $A In this example, the series of commands creates a subprocess named@ JONES_1 from the debugger (currently running in the process1 JONES) and then attaches to that subprocess. 2.DBG> ATTACH "Alpha One" $@ This example illustrates using quotation marks to enclose a2 process name that contains a space character. 2 CALL5 Calls a routine that was linked with your program. Format. CALL routine-name [(argument[, . . . ])] 3 Parameters routine-name@ Specifies the name or the memory address of the routine to be called. argumentB Specifies an argument required by the routine. Arguments can beC passed by address, by descriptor, by reference, and by value, as follows:B %ADDR (De fault, except for C and C++.) Passes the argument by- address. The format is as follows:7 CALL routine-name (%ADDR address-expression)< The debugger evaluates the address expression and< passes that address to the routine specified. For< simple variables (such as X), the address of X isA passed into the routine. This passing mechanism is howC Fortran implements ROUTINE(X). In other words, for namedD variables, using %ADDR corresponds to a call by referenceC in Fortran. For other expressions, however, you must useA the %REF function to call by reference. For complex orC composite variables (such as arrays, records, and access@ types), the address is passed when you specify %ADDR,B but the called routine might not handle the passed dataC properly. Do not specify a literal value (a number or an6 expression composed of numbers)  with %ADDR.> %DESCR Passes the argument by descriptor. The format is as follows:9 CALL routine-name (%DESCR language-expression)= The debugger evaluates the language expression andB builds a standard descriptor to describe the value. TheB descriptor is then passed to the routine you named. You@ would use this technique to pass strings to a Fortran routine.= %REF Passes the argument by reference. The forma t is as follows:7 CALL routine-name (%REF language-expression)D The debugger evaluates the language expression and passes@ a pointer to the value, into the called routine. ThisB passing mechanism corresponds to the way Fortran passes' the result of an expression.A %VAL (Default for C and C++.) Passes the argument by value.$ The format is as follows:7 CALL routine-name (%VAL language-expression)!D The debugger evaluates the language expression and passes4 the value directly to the called routine. 3 Qualifiers /AST /AST (default) /NOAST= Controls whether the delivery of asynchronous system trapsC (ASTs) is enabled or disabled during the execution of the calledB routine. The /AST qualifier enables the delivery of ASTs in the@ called routine. The /NOAST qualifier disables the delivery ofC ASTs in the called routine. If you "do not specify /AST or /NOASTD with the CALL command, the delivery of ASTs is enabled unless you3 have previously entered the DISABLE AST command. /SAVE_VECTOR_STATE /SAVE_VECTOR_STATE$ /NOSAVE_VECTOR_STATE (default)C Applies to VAX vectorized programs. Controls whether the currentB state of the vector processor is saved and then restored when a+ routine is called with the CALL command.= The state of the vector processor comprises the following:C o# The values of the vector registers (V0 to V15) and the vector+ control registers (VCR, VLR, and VMR)C o Any vector exception (an exception caused by the execution of: a vector instruction) that might be pending delivery@ When you use the CALL command to execute a routine, executionC of the routine might change the state of the vector processor as follows:B o By changing the values of vector registers or vector control registers# o By causing a v $ector exceptionD o By causing the delivery of a vector exception that was pending& when the CALL command was issuedC The /SAVE_VECTOR_STATE qualifier specifies that after the calledC routine has completed execution, the debugger restores the stateA of the vector processor that exists before the CALL command isD issued. This ensures that, after the called routine has completed execution:D o Any vector exception that was pending delivery before the CALL2 co %mmand was issued is still pending deliveryD o No vector exception that was triggered during the routine call is still pending delivery? o The values of the vector registers are identical to their/ values before the CALL command was issued< The /NOSAVE_VECTOR_STATE qualifier (which is the default)? specifies that the state of the vector processor that existsD before the CALL command is issued is not restored by the debuggerB after the called routine has comple &ted execution. In this case,C the state of the vector processor after the routine call depends0 on the effect (if any) of the called routine.> The /[NO]SAVE_VECTOR_STATE qualifiers have no effect on theD general registers. The values of these registers are always savedA and restored when you execute a routine with the CALL command. 3 Description= The CALL command is one of the four debugger commands that@ can be used to execute your program (the others are GO, STEP,? ' and EXIT). The CALL command enables you to execute a routineB independently of the normal execution of your program. The CALLB command executes a routine whether or not your program actually> includes a call to that routine, as long as the routine was linked with your program.B When you enter a CALL command, the debugger takes the followingA actions. For more information, see the qualifier descriptions.8 1. Saves the current values of the general registers." 2. Cons (tructs an argument list.A 3. Executes a call to the routine specified in the command and passes any arguments. 4. Executes the routine.@ 5. Displays the value returned by the routine in register R0.B By convention, after a called routine has executed, register@ R0 contains the function return value (if the routine is aB function) or the procedure completion status (if the routine> is a procedure that returns a status value). If a calledA procedur )e does not return a status value or function value,D the value in R0 might be meaningless, and the "value returned" message can be ignored.@ 6. Restores the values of the general registers to the values9 they had just before the CALL command was executed. 7. Issues the prompt.? The debugger assumes that the called routine conforms to theA procedure calling standard (see the OpenVMS Calling Standard).> However, the debugger does not know about all the argum *ent-= passing mechanisms for all supported languages. Therefore,A you might need to specify how to pass parameters, for example,? use CALL SUB1(%VAL X) rather than CALL SUB1(X). For completeC information about how arguments are passed to routines, see your language documentation.= When the current language is C or C++, the CALL command byB default now passes arguments by value rather than by reference.@ In addition, you can now pass the following arguments without< u+sing a passing mechanism lexical (such as %REF or %VAL): o Routine references. o Quoted strings (treated as %REF strings)& o Structures, records, and objectsB o Floating-point parameters by value in F_, D_, G_, S_, and T_? floating format by dereferencing a variable of that type.A If the routine contains parameters that are not read-only, the? values assigned to parameters may not be visible, and access@ to values is unreliable. This is because the debugger , adjustsA parameter values in an internal argument list, not the programC argument list. To examine changing values, consider using static# variables instead of parameters.> The CALL command converts all floating-point literals to F_@ floating format. Passing a floating-point literal in a formatC other than F_floating is not supported. (See the example below.): A common debugging technique at an exception breakpointC (resulting from a SET BREAK/EXCEPTION or STEP/EXCEPTI -ON command)B is to call a dump routine with the CALL command. When you enter@ the CALL command at an exception breakpoint, any breakpoints,B tracepoints, or watchpoints that were previously set within theD called routine are temporarily disabled so that the debugger does@ not lose the exception context. However, such eventpoints areC active if you enter the CALL command at a location other than an exception breakpoint. 3 Description,_Continued...D When an exception . breakpoint is triggered, execution is suspended@ before any application-declared condition handler is invoked.B At an exception breakpoint, entering a GO or STEP command afterC executing a routine with the CALL command causes the debugger to9 resignal the exception (see the GO and STEP commands).D On Alpha processors, you cannot debug routines that are activatedD before the routine activated by a CALL command. For example, yourB program is stopped in routine MAIN, and you set / a breakpoint in@ routine SORT. You issue the debugger command CALL SORT. WhileB debugging routine SORT, you cannot debug routine MAIN. You must. first return from the call to routine SORT.C If you are debugging a multiprocess program, the CALL command isC executed in the context of the current process set. In addition,D when debugging a multiprocess program, the way in which executionA continues in your process depends on whether you entered a SET@ MODE [NO]INTERRUPT comm0and or a SET MODE [NO]WAIT command. By> default (SET MODE NOINTERRUPT), when one process stops, the? debugger takes no action with regard to the other processes.< Also by default (SET MODE WAIT), the debugger waits until? all processes in the current process set have stopped before prompting for a new command. Related commands: GO EXIT SET PROCESS SET MODE [NO]INTERRUPT1 SET VECTOR_MODE [NO]SYNCHRONIZED (VAX only) STEP( SYNCHR1ONIZE VECTOR_MODE (VAX only) 3 Examples 1.DBG> CALL SUB1(X) value returned is 19 DBG>C This command calls routine SUB1, with parameter X (by default,C the address of X is passed). In this case, the routine returns the value 19. 2.DBG> CALL SUB(%REF 1) value returned is 1 DBG>B This command passes a pointer to a memory location containing1 the numeric literal 1, into the routine SUB.! 3.DBG> SET MODULE SHARE$LIBRTL 2 DBG> CALL LIB$SHOW_VMF 1785 calls to LIB$GET_VM, 284 calls to LIB$FREE_VM, 122216 bytes1 still allocated, value returned is 00000001 DBG>< This example calls Run-Time Library routine LIB$SHOW_VM> (in shareable image LIBRTL) to display memory statistics.@ The SET MODULE command makes the universal symbols (routineB names) in LIBRTL visible in the main image. See also the SHOW MODULE/SHARE command.; 4.DBG> CALL testsub (%val 11.11, %val 22.22, %v3al 33.33)A This example passes floating-point parameters by value, to aB C subroutine with the function prototype void testsub (float,B float, float). The floating-point parameters are passed in F_ floating format. 2 CANCEL 3 ALLB Cancels all breakpoints, tracepoints, and watchpoints. RestoresA the scope and type to their default values. Restores the line,? symbolic, and G_floating modes established with the SET MODE# command to their default va4lues. Format CANCEL ALL 4 Qualifiers /PREDEFINED? Cancels all predefined (but no user-defined) breakpoints and tracepoints. /USER< Cancels all user-defined (but no predefined) breakpoints,? tracepoints, and watchpoints. This is the default unless you specify /PREDEFINED. 4 Description- The CANCEL ALL command does the following:> 1. Cancels all user-defined eventpoints (those created with@ the commands SET BREAK, 5SET TRACE, and SET WATCH). This isB equivalent to entering the commands CANCEL BREAK/ALL, CANCEL? TRACE/ALL, and CANCEL WATCH/ALL. Depending on the type ofA program (for example Ada, multiprocess), certain predefined@ breakpoints or tracepoints might be set automatically whenC you start the debugger. To cancel all predefined but no user-? defined eventpoints, use CANCEL ALL/PREDEFINED. To cancel= all predefined and user-defined eventpoints, use CANCEL 6 ALL/PREDEFINED/USER.9 2. Restores the scope search list to its default valueB (0,1,2, . . . ,n). This is equivalent to entering the CANCEL SCOPE command.: 3. Restores the data type for memory locations that areA associated with a compiler-generated type to the associatedC type. Restores the type for locations that are not associatedC with a compiler-generated type to "longword integer". This isB equivalent to entering the CANCEL TYPE/OVERRIDE and 7SET TYPE LONGWORD commands.C 4. Restores the line, symbolic, and G_floating modes established@ with the SET MODE command to their default values. This is3 equivalent to entering the following command:+ DBG> SET MODE LINE,SYMBOLIC,NOG_FLOAT> The CANCEL ALL command does not affect the current language< setting or modules included in the run-time symbol table.  Related commands: (CANCEL,DEACTIVATE) BREAK CANCEL SCOPE (CANCEL,DEAC8TIVATE) TRACE CANCEL TYPE/OVERRIDE (CANCEL,DEACTIVATE) WATCH (SET,CANCEL) MODE SET TYPE 4 Examples 1.DBG> CANCEL ALL: This command cancels all user-defined breakpoints andA tracepoints and all watchpoints, and restores scopes, types,C and some modes to their default values. In this example, there2 are no predefined breakpoints or tracepoints. 2.DBG> CANCEL ALL? %DEBUG-I-PREDEPTNOT, predefined eventpoint(s) not canceled 9: This command cancels all user-defined breakpoints andA tracepoints and all watchpoints, and restores scopes, types,C and some modes to their default values. In this example, thereC is a predefined breakpoint or tracepoint; this is not canceled by default. 3.DBG> CANCEL ALL/PREDEFINED8 This command cancels all predefined breakpoints and< tracepoints, and restores scopes, types, and some modes< to their default values. No user-defined breakpoints or: tracepoints are affected. 3 BREAK Cancels a breakpoint. Format1 CANCEL BREAK [address-expression[, . . . ]] 4 Parameters address-expressionA Specifies a breakpoint to be canceled. Do not use the asteriskC (*) wildcard character. Instead, use the /ALL qualifier. Do notA specify an address expression when using any qualifiers except! /EVENT, /PREDEFINED, or /USER. 4 Qualifiers /ACTIVATINGA Cancels the effect of a; previous SET BREAK/ACTIVATING command. /ALL> By default, cancels all user-defined breakpoints. When used> with /PREDEFINED, cancels all predefined breakpoints but noB user-defined breakpoints. To cancel all breakpoints, use CANCEL BREAK/ALL/USER/PREDEFINED. /BRANCH= Cancels the effect of a previous SET BREAK/BRANCH command. /CALL; Cancels the effect of a previous SET BREAK/CALL command. /EVENT /EVENT=event-name> Cancels the eff<ect of a previous SET BREAK/EVENT=event-name> command. Specify the event name (and address expression, ifA any) exactly as specified with the SET BREAK/EVENT command. To? identify the current event facility and the associated event. names, use the SHOW EVENT_FACILITY command. /EXCEPTION@ Cancels the effect of a previous SET BREAK/EXCEPTION command. /HANDLER> Cancels the effect of a previous SET BREAK/HANDLER command. /INSTRUCTIONB Cancels the effect of= a previous SET BREAK/INSTRUCTION command. /LINE; Cancels the effect of a previous SET BREAK/LINE command. /PREDEFINED> Cancels a specified predefined breakpoint without affectingA any user-defined breakpoints. When used with /ALL, cancels all predefined breakpoints. /SYSEMULATE4 (Alpha only) Cancels the effect of a previous SET BREAK/SYSEMULATE command. /TERMINATINGB Cancels the effect of a previous SET BREAK/TERMINATING command. >/UNALIGNED_DATA4 (Alpha only) Cancels the effect of a previous SET BREAK/UNALIGNED_DATA command. /USERD Cancels a specified user-defined breakpoint without affecting anyA predefined breakpoints. This is the default unless you specifyD /PREDEFINED. To cancel all user-defined breakpoints, use the /ALL qualifier. /VECTOR_INSTRUCTION@ (VAX only) Cancels the effect of a previous SET BREAK/VECTOR_ INSTRUCTION command. 4 Description> Breakpoints ? can be user defined or predefined. User-defined= breakpoints are set explicitly with the SET BREAK command.> Predefined breakpoints, which depend on the type of programB you are debugging (for example, Ada or ZQUIT multiprocess), areA established automatically when you start the debugger. Use theD SHOW BREAK command to identify all breakpoints that are currently: set. Any predefined breakpoints are identified as such.? User-defined and predefined breakpoints are set and cance @led@ independently. For example, a location or event can have bothB a user-defined and a predefined breakpoint. Canceling the user-D defined breakpoint does not affect the predefined breakpoint, and conversely.: To cancel only user-defined breakpoints, do not specifyD /PREDEFINED with the CANCEL BREAK command (the default is /USER).= To cancel only predefined breakpoints, specify /PREDEFINED< but not /USER. To cancel both predefined and user-defined3 breakpoints, specif Ay both /PREDEFINED and /USER.D In general, the effect of the CANCEL BREAK command is symmetrical@ with that of the SET BREAK command (even though the SET BREAK@ command is used only with user-defined breakpoints). Thus, toC cancel a breakpoint that was established at a specific location,B specify that same location (address expression) with the CANCEL= BREAK command. To cancel breakpoints that were established= on a class of instructions or events, specify the class ofB i Bnstructions or events with the corresponding qualifier (/LINE,C /BRANCH, /ACTIVATING, /EVENT=, and so on). For more information," see the qualifier descriptions.? If you want the debugger to ignore a breakpoint without your= having to cancel it (for example, if you want to rerun theB program with and without breakpoints), use the DEACTIVATE BREAKC instead of the CANCEL BREAK command. Later, you can activate the$ breakpoint (with ACTIVATE BREAK).  Related commands:C! (ACTIVATE,DEACTIVATE) BREAK CANCEL ALL (SET,SHOW) BREAK (SET,SHOW) EVENT_FACILITY (SET,SHOW,CANCEL) TRACE 4 Examples# 1.DBG> CANCEL BREAK MAIN\LOOP+10@ This command cancels the user-defined breakpoint set at the% address expression MAIN\LOOP+10. 2.DBG> CANCEL BREAK/ALL7 This command cancels all user-defined breakpoints.* 3.DBG> CANCEL BREAK/ALL/USER/PREDEFINED9 This command cancels all user-defined and predefiDned breakpoints.! 4.all> CANCEL BREAK/ACTIVATING5 This command cancels a previous user-defined SETA BREAK/ACTIVATING command. As a result, the debugger does notC suspend execution when a new process is brought under debugger control.< 5.DBG> CANCEL BREAK/EVENT=EXCEPTION_TERMINATED/PREDEFINED? This command cancels the predefined breakpoint set on task> terminations due to unhandled exceptions. This breakpoint@ is predefined for Ada programEs and programs that call POSIX Threads or Ada routines. 3 DISPLAY( Permanently deletes a screen display.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format- CANCEL DISPLAY [display-name[, . . . ]] 4 Parameters display-nameA Specifies the name of a display to be canceled. Do not specify; the PROMPT display, which cannot be canFceled. Do not use> the asterisk (*) wildcard character. Instead, use the /ALL6 qualifier. Do not specify a display name with /ALL. 4 Qualifiers /ALL3 Cancels all displays, except the PROMPT display. 4 DescriptionA When a display is canceled, its contents are permanently lost,C it is deleted from the display list, and all the memory that was allocated to it is released.( You cannot cancel the PROMPT display. Related commands: (SHOW)G DISPLAY (SET,SHOW,CANCEL) WINDOW 4 Examples 1.DBG> CANCEL DISPLAY SRC2' This command deletes display SRC2. 2.DBG> CANCEL DISPLAY/ALLB This command deletes all displays, except the PROMPT display. 3 MODEC Restores the line, symbolic, and G_floating modes established byB the SET MODE command to their default values. Also restores the default input/output radix.& NOTEB This command is not availablHe in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format CANCEL MODE 4 Description= The effect of the CANCEL MODE command is equivalent to the following commands:( DBG> SET MODE LINE,SYMBOLIC,NOG_FLOAT DBG> CANCEL RADIXC The default radix for both data entry and display is decimal for most languages.B On VAX processors, the exceptions are BLISS and MACRO-32, which@ have a default radix of hexadecimal. On Alpha!I processors, the= exceptions are BLISS, MACRO-32, and MACRO-64, which have a default radix of hexadecimal. Related commands: (SET,SHOW) MODE (SET,SHOW,CANCEL) RADIX 4 Example DBG> CANCEL MODEA This command restores the default radix mode and all default mode values. 3 RADIXB Restores the default radix for the entry and display of integer data. Format CANCEL RADIX 4 Qualifiers /OVERRIDE; Can Jcels the override radix established by a previous SET? RADIX/OVERRIDE command. This sets the current override radix< to "none" and restores the output radix mode to the value< established with a previous SET RADIX or SET RADIX/OUTPUTA command. If you did not change the radix mode with a SET RADIXA or SET RADIX/OUTPUT command, the CANCEL RADIX/OVERRIDE command0 restores the radix mode to its default value. 4 DescriptionB The CANCEL RADIX command cancels the effect of an Ky previous SETC RADIX and SET RADIX/OVERRIDE commands. It restores the input andB output radix to their default value. The default radix for both8 data entry and display is decimal for most languages.B On VAX processors, the exceptions are BLISS and MACRO-32, which@ have a default radix of hexadecimal. On Alpha processors, the= exceptions are BLISS, MACRO-32, and MACRO-64, which have a default radix of hexadecimal.B The effect of the CANCEL RADIX/OVERRIDE command is moreL limitedB and is explained in the description of the /OVERRIDE qualifier. Related commands: EVALUATE (SET,SHOW) RADIX 4 Examples 1.DBG> CANCEL RADIX> This command restores the default input and output radix. 2.DBG> CANCEL RADIX/OVERRIDED This command cancels any override radix you might have set with$ the SET RADIX/OVERRIDE command. 3 SCOPE< Restores the default scope search list for symbol lookup. Format CANCE ML SCOPE 4 DescriptionA The CANCEL SCOPE command cancels the current scope search list? established by a previous SET SCOPE command and restores theD default scope search list, namely 0,1,2, . . . ,n, where n is the% number of calls in the call stack.= The default scope search list specifies that, for a symbol@ without a path-name prefix, a symbol lookup such as EXAMINE X? first looks for X in the routine that is currently executingA (scope 0); if no X is visibleN there, the debugger looks in theC caller of that routine (scope 1), and so on down the call stack;B if X is not found in scope n, the debugger searches the rest ofC the run-time symbol table (RST), then searches the global symbol table (GST), if necessary. Related commands: (SET,SHOW) SCOPE 4 Example DBG> CANCEL SCOPE, This command cancels the current scope. 3 SOURCED Cancels a source directory search list, a source directory searchB mOethod, or both a list and method established by a previous SET SOURCE command. Format CANCEL SOURCE 4 Qualifiers /DISPLAY? Cancels the effect of a previous SET SOURCE/DISPLAY command,> which specifies the directory search list to be used by the? debugger when displaying source code. Canceling this commandD means the debugger searches for a source file in the directory in which it was compiled. /EDITB Cancels the effect of a previous PSET SOURCE/EDIT command, whichB specifies the directory search list to be used during executionC of the debugger's EDIT command. Canceling this command means theC debugger searches for a source file in the directory in which it was compiled. /EXACTC Cancels the effect of a previous SET SOURCE/EXACT command, whichD specifies a directory search method. Canceling this command meansD that the debugger no longer searches for the exact version of theC source file from co Qmpilation; it reverts to the default behavior3 of searching for the latest version of the file. /LATESTD Cancels the effect of a previous SET SOURCE/LATEST command, which@ specifies a directory search method. In this case, the CANCELD SOURCE/LATEST command directs the debugger to return to searching= for the exact version of the source file from compilation.D Because /LATEST is the default setting, this qualifier only makes? sense when used with other qualifiers, for Rexample, /MODULE. /MODULE /MODULE=module-name= Cancels the effect of a previous SET SOURCE/MODULE=module-A name command in which the same module name and qualifiers wereC specified. (The /MODULE qualifier allows you to specify a unique? directory search list, directory search method, or both, forB the named module.) You can append one or more of the qualifiersA listed above to the SET SOURCE/MODULE and CANCEL SOURCE/MODULE commands.> If you issue a SCANCEL SOURCE/MODULE command with additional@ qualifiers, you cancel the effect of the specified qualifiersB on the module. If you issue an unqualified CANCEL SOURCE/MODULEA command, the debugger no longer differentiates the module from( any other module in your directories. /ORIGINALC (Applies to STDL programs only. Requires the installation of theC Correlation Facility (a separate layered product) and invocation> of the kept debugger.) Cancels the effect of a previoTus SET> SOURCE/ORIGINAL command. The SET SOURCE/ORIGINAL command isA required to debug STDL source files, and must be canceled when5 you debug source files written in other languages. 4 Description< CANCEL SOURCE cancels the effect of a previous SET SOURCE: command. The nature of this cancellation depends on the@ qualifiers activated in previous SET SOURCE commands. See theA CANCEL SOURCE examples to see how CANCEL SOURCE and SET SOURCE interact.@ When you issuUe a SET SOURCE command, be aware that one of theA two qualifiers -/LATEST or /EXACT-will always be active. These< qualifiers affect the debugger search method. The /LATEST@ qualifier directs the debugger to search for the version last@ created (the highest-numbered version in your directory). TheB /EXACT qualifier directs the debugger to search for the versionC last compiled (the version recorded in the debugger symbol table= created at compile time). For example, a SET SOURCE/L VATEST? command might search for SORT.FOR;3 while a SET SOURCE/EXACT' command might search for SORT.FOR;1.D CANCEL SOURCE without the /DISPLAY or /EDIT qualifier cancels theA effect of both SET SOURCE/DISPLAY and SET SOURCE/EDIT, if both were previously given.B The /DISPLAY qualifier is needed when the files to be displayed. are no longer in the compilation directory.D The /EDIT qualifier is needed when the files used for the displayD of source code are different Wfrom the editable files. This is theB case with Ada programs. For Ada programs, the (SET,SHOW,CANCEL)= SOURCE commands affect the search of files used for source@ display (the "copied" source files in Ada program libraries);B the (SET,SHOW,CANCEL) SOURCE/EDIT commands affect the search of> the source files that you edit when using the EDIT command.4 For information specific to Ada programs, see the# Language_Support Ada help topic. Related commands: (SET,SHOW) SXOURCE 4 ExamplesA 1.DBG> SET SOURCE/MODULE=CTEST/EXACT [],SYSTEM::DEVICE:[PROJD]2 DBG> SET SOURCE [PROJA],[PROJB],[PETER.PROJC] . . . DBG> SHOW SOURCE/ source directory search list for CTEST,- match the exact source file version: []# SYSTEM::DEVICE:[PROJD]5 source directory list for all other modules,. match the latest source file version: [PROJA] [PROJB] [ YPETER.PROJC] DBG> CANCEL SOURCE DBG> SHOW SOURCE/ source directory search list for CTEST,- match the exact source file version: []# SYSTEM::DEVICE:[PROJD]1 all other source files will try to match' the latest source file versionD In this example, the SET SOURCE command establishes a directoryB search list and a search method (the default, latest version)A for source files other than CTEST. The CANCEL SOUZRCE command> cancels the directory search list but does not cancel the search method. 2.DBG> SET SOURCE /EXACT DBG> SHOW SOURCE, no directory search list in effect,% match the exact source file DBG> SET SOURCE [JONES] DBG> SHOW SOURCE/ source directory list for all modules,. match the exact source file version: [JONES] DBG> CANCEL SOURCE /EXACT DBG> SHOW SOURCE0 source directory list [for all modules,/ match the latest source file version: [JONES]@ In this example, the SET SOURCE/EXACT command establishes aA search method (exact version) that remains in effect for theD SET SOURCE [JONES] command. The CANCEL SOURCE/EXACT command notD only cancels the SET SOURCE/EXACT command, but also affects the SET SOURCE [JONES] command. 3 TRACE Cancels a tracepoint. Format1 CANCEL TRACE [address-expression[, . . .\ ]] 4 Parameters address-expressionA Specifies a tracepoint to be canceled. Do not use the asteriskC (*) wildcard character. Instead, use the /ALL qualifier. Do notA specify an address expression when using any qualifiers except! /EVENT, /PREDEFINED, or /USER. 4 Qualifiers /ACTIVATINGA Cancels the effect of a previous SET TRACE/ACTIVATING command. /ALL> By default, cancels all user-defined tracepoints. When used> with /PREDEFINE]D, it cancels all predefined tracepoints but> no user-defined tracepoints. To cancel all tracepoints, use /ALL/USER/PREDEFINED. /BRANCH= Cancels the effect of a previous SET TRACE/BRANCH command. /CALL; Cancels the effect of a previous SET TRACE/CALL command. /EVENT /EVENT=event-name> Cancels the effect of a previous SET TRACE/EVENT=event-name> command. Specify the event name (and address expression, ifA any) exactly as specified with the ^SET TRACE/EVENT command. To? identify the current event facility and the associated event. names, use the SHOW EVENT_FACILITY command. /EXCEPTION@ Cancels the effect of a previous SET TRACE/EXCEPTION command. /INSTRUCTIONB Cancels the effect of a previous SET TRACE/INSTRUCTION command. /LINE; Cancels the effect of a previous SET TRACE/LINE command. /PREDEFINEDB Cancels a specified predefined tracepoint without affecting any@ user-defined tr_acepoints. When used with /ALL, it cancels all predefined tracepoints. /TERMINATINGB Cancels the effect of a previous SET TRACE/TERMINATING command. /USERD Cancels a specified user-defined tracepoint without affecting anyA predefined tracepoints. This is the default unless you specifyA /PREDEFINED. To cancel all user-defined tracepoints, use /ALL. /VECTOR_INSTRUCTION@ (VAX only) Cancels the effect of a previous SET TRACE/VECTOR_ INSTRUCTION command `. 4 Description> Tracepoints can be user defined or predefined. User-defined= tracepoints are explicitly set with the SET TRACE command.B Predefined tracepoints, which depend on the type of program youD are debugging (for example, Ada or multiprocess), are established@ automatically when you start the debugger. Use the SHOW TRACEB command to identify all tracepoints that are currently set. Any1 predefined tracepoints are identified as such.? User-defined and predef ained tracepoints are set and canceled@ independently. For example, a location or event can have bothB a user-defined and a predefined tracepoint. Canceling the user-D defined tracepoint does not affect the predefined tracepoint, and conversely.: To cancel only user-defined tracepoints, do not specifyD /PREDEFINED with the CANCEL TRACE command (the default is /USER).= To cancel only predefined tracepoints, specify /PREDEFINED< but not /USER. To cancel both user-defined and bpredefined5 tracepoints, use CANCEL TRACE/ALL/USER/PREDEFINED.= In general, the effect of CANCEL TRACE is symmetrical with= that of SET TRACE (even though SET TRACE is used only with? user-defined tracepoints). Thus, to cancel a tracepoint that< was established at a specific location, specify that same= location (address expression) with CANCEL TRACE. To cancel? tracepoints that were established on a class of instructionsB or events, specify the class of instructions orc events with theA corresponding qualifier (/LINE, /BRANCH, /ACTIVATING, /EVENT=,D and so on). For more information, see the qualifier descriptions.@ To cause the debugger to temporarily ignore a tracepoint, butB retain definition of the tracepoint, use the command DEACTIVATE> TRACE. You can later activate the tracepoint (with ACTIVATE TRACE). Related commands:* (ACTIVATE,DEACTIVATE,SET,SHOW) TRACE CANCEL ALL (SET,SHOW,CANCEL) BREAK (SET,SHOW) EdVENT_FACILITY 4 Examples# 1.DBG> CANCEL TRACE MAIN\LOOP+10< This command cancels the user-defined tracepoint at the location MAIN\LOOP+10. 2.DBG> CANCEL TRACE/ALL7 This command cancels all user-defined tracepoints." 3.all> CANCEL TRACE/TERMINATINGC This command cancels a previous SET TRACE/TERMINATING command.C As a result, a user-defined tracepoint is not triggered when a process does an image exit.( 4.DBG> CANCEL TRACE/EVENT=ReUN %TASK 3@ This command cancels the tracepoint that was set to trigger5 when task 3 (task ID = 3) entered the RUN state. 3 TYPE 4 /OVERRIDE: Cancels the override type established by a previous SET TYPE/OVERRIDE command. Format CANCEL TYPE/OVERRIDE 5 DescriptionB The CANCEL TYPE/OVERRIDE command sets the current override type? to "none." As a result, a program location associated with aA compiler-generated type is interpreted acco frding to that type. Related commands: DEPOSIT EXAMINE (SET,SHOW) EVENT_FACILITY (SET,SHOW) TYPE/OVERRIDE 5 Example DBG> CANCEL TYPE/OVERRIDED This command cancels the effect of a previous SET TYPE/OVERRIDE command. 3 WATCH Cancels a watchpoint. Format1 CANCEL WATCH [address-expression[, . . . ]] 4 Parameters address-expressionD Specifies a watchpoint to be canceled. With high-level languagges,D this is typically the name of a variable. Do not use the asteriskC (*) wildcard character. Instead, use the /ALL qualifier. Do not+ specify an address expression with /ALL. 4 Qualifiers /ALL Cancels all watchpoints. 4 DescriptionA The effect of the CANCEL WATCH command is symmetrical with theC effect of the SET WATCH command. To cancel a watchpoint that wasA established at a specific location with the SET WATCH command,@ specify that same h location with CANCEL WATCH. Thus, to cancel@ a watchpoint that was set on an entire aggregate, specify the@ aggregate in the CANCEL WATCH command; to cancel a watchpointD that was set on one element of an aggregate, specify that element in the CANCEL WATCH command.7 The CANCEL ALL command also cancels all watchpoints.@ To cause the debugger to temporarily ignore a watchpoint, but? not delete the definition of the watchpoint, use the command@ DEACTIVATE WATCH. You can liater activate the watchpoint (with ACTIVATE WATCH). Related commands:* (ACTIVATE,DEACTIVATE,SET,SHOW) WATCH CANCEL ALL (SET,SHOW,CANCEL) BREAK (SET,SHOW,CANCEL) TRACE 4 Examples! 1.DBG> CANCEL WATCH SUB2\TOTALD This command cancels the watchpoint at variable TOTAL in module SUB2. 2.DBG> CANCEL WATCH/ALL7 This command cancels all watchpoints you have set. 3 WINDOW2 Permanently deletes a screen window definitjion.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format+ CANCEL WINDOW [window-name[, . . . ]] 4 Parameters window-nameC Specifies the name of a screen window definition to be canceled.@ Do not use the asterisk (*) wildcard character. Instead, useC the /ALL qualifier. Do not specify a window definition name with /ALL. 4 Qualikfiers /ALL> Cancels all predefined and user-defined window definitions. 4 DescriptionB When a window definition is canceled, you can no longer use its@ name in a DISPLAY command. The CANCEL WINDOW command does not affect any displays. Related commands: (SHOW,CANCEL) DISPLAY (SET,SHOW) WATCH 4 Example DBG> CANCEL WINDOW MIDDLEB This command permanently deletes the screen window definition MIDDLE. 2 CONNECTD (Kept l debugger only.) Interrupts an image that is running withoutD debugger control in another process and brings that process underB debugger control. When used without a parameter, CONNECT bringsA any spawned process that is waiting to connect to the debugger under debugger control.B On Alpha systems, the debugger command CONNECT can also be used> to bring a target system running the Alpha operating system? under the control of the OpenVMS Alpha System-Code Debugger.C The Ope mnVMS Alpha System-Code Debugger is a kernel debugger that- you activate through the OpenVMS Debugger.D If you are using the CONNECT command to debug the Alpha operating> system, you must complete the instructions described in theD System Code Debugger chapter of the OpenVMS Alpha System AnalysisA Tools Manual before you issue the command. (These instructions? include the creation of an Alpha device driver and the setupC commands activating the OpenVMS Alpha System-Code Debugnger.) YouC must also have started the OpenVMS Debugger with the DCL command DEBUG/KEEP. Format CONNECT [process-spec]" CONNECT %NODE_NAME node-name 3 Parameters process-spec= Specifies a process in which an image to be interrupted is> running. The process must be in the same OpenVMS job as the< process in which the debugger was started. Use any of the following forms:= [%PROCESS_NAME] proc- The OpenVMS process name, if that? o name name contains no space or lowercaseD characters. The process name can includeA the asterisk (*) wildcard character.B [%PROCESS_NAME] "proc- The OpenVMS process name, if that nameC name" contains space or lowercase characters.D You can also use apostrophes (') instead3 of quotation marks (").B %PROCESS_PID proc-id The OpenVMS prpocess identifier (PID, a0 hexadecimal number). node-name: (Alpha only) When you are debugging the Alpha operating> system, specifies the node name of the machine to which youA are connecting (the target machine running the Alpha operating system). 3 Qualifiers /PASSWORD /PASSWORD="password": (Alpha only) When you are debugging the Alpha operating> system, specifies the password for the machine to which youA are cqonnecting (the target machine running the Alpha operatingD system). If a password has not been established for that machine,! this qualifier can be omitted. /IMAGE_PATH /IMAGE_PATH="image-path"B (Alpha only) When you are debugging the Alpha operating system,> specifies the image-path for the machine from which you areA connecting (the host machine running the debugger). The image-? path is a logical name that points to the location of system9 images. The def rault logical name is DBGHK$IMAGE_PATH:. 3 Description@ (Kept debugger only.) When you specify a process, the CONNECTD command enables you to interrupt an image that is running without? debugger control in that process and bring the process under? debugger control. The command is useful if, for example, youA run a debuggable image with the DCL command RUN/NODEBUG, or ifB your program issues a LIB$SPAWN Run-Time Library call that doesB not start the debugger. You cannot sconnect to a process created) through a $CREPRC system service call.C Depending on the version of the debugger you are running on yourA system, you may be restricted to connection with processes youA created, or you may be able to connect to processes created byD any member of your user identification code (UIC) group. (In someB cases, you may have to set the SYSGEN SECURITY_POLICY parameter? to 8 before you create the process.) Restrictions on ProcessC Creation, by Debutgger Version Number lists the restrictions that. apply to specific versions of the debugger.B Table 1-1 Restrictions on Process Creation, by Debugger Version Number& Then you can$ connect to# a process! startedC If you are running... by... With the SYSGEN Parameter?+ VAX Version 5.5-2, You No earlier Alpha Version 6.0, earliuer, VAX Version 6.0 You, Member Yes& of UIC Group+ VAX Version 6.1, You, Member No& later of UIC Group Alpha Version 6.1, later@ If debugger logicals (DEBUG, DEBUGSHR, DEBUGUISHR, DBGTBKMSG,8 DBG$PROCESS, DBG$HELP, DBG$UIHELP, DEBUGAPPCLASS, andB VMSDEBUGUIL) exist, they must translate to the same definitions/ in both the debugger and the target process.@ The image modules must have been compiled and l vinked with the? /DEBUG qualifier. The image cannot have been linked with the /NOTRACEBACK qualifier.C When the process is brought under debugger control, execution ofC the image is suspended at the point at which it was interrupted.D When you do not specify a process, the CONNECT command brings anyB processes that are waiting to connect to your debugging sessionB under debugger control. If no process is waiting, you can press' Ctrl/C to abort the CONNECT command.B w By default, a tracepoint is triggered when a process is broughtC under debugger control. This predefined tracepoint is equivalentD to that resulting from entering the SET TRACE/ACTIVATING command.B The process is then known to the debugger and can be identified in a SHOW PROCESS display.@ You cannot use the CONNECT command to connect to a subprocessC of a process running under debugger control. Use the SET PROCESS+ command to connect to such a subprocess.@ Using the C xONNECT Command to Debug the Alpha Operating System (Alpha only); You can use the CONNECT command to debug Alpha operatingA system code with the OpenVMS Alpha System-Code Debugger (SCD).D Typically, you issue this command from a timesharing (host) AlphaB machine (running SCD), and you connect to a standalone (target)D Alpha machine (running the Alpha operating system). Communication= between the two machines occurs over the Ethernet network.& y NOTE8 The port used for SCD on the target machine is not9 configured at all, and cannot be used for any otherA purpose, such as DECnet, LAT, user applications, and so on.? Therefore, to be able to use DECnet or to be in a cluster> while using SCD, you must have another Ethernet port for that traffic.C In some cases, you may find that you need to use the alternativeD Delta/XDelta Debugger to debug operating system code. These cases include:zB o When you have access to only one Alpha machine for debuggingD o When you are debugging portions of code that generate EthernetC traffic on the target system and have only one ethernet port.@ Generally, however, the OpenVMS Alpha System-Code Debugger isD preferred for debugging Alpha operating system code. For completeC information on using this debugger, see the OpenVMS Alpha System Analysis Tools Manual. Related commands: DISCONNECT Ctrl/Y{ (SET,SHOW,CANCEL) TRACE 3 Examples 1.DBG_1> CONNECTB This command brings under debugger control any processes that1 are waiting to be connected to the debugger. 2.DBG_1> CONNECT JONES_3A This command interrupts the image running in process JONES_3B and brings the process under debugger control. Process JONES_@ 3 must be in the same UIC group as the process in which theD debugger was started. Also, the image must not have been linked% | with the /NOTRACEBACK qualifier.< 3.DBG> CONNECT %NODE_NAME SCDTST /PASSWORD="eager_beaver"< %DEBUG-I-NOLOCALS, image does not contain local symbols DBG>D On Alpha systems, this CONNECT command brings the target system@ running Alpha operating-system code under debugger control.B This example specifies that the Alpha target machine (runningC the operating system) has a node name of SCDTST and a passwordC of eager_beaver. The Alpha host machine (running }the debugger)2 has the default DBGHK$IMAGE_PATH: image-path. 2 Ctrl 3 /CB When entered from within a debugging session, Ctrl/C aborts theB execution of a debugger command or interrupts program execution. without interrupting the debugging session.& NOTE8 Do not use Ctrl/Y from within a debugging session. Format  4 DescriptionC Pressing Ctrl/C enables you to abort the execution of a debugger ~A command or to interrupt program execution without interrupting? the debugging session. This is useful when, for example, the= program is executing an infinite loop that does not have aA breakpoint, or you want to abort a debugger command that takesB a long time to complete. The debugger prompt is then displayed,+ so that you can enter debugger commands.D If your program already has a Ctrl/C AST service routine enabled,? use the SET ABORT_KEY command to assign the debug ger's abortB function to another Ctrl-key sequence. Note, however, that manyC Ctrl-key sequences have predefined functions, and the SET ABORT_@ KEY command enables you to override such definitions (see theC OpenVMS User's Manual). Some of the Ctrl-key characters not used. by the operating system are G, K, N, and P.= If your program does not have a Ctrl/C AST service routineB enabled and you assign the debugger's abort function to anotherA Ctrl-key sequence, then Ctrl/C behaves like Ctrl/Y-that is, itA interrupts the debugging session and returns you to DCL level.B Do not use Ctrl/Y from within a debugging session. Instead, useD either Ctrl/C or an equivalent Ctrl-key sequence established with the SET ABORT_KEY command.C You can use the SPAWN and ATTACH commands to leave and return to< a debugging session without losing the debugging context. Related commands: ATTACH Ctrl/Y (SET,SHOW) ABORT_KEY SPAWN  4 Example DBG> GO . . . < DBG> EXAMINE/BYTE 1000:101000 !should have typed 1000:1010 1000: 0 1004: 0 1008: 0 1012: 0 1016: 0 2 %DEBUG-W-ABORTED, command aborted by user request DBG>> This example shows how to use Ctrl/C to interrupt program< execution and then to abort the execution of a debugger command. 3 /WB Refreshes the screen in screen mode (like DISPLAY/REFRESH). See the DISPLAY/REFRESH command.  Format  3 /YB When entered from DCL level, Ctrl/Y interrupts an image that isC running without debugger control, enabling you then to start the' debugger with the DCL command DEBUG.& NOTESA Do not use Ctrl/Y from within a debugging session. Instead,@ use Ctrl/C or an equivalent abort-key sequence established% with the SET ABORT_KEY command.A When you start the debugger with the Ctrl/Y-DEBUG sequence,= you cannot then use the debugger RUN or RERUN commands. Format  4 DescriptionA Pressing Ctrl/Y at DCL level enables you to interrupt an imageA that is running without debugger control, so that you can then1 start the debugger with the DCL command DEBUG.> You can bring an image under debugger control only if, as a? minimum, that image was linked with the /TRACEBACK qualifier4 (/TRACEBACK is the default for the LINK command).D Whe n you press Ctrl/Y to interrupt the image's execution, controlA is passed to DCL. If you then enter the DCL command DEBUG, theB interrupted image is brought under control of the debugger. The@ debugger sets its language-dependent parameters to the source@ language of the module in which execution was interrupted andB displays its prompt. You can then determine where execution was. suspended by entering a SHOW CALLS command.B The Ctrl/Y-DEBUG sequence is not supported in the kept debugger configuration.; The Ctrl/Y-DEBUG sequence is not supported in the Compaq? DECwindows Motif for OpenVMS user interface to the debugger. Instead, use the STOP button.A Within a debugging session, you can use the CONNECT command to? connect an image that is running without debugger control in? another process (of the same job) to that debugging session. Related commands: CONNECT Ctrl/C DEBUG (DCL command) RUN (DCL command) 4 Examples 1.$ RUN/NODEBUG TEST_B . . .  Interrupt $ DEBUG2 Debugger Banner and Version Number Language: ADA, Module: SWAP DBG>@ In this example, the RUN/NODEBUG command executes the image> TEST_B without debugger control. Execution is interruptedB with Ctrl/Y. The DEBUG command then causes the debugger to beB started. The debugger displays its banner, sets the language-D dependent parameters to the language (Ada, in this case) of theC module (SWAP) in which execution was interrupted, and displays the prompt. 2.$ RUN/NODEBUG PROG2 . . .  Interrupt $ DEBUG2 Debugger Banner and Version Number$ Language: FORTRAN, Module: SUB4I predefined trace on activation at SUB4\%LINE 12 in %PROCESS_NUMBER 1 DBG>: In this example, the DEFINE/JOB command establishes aB multiprocess debugging configuration. The RUN/NODEBUG commandC executes the image PROG2 without debugger control. The Ctrl/Y-A DEBUG sequence interrupts execution and starts the debugger.? The banner indicates that a new debugging session has beenA started. The activation tracepoint indicates where executionC was interrupted when the debugger took control of the process. 3 /Z> Ends a debugging session (like EXIT). See the EXIT command. Format  2 DEACTIVATE 3 BREAK: Deactivates a breakpoint, which you can later activate. Format5 DEACTIVATE BREAK [address-expression[, . . . ]] 4 Parameters address-expressionD Specifies a breakpoint to be deactivated. Do not use the asteriskC (*) wildcard character. Instead, use the /ALL qualifier. Do notA specify an address expression when using any qualifiers except! /EVENT, /PREDEFINED, or /USER. 4 Qualifiers /ACTIVATING9 Deactivates a breakpoint established by a previous SET BREAK/ACTIVATING command. /ALLB By default, deactivates all user-defined breakpoints. When used? with /PREDEFINED, deactivates all predefined breakpoints butB no user-defined breakpoints. To deactivate all breakpoints, use /ALL/USER/PREDEFINED. /BRANCH9 Deactivates a breakpoint established by a previous SET BREAK/BRANCH command. /CALLD Deactivates a breakpoint established by a previous SET BREAK/CALL command. /EVENT /EVENT=event-name9 Deactivates a breakpoint established by a previous SET> BREAK/EVENT=event-name command. Specify the event name (and@ address expression, if any) exactly as specified with the SET BREAK/EVENT command.B To identify the current event facility and the associated event. names, use the SHOW EVENT_FACILITY command. /EXCEPTION9 Deactivates a breakpoint established by a previous SET BREAK/EXCEPTION command. /HANDLER9 Deactivates a breakpoint established by a previous SET BREAK/HANDLER command. /INSTRUCTION9 Deactivates a breakpoint established by a previous SET BREAK/INSTRUCTION command. /LINED Deactivates a breakpoint established by a previous SET BREAK/LINE command. /PREDEFINEDB Deactivates a specified predefined breakpoint without affectingA any user-defined breakpoints. When used with /ALL, deactivates all predefined breakpoints. /SYSEMULATEB (Alpha only) Deactivates a breakpoint established by a previous SET BREAK/SYSEMULATE command. /TERMINATING9 Deactivates a breakpoint established by a previous SET BREAK/TERMINATING command. /UNALIGNED_DATAB (Alpha only) Deactivates a breakpoint established by a previous$ SET BREAK/UNALIGNED_DATA command. /USERA Deactivates a specified user-defined breakpoint. To deactivate8 all user-defined breakpoints, use the /ALL qualifier. /VECTOR_INSTRUCTIOND (VAX only) Deactivates a breakpoint established by a previous SET$ BREAK/VECTOR_INSTRUCTION command. 4 Description@ User-defined breakpoints are activated when you set them withA the SET BREAK command. Predefined breakpoints are activated byA default. Use the DEACTIVATE BREAK command to deactivate one or more breakpoints.; If you deactivate a breakpoint, the debugger ignores theA breakpoint during program execution. To a ctivate a deactivatedC breakpoint, use the ACTIVATE BREAK command. You can activate andA deactivate user-defined and predefined breakpoints separately.A Activating and deactivating breakpoints enables you to run andC rerun your program with or without breakpoints without having toB cancel and then reset them. By default, the RERUN command savesC the current state of all breakpoints (activated or deactivated).> To check if a breakpoint is deactivated, use the SHOW BREAK  command. Related commands: CANCEL ALL RERUN& (SET,SHOW,CANCEL,ACTIVATE) BREAK (SET,SHOW) EVENT_FACILITY 4 Examples' 1.DBG> DEACTIVATE BREAK MAIN\LOOP+10D This command deactivates the user-defined breakpoint set at the% address expression MAIN\LOOP+10. 2.DBG> DEACTIVATE BREAK/ALL; This command deactivates all user-defined breakpoints. 3 TRACE: Deactivates a tracepoint, which you can later activate. Format5 DEACTIVATE TRACE [address-expression[, . . . ]] 4 Parameters address-expressionD Specifies a tracepoint to be deactivated. Do not use the asteriskC (*) wildcard character. Instead, use the /ALL qualifier. Do notA specify an address expression when using any qualifiers except! /EVENT, /PREDEFINED, or /USER. 4 Qualifiers /ACTIVATING; Deactivates a tracepoint established with a previous SET TRACE/ACTIVATING command. /ALLB  By default, deactivates all user-defined tracepoints. When usedB with /PREDEFINED, it deactivates all predefined tracepoints butB no user-defined tracepoints. To deactivate all tracepoints, use /ALL/USER/PREDEFINED. /BRANCH; Deactivates a tracepoint established with a previous SET TRACE/BRANCH command. /CALL; Deactivates a tracepoint established with a previous SET TRACE/CALL command. /EVENT /EVENT=event-name; Deactivates a tracepoint established with a previous SET> TRACE/EVENT=event-name command. Specify the event name (and@ address expression, if any) exactly as specified with the SET TRACE/EVENT command.B To identify the current event facility and the associated event. names, use the SHOW EVENT_FACILITY command. /EXCEPTION; Deactivates a tracepoint established with a previous SET TRACE/EXCEPTION command. /INSTRUCTION; Deactivates a tracepoint established with a previous SET TRACE/INSTRUCTION command. /LINE; Deactivates a tracepoint established with a previous SET TRACE/LINE command. /PREDEFINEDB Deactivates a specified predefined tracepoint without affectingD any user-defined tracepoints. When used with /ALL, it deactivates all predefined tracepoints. /TERMINATING; Deactivates a tracepoint established with a previous SET TRACE/TERMINATING command. /USERD Deactivates a specified user-defined tracepoint without affectingB any predefined tracepoints. When used with /ALL, it deactivatesC all user-defined tracepoints. The /USER qualifier is the default" unless you specify /PREDEFINED. /VECTOR_INSTRUCTIONB (VAX only) Deactivates a tracepoint established with a previous( SET TRACE/VECTOR_INSTRUCTION command. 4 Description@ User-defined tracepoints are activated when you set them withA the SET TRACE command. Predefined tracepoints are activated byA default. Us e the DEACTIVATE TRACE command to deactivate one or more tracepoints.; If you deactivate a tracepoint, the debugger ignores theA tracepoint during program execution. To activate a deactivatedC tracepoint, use the ACTIVATE TRACE command. You can activate andA deactivate user-defined and predefined tracepoints separately.A Activating and deactivating tracepoints enables you to run andC rerun your program with or without tracepoints without having toB cancel and then reset them. By default, the RERUN command savesC the current state of all tracepoints (activated or deactivated).> To check if a tracepoint is deactivated, use the SHOW TRACE command. Related commands: CANCEL ALL RERUN (SET,SHOW) EVENT_FACILITY& (SET,SHOW,CANCEL,ACTIVATE) TRACE 4 Examples' 1.DBG> DEACTIVATE TRACE MAIN\LOOP+10@ This command deactivates the user-defined tracepoint at the location MAIN\LOOP+10. 2.DBG> DEACTIVATE TRACE/ALL; This command deactivates all user-defined tracepoints. 3 WATCH: Deactivates a watchpoint, which you can later activate. Format5 DEACTIVATE WATCH [address-expression[, . . . ]] 4 Parameters address-expression< Specifies a watchpoint to be deactivated. With high-level> languages, this is typically the name of a variable. Do notB use the asterisk (*) wildcard character. Instead, use the /ALL= qualifier. Do not specify an address expression with /ALL. 4 Qualifiers /ALL Deactivates all watchpoints. 4 DescriptionA Watchpoints are activated when you set them with the SET WATCHA command. Use the DEACTIVATE WATCH command to deactivate one or more watchpoints.; If you deactivate a watchpoint, the debugger ignores theA watchpoint during program execution. To activate a deactivated= watchpoint, use the ACTIVATE WATCH command. Activating and= deactivating watchpoints enables you to run and rerun your? program with or without watchpoints without having to cancel and then reset them.? By default, the RERUN command saves the current state of all> static watchpoints (activated or deactivated). The state of@ a particular nonstatic watchpoint might or might not be savedC depending on the scope of the variable being watched relative to4 the main program unit (where execution restarts).> To check if a watchpoint is deactivated, use the SHOW WATCH command. Related commands: CANCEL ALL RERUN& (SET,SHOW,CANCEL,ACTIVATE) WATCH 4 Examples% 1.DBG> DEACTIVATE WATCH SUB2\TOTALA This command deactivates the watchpoint at variable TOTAL in module SUB2. 2.DBG> DEACTIVATE WATCH/ALL; This command deactivates all watchpoints you have set. 2 DECLARE? Declares a formal parameter within a command procedure. This@ enables you to pass an actual parameter to the procedure when- entering an execute procedure (@) command. Format6 DECLARE p-name:p-kind [,p-name:p-kind[, . . . ]] 3 Parameters p-nameB Specifies a formal parameter (a symbol) that is declared within the command procedure.= Do not specify a null parameter (represented either by two? consecutive commas or by a comma at the end of the command). p-kind< Specifies the parameter kind of a formal parameter. Valid keywords are as follows :? ADDRESS Specifies that the actual parameter is interpreted5 as an address expression. Same effect as; DEFINE/ADDRESS symbol-name = actual-parameter.3 COMMAND Specifies that the actual parameter is5 interpreted as a command. Same effect as; DEFINE/COMMAND symbol-name = actual-parameter.D VALUE Specifies that the actual parameter is interpreted as aB value expression in the current language. Same effect<  as DEFINE/VALUE symbol-name = actual-parameter. 3 Description@ The DECLARE command is valid only within a command procedure.; The DECLARE command binds one or more actual parameters,@ specified on the command line following the execute procedure@ (@) command, to formal parameters (symbols) declared within a command procedure.C Each p-name:p-kind pair specified by a DECLARE command binds oneB formal parameter to one actual parameter. Formal parameters are@  bound to actual parameters in the order in which the debugger? processes the parameter declarations. If you specify several> formal parameters on a single DECLARE command, the leftmost? formal parameter is bound to the first actual parameter, theB next formal parameter is bound to the second, and so on. If youA use a DECLARE command in a loop, the formal parameter is boundD to the first actual parameter on the first iteration of the loop;D the same formal parameter is bound to  the second actual parameter$ on the next iteration, and so on.< Each parameter declaration acts like a DEFINE command: it> associates a formal parameter with an address expression, aD command, or a value expression in the current language, accordingD to the parameter kind specified. The formal parameters themselvesC are consistent with those accepted by the DEFINE command and canD in fact be deleted from the symbol table with the DELETE command.? The %PARCNT built-in symbol, which can be used only within a> command procedure, enables you to pass a variable number ofA parameters to a command procedure. The value of %PARCNT is the? number of actual parameters passed to the command procedure. Related commands: @ (Execute Procedure) DEFINE DELETE 3 Examples9 1.! ***** Debugger Command Procedure EXAM_GO.COM *****! DECLARE L:ADDRESS, M:COMMAND EXAMINE L; M DBG> @EXAM_GO X "@DUMP"C In this e xample, the command procedure EXAM_GO.COM accepts two@ parameters, an address expression (L) and a command stringB (M). The address expression is then examined and the command is executed.D At the debugger prompt, the @EXAM_GO X "@DUMP" command executesB EXAM_GO.COM, passing the address expression X and the command string @DUMP.5 2.! ***** Debugger Command Procedure VAR.DBG ***** SET OUTPUT VERIFY: FOR I = 1 TO %PARCNT DO (DECLARE X:VALUE; EVALUATE X) DBG> @VAR.DBG 12,37,45: %DEBUG-I-VERIFYIC, entering command procedure VAR.DBG; FOR I = 1 TO %PARCNT DO (DECLARE X:VALUE; EVALUATE X) 12 37 459 %DEBUG-I-VERIFYIC, exiting command procedure VAR.DBG DBG>= In this example, the command procedure VAR.DBG accepts a@ variable number of parameters. That number is stored in the built-in symbol %PARCNT.C At the debugger prompt, the @VAR.DBG command executes VAR.DBG,= passi ng the actual parameters 12, 37, and 45. Therefore,< %PARCNT has the value 3, and the FOR loop is repeated 3@ times. The FOR loop causes the DECLARE command to bind each? of the three actual parameters (starting with 12) to a new@ declaration of X. Each actual parameter is interpreted as aA value expression in the current language, and the EVALUATE X! command displays that value. 2 DEFINE@ Assigns a symbolic name to an address expression, command, or value. FormatE DEFINE symbol-name=parameter [,symbol-name=parameter[, . . . ]] 3 Parameters symbol-nameC Specifies a symbolic name to be assigned to an address, command,> or value. The symbolic name can be composed of alphanumeric> characters and underscores. The debugger converts lowercaseC alphabetic characters to uppercase. The first character must notD be a number. The symbolic name must be no more than 31 characters long. parameter& Depends on the qualifier specified. 3 Qualifiers /ADDRESSA (Default) Specifies that the defined symbol is an abbreviationC for an address expression. In this case, parameter is an address expression. /COMMANDA Specifies that the defined symbol is treated as a new debuggerA command. In this case, parameter is a quoted character string.A This qualifier provides, in simple cases, essentially the same+ capability as the following DCL command: $ symbol := string< To define complex commands, you might need to use command@ procedures with formal parameters. For more information about> declaring parameters to command procedures, see the DECLARE command. /LOCAL= Specifies that the definition is valid only in the command> procedure in which it is defined. The defined symbol is notB visible at debugger command level. By default, a symbol defined@ within a command procedure is visible outside that procedure. /VALUED Specifies that the defined symbol is an abbreviation for a value.B In this case, parameter is a language expression in the current language. 3 Description; The DEFINE/ADDRESS command assigns a symbolic name to anA address expression in a program. You can define a symbol for aB nonsymbolic program location or for a symbolic program location= having a long path-name prefix. You can then refer to thatB program location with the symbolic name. The /A DDRESS qualifier is the default.A The DEFINE/COMMAND command enables you to define abbreviationsA for debugger commands or even define new commands, either from9 the debugger command level or from command procedures.D The DEFINE/VALUE command enables you to assign a symbolic name to? a value (or the result of evaluating a language expression).B The DEFINE/LOCAL command confines symbol definitions to command> procedures. By default, defined symbols are global (visible " outside the command procedure).B To enter several DEFINE commands with the same qualifier, firstB use the SET DEFINE command to establish a new default qualifierD (for example, SET DEFINE COMMAND makes subsequent DEFINE commandsD behave like DEFINE/COMMAND). You can override the current default> qualifier for a single DEFINE command by specifying another qualifier.B In symbol translation, the debugger searches symbols you define@ during the debugging session first. S o if you define a symbolC that already exists in your program, the debugger translates theC symbol according to its defined definition, unless you specify a path-name prefix.A If a symbol is redefined, the previous definition is canceled,A even if you used different qualifiers with the DEFINE command.? Definitions created with the DEFINE/ADDRESS and DEFINE/VALUE> commands are available only when the image in whose contextC they were created is the current image. If you use the SET IMAGEB command to establish a new current image, these definitions areA temporarily unavailable. However, definitions created with theB DEFINE/COMMAND and DEFINE/KEY commands are always available for all images.C Use the SHOW SYMBOL/DEFINED command to determine the equivalence value of a symbol.8 Use the DELETE command to cancel a symbol definition. Related commands: DECLARE DELETE SET IMAGE SHOW DEFINE SHOW SYMBOL/DEFINED 3 Examples 1.DBG> DEFINE/VALUE COUNTER=0B DBG> SET TRACE/SILENT R DO (DEFINE/VALUE COUNTER = COUNTER+1)A In this example, the DEFINE/VALUE command assigns a value of> 0 to the symbol COUNTER. The SET TRACE command causes the? debugger to increment the value of the symbol COUNTER by 1D whenever address R is encountered. In other words, this example% counts the number of calls to R.* 2.DBG> DEFINE/COMMAND BRE = "SET BREAK"D This command assigns the symbol BRE to the debugger command SET BREAK. 3 /KEY& Assigns a string to a function key.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format. DEFINE/KEY key-name "equivalence-string" 4 Parameters key-nameD Specifies a function key to be assigned a string. Valid key names are as follows: Key LK2012 Name Keyboard VT100-type VT52-type- PF1 PF1 PF1 Blue, PF2 PF2 PF2 Red. PF3 PF3 PF3 Black PF4 PF4 PF43 KP0-KP9 Keypad 0-9 Keypad 0-9 Keypad 0-9! PERIOD Keypad Keypad% period (.) period (.)' COMMA Keypad comma Keypad comma (,) (,) E1 Find E2 Insert Here E3 Remove  E4 Select E5 Prev Screen E6 Next Screen HELP Help DO Do F6-F20 F6-F20 On LK201 keyboards:D o You cannot define keys F1 to F5 or the arrow keys (E7 to E10).B o You can define keys F6 to F14 only if you have first enteredD the DCL command SET TERMINAL/NOLINE_EDITING. In that case, theA line-editing functions of the left and right arrow keys (E8 and E9) are disabled. equivalence-stringD Specifies the string to be processed when you press the specified@ key. Typically, this is one or more debugger commands. If the? string includes any space or nonalphanumeric characters (forD example, a semicolon separating two commands), enclose the string in quotation marks ("). 4 Qualifiers /ECHO /ECHO (default) /NOECHOC Controls whether the command line is displayed after the key has6 been pressed. Do not use /NOECHO with /NOTERMINATE. /IF_STATE& /IF_STATE=(state-name[, . . . ]) /NOIF_STATE (default)B Specifies one or more states to which a key definition applies.< The /IF_STATE qualifier assigns the key definition to the? specified states. You can specify predefined states, such as@ DEFAULT and GOLD, or user-defined states. A state name can beA any appropriate alphanumeric string. The /NOIF_STATE qualifier3 assigns the key definition to the current state. /LOCK_STATE /LOCK_STATE /NOLOCK_STATE (default)B Controls how long the state set by /SET_STATE remains in effect@ after the specified key is pressed. The /LOCK_STATE qualifier; causes the state to remain in effect until it is changed> explicitly (for example, with a SET KEY/STATE command). The? /NOLOCK_STATE qualifier causes the state to remain in effectB only until the next terminator character is typed, or until the( next defined function key is pressed. /LOG /LOG (default) /NOLOGB Controls whether a message is displayed indicating that the key? definition has been successfully created. The /LOG qualifier< displays the message. The /NOLOG qualifier suppresses the message. /SET_STATE /SET_STATE=state-name /NOSET_STATE (default)C Controls whether pressing the key changes the current key state.A The /SET_STATE qualifier causes the current state to change to? the specified state when you press the key. The /NOSET_STATE: qualifier causes the current state to remain in effect. /TERMINATE /TERMINATE /NOTERMINATE (default)B Controls whether the specified string is terminated (processed)? when the key is pressed. The /TERMINATE qualifier causes theD string to be terminated when the key is pressed. The /NOTERMINATEC qualifier enables you to press other keys before terminating the% string by pressing the Return key. 4 DescriptionC Keypad mode must be enabled ( SET MODE KEYPAD) before you can use3 this command. Keypad mode is enabled by default.= The DEFINE/KEY command enables you to assign a string to aB function key, overriding any predefined function that was bound@ to that key. When you then press the key, the debugger enters> the currently associated string into your command line. The9 DEFINE/KEY command is like the DCL command DEFINE/KEY.> For a list of the predefined key functions, see the Keypad_$ Definitions_CI online  help topic.A On VT52- and VT100-series terminals, the function keys you canB use include all of the numeric keypad keys. Newer terminals and@ workstations have the LK201 keyboard. On LK201 keyboards, theD function keys you can use include all of the numeric keypad keys,B the nonarrow keys of the editing keypad (Find, Insert Here, and9 so on), and keys F6 to F20 at the top of the keyboard.A A key definition remains in effect until you redefine the key,C enter the DELETE/ KEY command for that key, or exit the debugger.B You can include key definitions in a command procedure, such as% your debugger initialization file.@ The /IF_STATE qualifier enables you to increase the number ofB key definitions available on your terminal. The same key can beC assigned any number of definitions as long as each definition is% associated with a different state.> By default, the current key state is the DEFAULT state. The? current state can be changed with the SET KEY/STATE command,B or by pressing a key that causes a state change (a key that was1 defined with DEFINE/KEY/LOCK_STATE/SET_STATE). Related commands: DELETE/KEY (SET,SHOW) KEY 4 Examples 1.DBG> SET KEY/STATE=GOLD7 %DEBUG-I-SETKEY, keypad state has been set to GOLD; DBG> DEFINE/KEY/TERMINATE KP9 "SET RADIX/OVERRIDE HEX"3 %DEBUG-I-DEFKEY, GOLD key KP9 has been defined= In this example, the SET KEY command establishes GOLD as > the current key state. The DEFINE/KEY command assigns theA SET RADIX/OVERRIDE HEX command to keypad key 9 (KP9) for theB current state (GOLD). The command is processed when you press the key.9 2.DBG> DEFINE/KEY/IF_STATE=BLUE KP9 "SET BREAK %LINE "3 %DEBUG-I-DEFKEY, BLUE key KP9 has been definedD This command assigns the unterminated command string "SET BREAKD %LINE" to keypad key 9 for the BLUE state. After pressing BLUE-C KP9, you can enter a line  number and then press the Return key4 to terminate and process the SET BREAK command. 3.DBG> SET KEY/STATE=DEFAULT: %DEBUG-I-SETKEY, keypad state has been set to DEFAULT4 DBG> DEFINE/KEY/SET_STATE=RED/LOCK_STATE F12 ""6 %DEBUG-I-DEFKEY, DEFAULT key F12 has been defined@ In this example, the SET KEY command establishes DEFAULT as@ the current state. The DEFINE/KEY command makes the F12 key> (on an LK201 keyboard) a state key. Pressing F12 while inB the DEFAULT state causes the current state to become RED. The@ key definition is not terminated and has no other effect (aA null string is assigned to F12). After pressing F12, you can@ enter "RED" commands by pressing keys that have definitions# associated with the RED state. 3 /PROCESS_SET? Assigns a symbolic name to a list of process specifications. FormatA DEFINE/PROCESS_SET process-set-name =process-spec[, . . . ] 4 Parameters process-set-name@ Specifies a symbolic name to be assigned to a list of processD specifications. The symbolic name can be composed of alphanumeric> characters and underscores. The debugger converts lowercaseC alphabetic characters to uppercase. The first character must notD be a number. The symbolic name must be no more than 31 characters long. process-specC Specifies a process currently under debugger control. Use any of the following forms:D [%PROCESS_NAME] pro cess- The process name, if that name does notD name contain spaces or lowercase characters.= The process name can include the> asterisk (*) wildcard character.D [%PROCESS_NAME] The process name, if that name contains@ "process-name" spaces or lowercase characters. YouD can also use apostrophes (') instead of1 quotation marks (").;  %PROCESS_PID process_id The process identifier (PID, a1 hexadecimal number).B [%PROCESS_NUMBER] The number assigned to a process when? process-number it comes under debugger control. AA (or %PROC process- new number is assigned sequentially,A number) starting with 1, to each process. IfB a process is terminated with the EXIT? or QUIT command, the number  can be@ assigned again during the debuggingA session. Process numbers appear in a@ SHOW PROCESS display. Processes areC ordered in a circular list so they canA be indexed with the built-in symbolsA %PREVIOUS_PROCESS and %NEXT_PROCESS.6 process-set-name A symbol defined with theD DEFIN E/PROCESS_SET command to represent2 a group of processes.? %NEXT_PROCESS The next process after the visible? process in the debugger's circular* process list.@ %PREVIOUS_PROCESS The process previous to the visible? process in the debugger's circular* process list.C %VISIBLE_PROCESS The process whose stack, register set ,C and images are the current context forA looking up symbols, register values,C routine calls, breakpoints, and so on.D If you do not specify a process, the symbolic name is created but contains no process entries. 4 Description? The DEFINE/PROCESS_SET command assigns a symbol to a list of= process specifications. You can then use the symbol in any= command where a list of process specifications is allowed.D The DEFINE/PROCESS_SET command does not verify the existence of aC specified process. This enables you to specify processes that do not yet exist.D To identify a symbol that was defined with the DEFINE/PROCESS_SETC command, use the SHOW SYMBOL/DEFINED command. To delete a symbol@ that was defined with the DEFINE/PROCESS_SET command, use the DELETE command. Related commands: DELETE (SET,SHOW) DEFINE SHOW SYMBOL/DEFINED 4 Examples? 1.all> DEFINE/PROCESS_SET SERVERS=FILE_SERVER,NETWORK_SERVER all> SHOW PROCESS SERVERS3 Number Name State Current PC9 * 1 FILE_SERVER step FS_PROG\%LINE 37: 2 NETWORK_SERVER break NET_PROG\%LINE 24 all>> This DEFINE/PROCESS_SET command assigns the symbolic name= SERVERS to the process set consisting of FILE_SERVER and> NETWORK_SERVER. The SHOW PROCESS SERVERS command displaysB  information about the processes that make up the set SERVERS.B 2.all> DEFINE/PROCESS_SET G1=%PROCESS_NUMBER 1,%VISIBLE_PROCESS all> SHOW SYMBOL/DEFINED G1 defined G18 bound to: "%PROCESS_NUMBER 1, %VISIBLE_PROCESS"! was defined /process_set all> DELETE G1D This DEFINE/PROCESS_SET command assigns the symbolic name G1 toD the process set consisting of process 1 and the visible processC (process 3). The SHOW SYMBOL/DEFINED G1 command identifies the@ defined symbol G1. The DELETE G1 command deletes the symbol" from the DEFINE symbol table.& 3.all> DEFINE/PROCESS_SET A = B,C,D& all> DEFINE/PROCESS_SET B = E,F,G& all> DEFINE/PROCESS_SET E = I,J,A? %DEBUG-E-NORECSYM, recursive PROCESS_SET symbol definition$ encountered at or near "A"D This series of DEFINE/PROCESS_SET commands illustrate valid and! invalid uses of the command. 2 DELETEC Deletes a symbol definition that was established with the DEFINE command. Format$ DELETE [symbol-name[, . . . ]] 3 Parameters symbol-name@ Specifies a symbol whose definition is to be deleted from the= DEFINE symbol table. Do not use the asterisk (*) wildcard? character. Instead, use the /ALL qualifier. Do not specify a> symbol name with /ALL. If you use the /LOCAL qualifier, the> symbol specified must have been previously defined with theA DEFINE/LOCAL command. If you do not specify /LOCAL, the symbol> specified must have been previously defined with the DEFINE command without /LOCAL. 3 Qualifiers /ALLB Deletes all global DEFINE definitions. Using /ALL/LOCAL deletesC all local DEFINE definitions associated with the current command5 procedure (but not the global DEFINE definitions). /LOCALB Deletes the (local) definition of the specified symbol from theB current command procedure. The symbol must have been previously) defined with the DEFINE/LOCAL command. 3 Description@ The DELETE command deletes either a global DEFINE symbol or aB local DEFINE symbol. A global DEFINE symbol is defined with the> DEFINE command without the /LOCAL qualifier. A local DEFINE= symbol is defined in a debugger command procedure with theC DEFINE/LOCAL command, so that its definition is confined to that command procedure. Related commands: DECLARE DEFINE SHOW DEFINE SHOW SYMBOL/DEFINED 3 Examples& 1.DBG> DEFINE X = INARR, Y = OUTARR DBG> DELETE X,YB In this example, the DEFINE command defines X and Y as globalA symbols corresponding to INARR and OUTARR, respectively. TheA DELETE command deletes these two symbol definitions from the global symbol table. 2.DBG> DELETE/ALL/LOCAL? This command deletes all local symbol definitions from the current command procedure. 3 /KEYD Deletes a key definition that was established with the DEFINE/KEY+ command or, by default, by the debugger.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format DELETE/KEY [key-name] 4 Parameters key-name@ Specifies a key whose definition is to be deleted. Do not use> the asterisk (*) wildcard character. Instead, use the /ALLB qualifier. Do not specify a key name with /ALL. Valid key names are as follows: Key LK2012 Name Keyboard VT100-type VT52-type- PF1 PF1 PF1 Blue, PF2 PF2 PF2 Red. PF3 PF3 PF3 Black PF4 PF4 PF43 KP0-KP9 Keypad 0-9 Keypad 0-9 Keypad 0-9! PERIOD Keypad Keypad% period (.) period (.)' COMMA Keypad comma Keypad comma (,) (,). ENTER Enter ENTER ENTER E1 Find E2 Insert Here E3 Remove E4 Select E5 Prev Screen E6 Next Screen HELP Help DO Do F6-F20 F6-F20 4 Qualifiers /ALL@ Deletes all key definitions in the specified state. If you doD not specify a state, all key definitions in the current state areA deleted. To specify one or more states, use /STATE=state-name. /LOG /LOG (default) /NOLOG> Controls whether a message is displayed indicating that theB specified key definitions have been deleted. The /LOG qualifierD (which is the default) displays the message. The /NOLOG qualifier suppresses the message. /STATE$ /STATE=(state-name [, . . . ]) /NOSTATE (default)A Selects one or more states for which a key definition is to be@ deleted. The /STATE qualifier deletes key definitions for theC specified states. Y ou can specify predefined key states, such asD DEFAULT and GOLD, or user-defined states. A state name can be anyB appropriate alphanumeric string. The /NOSTATE qualifier deletes1 the key definition for the current state only.> By default, the current key state is the DEFAULT state. The? current state can be changed with the SET KEY/STATE command,B or by pressing a key that causes a state change (a key that was1 defined with DEFINE/KEY/LOCK_STATE/SET_STATE). 4 Description= The DELETE/KEY command is like the DCL command DELETE/KEY.C Keypad mode must be enabled (SET MODE KEYPAD) before you can use3 this command. Keypad mode is enabled by default. Related commands: DEFINE/KEY (SET,SHOW) KEY 4 Examples 1.DBG> DELETE/KEY KP46 %DEBUG-I-DELKEY, DEFAULT key KP4 has been deletedA This command deletes the key definition for KP4 in the state= last set by the SET KEY command (by default, this is the DEFAULT state).+ 2.DBG> DELETE/KEY/STATE=(BLUE,RED) COMMA5 %DEBUG-I-DELKEY, BLUE key COMMA has been deleted4 %DEBUG-I-DELKEY, RED key COMMA has been deletedA This command deletes the key definition for the COMMA key in the BLUE and RED states. 2 DEPOSITD Changes the value of a program variable. More generally, deposits@ a new value at the location denoted by an address expression. Format6 DEPOSIT address-expression = language-expression  3 Parameters address-expression> Specifies the location into which the value of the languageA expression is to be deposited. With high-level languages, thisB is typically the name of a variable and can include a path name? to specify the variable uniquely. More generally, an address@ expression can also be a memory address or a register and canB be composed of numbers (offsets) and symbols, as well as one orA more operators, operands, or delimiters. For information aboutA the debugger symbols for the registers and about the operatorsC you can use in address expressions, see the Built_in_Symbols and# Address_Expressions help topics.D You cannot specify an entire aggregate variable (a composite dataD structure such as an array or a record). To specify an individual@ array element or a record component, follow the syntax of the current language. language-expressionD Specifies the value to be deposited. You can specify any la nguage= expression that is valid in the current language. For most< languages, the expression can include the names of simple< (noncomposite, single-valued) variables but not the names= of aggregate variables (such as arrays or records). If the@ expression contains symbols with different compiler-generated@ types, the debugger uses the rules of the current language to evaluate the expression.? If the expression is an ASCII string or an assembly-language> instruction, you must enclose it in quotation marks (") or= apostrophes ('). If the string contains quotation marks or> apostrophes, use the other delimiter to enclose the string.@ If the string has more characters (1-byte ASCII) than can fit? into the program location denoted by the address expression,A the debugger truncates the extra characters from the right. IfC the string has fewer characters, the debugger pads the remainingA characters to the right of the string by inserting ASCII space characters. 3 Qualifiers /ASCIC /ASCIC /ACC Deposits a counted ASCII string into the specified location. YouC must specify a quoted string on the right-hand side of the equalA sign. The deposited string is preceded by a 1-byte count field' that gives the length of the string. /ASCID /ASCID /AD> Deposits an ASCII string into the address given by a stringA descriptor that is at the specified location. You must specify@ a quoted string on the right-hand side of the equal sign. The> specified location must contain a string descriptor. If theA string lengths do not match, the string is either truncated on: the right or padded with space characters on the right. /ASCII /ASCII:nC Deposits n bytes of an ASCII string into the specified location.A You must specify a quoted string on the right-hand side of theA equal sign. If its length is not n, the string is truncated or@ padded with space characters on the right. If you omit n, theD actual length of the data item at the specified location is used. /ASCIW /ASCIW /AWC Deposits a counted ASCII string into the specified location. YouC must specify a quoted string on the right-hand side of the equalA sign. The deposited string is preceded by a 2-byte count field' that gives the length of the string. /ASCIZ /ASCIZ /AZ= Deposits a zero-terminated ASCII string into the specified? location. You must specify a quoted string on the right-handB side of the equal sign. The deposited string is terminated by a2 zero byte that indicates the end of the string. /BYTE9 Deposits a 1-byte integer into the specified location. /D_FLOATC Converts the expression on the right-hand side of the equal signB to the D_floating type (length 8 bytes) and deposits the result into the specified location. /DATE_TIME? Converts a string representing a date and time (for example,? 21-DEC-1988 21:08:47.15) to the internal format for date andC time and deposits that value (length 8 bytes) into the specified? location. Specify an absolute date and time in the following format:! [dd-mmm-yyyy[:]] [hh:mm:ss.cc] /EXTENDED_FLOAT /EXTENDED_FLOAT /X_FLOATA (Alpha only) Converts the expression on the right-hand side ofC the equal sign to the IEEE X_floating type (length 16 bytes) and3 deposits the result into the specified location. /FLOATD On VAX processors, converts the expression on the right-hand side@ of the equal sign to the F_floating type (length 4 bytes) and3 deposits the result into the specified location.A On Alpha processors, converts the expression on the right-hand= side of the equal sign to the IEEE T_floating type (double> precision, length 8 bytes) and deposits the result into the specified location. /F_FLOATC (VAX only) Converts the expression on the right-hand side of theB equal sign to the F_floating type (length 4 bytes) and deposits* the result into the specified location. /G_FLOATC Converts the expression on the right-hand side of the equal signB to the G_floating type (length 8 bytes) and deposits the result into the specified location. /H_FLOATC (VAX only) Converts the expression on the right-hand side of theC equal sign to the H_floating type (length 16 bytes) and deposits* the result into the specified location. /INSTRUCTIONB (VAX only) Deposits an instruction into the specified location.D The expression on the right-hand side of the equal sign must be a? quoted string representing an assembly-language instruction. /LONG_FLOAT /LONG_FLOAT /S_FLOATA (Alpha only) Converts the expression on the right-hand side of@ the equal sign to the IEEE S_floating type (single precision,= length 4 bytes) and deposits the result into the specified location. /LONG_LONG_FLOAT /LONG_LONG_FLOAT /T_FLOATA (Alpha only) Converts the expression on the right-hand side of@ the equal sign to the IEEE T_floating type (double precision,= length 8 bytes) and deposits the result into the specified location. /LONGWORDB Deposits a longword integer (length 4 bytes) into the specified location. /OCTAWORDD Deposits an octaword integer (length 16 bytes) into the specified location. /PACKED /PACKED:nC Converts the expression on the right-hand side of the equal sign@ to a packed decimal representation and deposits the resultingB value into the specified location. The value of n is the number> of decimal digits. Each digit occupies one nibble (4 bits). /QUADWORDB Deposits a quadword integer (length 8 bytes) into the specified location. /S_FLOAT /S_FLOAT /LONG_FLOATA (Alpha only) Converts the expression on the right-hand side of@ the equal sign to the IEEE S_floating type (single precision,= length 4 bytes) and deposits the result into the specified location. /TASKC Applies to tasking (multithread) programs. Deposits a task value@ (a task name or a task ID such as %TASK 3) into the specified< location. The deposited value must be a valid task value. /T_FLOATA (Alpha only) Converts the expression on the right-hand side of@ the equal sign to the IEEE T_floating type (double precision,= length 8 bytes) and deposits the result into the specified location. /TYPE /TYPE=(name)A Converts the expression to be deposited to the type denoted byC name (which must be the name of a variable or data type declared> in the program), then deposits the resulting value into theB specified location. This enables you to specify a user-declared= type. You must use parentheses around the type expression. /WCHAR_T /WCHAR_T[:n]; Deposits up to n longwords (n characters) of a converted@ multibyte file code sequence into the specified location. TheA default is 1 longword. You must specify a string on the right- hand side of the equal sign.> When converting the specified string, the debugger uses theA locale database of the process in which the debugger runs. The default is C locale. /WORD> Deposits a word integer (length 2 bytes) into the specified location. /X_FLOATA (Alpha only) Converts the expression on the right-hand side ofC the equal sign to the IEEE X_floating type (length 16 bytes) and3 deposits the result into the specified location. 3 Description@ You can use the DEPOSIT command to change the contents of anyB memory location or register that is accessible in your program.D For high-level languages the command is used mostly to change theD value of a variable ( an integer, real, string, array, record, and so on).> The DEPOSIT command is like an assignment statement in mostB programming languages. The value of the expression specified toC the right of the equal sign is assigned to the variable or other@ location specified to the left of the equal sign. For Ada andA Pascal, you can use ":=" instead of "=" in the command syntax.B The debugger recognizes the compiler-generated types associated@ with symbolic address expressions (sy mbolic names declared inD your program). Symbolic address expressions include the following entities:A o Variable names. When specifying a variable with the DEPOSITC command, use the same syntax that is used in the source code.D o Routine names, labels, and line numbers. On VAX systems, theseD are associated with instructions. You can deposit instructionsA using basically the same techniques as when depositing intoC string variables. However, you must also  use the /INSTRUCTION< qualifier or first enter a SET TYPE INSTRUCTION or SET( TYPE/OVERRIDE INSTRUCTION command.C In general, when you enter a DEPOSIT command, the debugger takes the following actions:B o It evaluates the address expression specified to the left of2 the equal sign, to yield a program location.? o If the program location has a symbolic name, the debuggerB associates the location with the symbol's compiler-generated? type. If the l ocation does not have a symbolic name (and,D therefore, no associated compiler-generated type) the debugger? associates the location with the type longword integer byC default. This means that, by default, you can deposit integer= values that do not exceed 4 bytes into these locations.D o It evaluates the language expression specified to the right ofB the equal sign, in the syntax of the current language and inB the current radix, to yield a value. The cur rent language isB the language last established with the SET LANGUAGE command.B By default, if you did not enter a SET LANGUAGE command, theC current language is the language of the module containing the main program.B o It checks that the value and type of the language expression? is consistent with the type of the address expression. IfC you try to deposit a value that is incompatible with the typeA of the address expression, the debugger issues a  diagnosticD message. If the value is compatible, the debugger deposits the@ value into the location denoted by the address expression. 3 Description,_Continued...C The debugger might do type conversion during a deposit operation< if the language rules allow it. For example, a real valueA specified to the right of the equal sign might be converted toA an integer value if it is being deposited into a location with@ an integer type. In general, the debugger tries  to follow the- assignment rules for the current language.@ There are several ways of changing the type associated with aD program location so that you can deposit data of a different type into that location:C o To change the default type for all locations that do not haveC a symbolic name, you can specify a new type with the SET TYPE command.C o To change the default type for all locations (both those that@ do and do not have a symbolic name), you can  specify a new. type with the SET TYPE/OVERRIDE command.A o To override the type currently associated with a particular@ location for the duration of a single DEPOSIT command, youC can specify a new type by using a qualifier (/ASCII:n, /BYTE, /TYPE=(name), and so on).@ When debugging a C program, or a program in any case-specific@ language, you cannot use the DEPOSIT/TYPE command if the typeC specified is a mixed or lowercase name. For example, suppose the- program has a function like the following: xyzzy_type foo () { xyzzy_type z; z = get_z (); return (z); }C If you try to enter the following command, the debugger issues a5 message that it cannot find the type "xyzzy_type":. DBG> DEPOSIT/TYPE=(xyzzy_type) z="whatever"A The debugger can interpret and display integer data in any one@ of four radixes: binary, decimal, hexadecimal, and octal. TheD default radix for both data entry and display is decimal for most languages.B On VAX processors, the exceptions are BLISS and MACRO-32, which@ have a default radix of hexadecimal. On Alpha processors, the= exceptions are BLISS, MACRO-32, and MACRO-64, which have a default radix of hexadecimal.? You can use the SET RADIX and SET RADIX/OVERRIDE commands to change the default radix.? The DEPOSIT command sets the current entity built-in symbolsA %CURLOC and period (.) to the location denoted by the address>  expression specified. Logical predecessors (%PREVLOC or theA circumflex character (^)) and successors (%NEXTLOC) are based& on the value of the current entity. Related commands: CANCEL TYPE/OVERRIDE EVALUATE EXAMINE MONITOR (SET,SHOW,CANCEL) RADIX (SET,SHOW) TYPE 3 Examples 1.DBG> DEPOSIT I = 7C This command deposits the value 7 into the integer variable I./ 2.DBG> DEPOSIT WIDTH = CURRENT_WIDTH + 24.80D  This command deposits the value of the expression CURRENT_WIDTH* + 24.80 into the real variable WIDTH. 3.DBG> DEPOSIT STATUS = FALSED This command deposits the value FALSE into the Boolean variable STATUS.. 4.DBG> DEPOSIT PART_NUMBER = "WG-7619.3-84"B This command deposits the string WG-7619.3-84 into the string variable PART_NUMBER.* 5.DBG> DEPOSIT EMPLOYEE.ZIPCODE = 02172D This command deposits the value 02172 into component ZIPCODE of record EMPLOYEE. 6.DBG> DEPOSIT ARR(8) = 35 DBG> DEPOSIT ^ = 14B In this example, the first DEPOSIT command deposits the valueC 35 into element 8 of array ARR. As a result, element 8 becomesA the current entity. The second command deposits the value 14A into the logical predecessor of element 8, namely element 7.0 7.DBG> FOR I = 1 TO 4 DO (DEPOSIT ARR(I) = 0)D This command deposits the value 0 into elements 1 to 4 of array ARR. 8.DBG> DEPOSI T COLOR = 3< %DEBUG-E-OPTNOTALLOW, operator "DEPOSIT" not allowed on given data type@ The debugger alerts you when you try to deposit data of theD wrong type into a variable (in this case, if you try to deposit> an integer value into an enumerated type variable). The EB (error) message severity indicates that the debugger does not make the assignment. 9.DBG> DEPOSIT VOLUME = - 100: %DEBUG-I-IVALOUTBNDS, value assigned is out of bounds  at or near '-'? The debugger alerts you when you try to deposit an out-of-B bounds value into a variable (in this case a negative value).> The I (informational) message severity indicates that the' debugger does make the assignment.3 10DBG> DEPOSIT/OCTAWORD BIGINT = 111222333444555> This command deposits the expression 111222333444555 into< location BIGINT and converts it to an octaword integer./ 11DBG> DEPOSIT/FLOAT BIGFLT = 1.11949*10**35? This command converts 1.11949*10**35 to an F_floating type0 value and deposits it into location BIGFLT. 2 DISABLE 3 ASTD Disables the delivery of asynchronous system traps (ASTs) in your program. Format DISABLE AST 4 Description@ The DISABLE AST command disables the delivery of ASTs in yourC program and thereby prevents interrupts from occurring while theB program is running. If ASTs are delivered while the debugger isD running (processing commands, and so on), they are queued and are5 delivered when control is returned to the program.C The ENABLE AST command reenables the delivery of ASTs, including3 any pending ASTs (ASTs waiting to be delivered).& NOTEA Any call by your program to the $SETAST system service that< enables ASTs overrides a previous DISABLE AST command. Related commands: (ENABLE,SHOW) AST 4 Example DBG> DISABLE AST DBG> SHOW AST ASTs are disabled DBG>B The DISABLE AST command disables the delivery of ASTs in your3 program, as confirmed by the SHOW AST command. 2 DISCONNECTC Releases a process from debugger control without terminating the process (kept debugger only). Format DISCONNECT process-spec 3 Parameters process-specC Specifies a process currently under debugger control. Use any of the following forms:D [%PROCESS_NAME] process- The  process name, if that name does notD name contain spaces or lowercase characters.= The process name can include the> asterisk (*) wildcard character.D [%PROCESS_NAME] The process name, if that name contains@ "process-name" spaces or lowercase characters. YouD can also use apostrophes (') instead of1 quotation marks (").; %PROCESS_ PID process_id The process identifier (PID, a1 hexadecimal number).B [%PROCESS_NUMBER] The number assigned to a process when? process-number it comes under debugger control. AA (or %PROC process- new number is assigned sequentially,A number) starting with 1, to each process. IfB a process is terminated with the EXIT? or QUIT command, the number can be@ assigned again during the debuggingA session. Process numbers appear in a@ SHOW PROCESS display. Processes areC ordered in a circular list so they canA be indexed with the built-in symbolsA %PREVIOUS_PROCESS and %NEXT_PROCESS.6 process-set-name A symbol defined with theD DEFINE/PROCESS_ SET command to represent2 a group of processes.? %NEXT_PROCESS The next process after the visible? process in the debugger's circular* process list.@ %PREVIOUS_PROCESS The process previous to the visible? process in the debugger's circular* process list.C %VISIBLE_PROCESS The process whose stack, register set,C  and images are the current context forA looking up symbols, register values,C routine calls, breakpoints, and so on. 3 DescriptionD (Kept debugger only.) The DISCONNECT command releases a specifiedA process from debugger control without terminating the process.= This is useful if, for example, you have brought a runningD program under debugger control with a CONNECT command and you nowB want to release it without terminating the image. (In contrast,@ when you specify a process with the EXIT or QUIT command, the process is terminated.)' CAUTION? The debugger kernel runs in the same process as the imageB being debugged. If you issue the DISCONNECT command for this? process, you release your process, but the kernel remains activated.@ This activation continues until the program image finishes running.?  If you install a new version of the debugger while one orB more disconnected but activated kernels inhabit user programB space, you can experience problems with debugger behavior if3 you try to reconnect to one of those kernels. Related commands: EXIT QUIT CONNECT 3 Example DBG> DISCONNECT JONES> This command releases process JONES from debugger control% without terminating the process. 2 DISPLAY@ Creates a new screen display or modifies an existing display.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. FormatE DISPLAY display-name [AT window-spec] [display-kind] [, . . . ] 3 Parameters display-name3 Specifies the display to be created or modified.@ If you are creating a new display, specify a name that is not" already used as a display name.C If you are modifying an existing display, you can specify any of the following entities: o A predefined display: SRC OUT PROMPT INST REG FREG (Alpha only) IREG; o A display previously created with the DISPLAY command o A display built-in symbol: %CURDISP %CURSCROLL %NEXTDISP %NEXTINST %NEXTOUTPUT %NEXTSCROLL %NEXTSOURCEA You must specify a display unless you use /GENERATE (parameter2 optional), or /REFRESH (parameter not allowed).? You can specify more than one display, each with an optional) window specification and display kind. window-spec< Specifies the screen window at which the display is to be= positioned. You can specify any of the following entities:= o A predefined window. For example, RH1 (right top half).D o A window definition previously established with the SET WINDOW command.B o A window specification of the form (start-line, line-count[,A start-column, column-count]). The specification can includeB expressions which can be based on the built-in symbols %PAGE) and %WIDTH (for example, %WIDTH/4).D If you omit the window specification, the screen position depends= on whether you are specifying an existing display or a new display:D o If you are specifying an existing display, the position of the display is not changed.> o If you are specifying a new display, it is positioned atB window H1 or H2, alternating between H1 and H2 each time you create another display. display-kind= Specifies the display kind. Valid keywords are as follows:@ DO Specifies an automatically updated output@ (command[; . . . ]) display. The commands are executed in the@ order listed each time the debugger gainsB control. Th eir output forms the contents of@ the display. If you specify more than oneA command, the commands must be separated by" semicolons.D INSTRUCTION Specifies an instruction display. If selectedB as the current instruction display with theB SELECT/INSTRUCTION command, it displays theA output from subsequent EXAMINE/INSTRUCTION comma nds.D INSTRUCTION (VAX only) Specifies an automatically updatedA (command) instruction display. The command specifiedB must be an EXAMINE/INSTRUCTION command. TheC instruction display is updated each time the. debugger gains control.? OUTPUT Specifies an output display. If selected= as the current output display with the= SELECT/OUTPUT command, it displays any> debugger output that is not directed toB another display. If selected as the currentC input display with the SELECT/INPUT command,C it echoes debugger input. If selected as theB current error display with the SELECT/ERROR? command, it displays debugger diagnostic messages.B REGISTER Specifies an automaticall y updated registerD display. The display is updated each time the. debugger gains control.> SOURCE Specifies a source display. If selected= as the current source display with the= SELECT/SOURCE command, it displays theD output from subsequent TYPE or EXAMINE/SOURCE commands.@ SOURCE (command) Specifies an automatically updated source?  display. The command specified must be aA TYPE or EXAMINE/SOURCE command. The source@ display is updated each time the debugger% gains control.< You cannot change the display kind of the PROMPT display.C If you omit the display-kind parameter, the display kind depends= on whether you are specifying an existing display or a new display:A o If you specify an existing display, the display kind is not changed.A o If you specify a new display, an OUTPUT display is created. 3 Qualifiers /CLEAR@ Erases the entire contents of a specified display. Do not use@ this qualifier with /GENERATE or when creating a new display. /DYNAMIC /DYNAMIC (default) /NODYNAMIC> Controls whether a display automatically adjusts its window? dimensions proportionally when the screen height or width is@ changed by a SET TERMINAL command. By def ault (/DYNAMIC), all? user-defined and predefined displays adjust their dimensions automatically. /GENERATE8 Regenerates the contents of a specified display. OnlyB automatically generated displays are regenerated. These includeB DO displays, register displays, source (cmd-list) displays, and> instruction (cmd-list) displays. The debugger automaticallyA regenerates all these kinds of displays before each prompt. IfC you do not specify a display, it regenerates the  contents of allC automatically generated displays. Do not use this qualifier with) /CLEAR or when creating a new display. /HIDE: Places a specified display at the bottom of the display? pasteboard (same as /PUSH). This hides the specified display> behind any other displays that share the same region of the. screen. You cannot hide the PROMPT display. /MARK_CHANGE /MARK_CHANGE /NOMARK_CHANGE (default)C Controls whether the lines that change in  a DO display each timeB it is automatically updated are marked. Not applicable to other kinds of displays.> When you use /MARK_CHANGE, any lines in which some contents? have changed since the last time the display was updated are? highlighted in reverse video. This qualifier is particularlyA useful when you want any variables in an automatically updated. display to be highlighted when they change.B The /NOMARK_CHANGE qualifier (default) specifies that any linesB t hat change in DO displays are not to be marked. This qualifierA cancels the effect of a previous /MARK_CHANGE on the specified display. /POP /POP (default) /NOPOPC Controls whether a specified display is placed at the top of theA display pasteboard, ahead of any other displays but behind theB PROMPT display. By default (/POP), the display is placed at theD top of the pasteboard and hides any other displays that share the8 same region of the screen, ex cept the PROMPT display.B The /NOPOP qualifier preserves the order of all displays on the pasteboard (same as /NOPUSH). /PROCESS /PROCESS[=(process-spec)] /NOPROCESS (default)@ Used only when debugging multiprocess programs (kept debuggerD only). Controls whether the specified display is process specificD (that is, whether the specified display is associated only with aB particular process). The contents of a process-specific displayA are generated and  modified in the context of that process. YouD can make any display process specific, except the PROMPT display.= The /PROCESS=(process-spec) qualifier causes the specified@ display to be associated with the specified process. You mustA include the parentheses. Use any of the following process-spec forms:D [%PROCESS_NAME] process- The process name, if that name does notD name contain spaces or lowercase characters.= The p rocess name can include the> asterisk (*) wildcard character.D [%PROCESS_NAME] The process name, if that name contains@ "process-name" spaces or lowercase characters. YouD can also use apostrophes (') instead of1 quotation marks (").; %PROCESS_PID process_id The process identifier (PID, a1 hexadecimal number).B [%PROCESS_NUMBER] The number assigned to a process when? process-number it comes under debugger control. AA (or %PROC process- new number is assigned sequentially,A number) starting with 1, to each process. IfB a process is terminated with the EXIT? or QUIT command, the number can be@ assigned again during the debuggingA session. Process numbers appear in a@  SHOW PROCESS display. Processes areC ordered in a circular list so they canA be indexed with the built-in symbolsA %PREVIOUS_PROCESS and %NEXT_PROCESS.6 process-set-name A symbol defined with theD DEFINE/PROCESS_SET command to represent2 a group of processes.? %NEXT_PROCESS The next process after the visible ? process in the debugger's circular* process list.@ %PREVIOUS_PROCESS The process previous to the visible? process in the debugger's circular* process list.C %VISIBLE_PROCESS The process whose stack, register set,C and images are the current context forA looking up symbols, register values,C  routine calls, breakpoints, and so on.< The /PROCESS qualifier causes the specified display to be@ associated with the process that was the visible process when, the DISPLAY/PROCESS command was executed.= The /NOPROCESS qualifier (which is the default) causes the? specified display to be associated with the visible process,/ which might change during program execution.? If you do not specify /PROCESS, the current process-specific@ behavior (if any) of the specified display remains unchanged. /PUSH /PUSH /NOPUSH@ The /PUSH qualifier has the same effect as /HIDE. The /NOPUSHB qualifier preserves the order of all displays on the pasteboard (same as /NOPOP). /REFRESH< Refreshes the terminal screen. Do not specify any command= parameters with this qualifier. You can also use Ctrl/W to refresh the screen. /REMOVEB Marks the display as being removed from the display pasteboard,A  so it is not shown on the screen unless you explicitly requestA it with another DISPLAY command. Although a removed display isB not visible on the screen, it still exists and its contents are3 preserved. You cannot remove the PROMPT display. /SIZE /SIZE:n@ Sets the maximum size of a display to n lines. If more than nA lines are written to the display, the oldest lines are lost asC the new lines are added. If you omit this qualifier, the maximum% size of t he display is as follows:= o If you specify an existing display, the maximum size is unchanged.B o If you are creating a display, the default size is 64 lines.B For an output or DO display, /SIZE:n specifies that the displayA should hold the n most recent lines of output. For a source orC instruction display, n gives the number of source lines or linesA of instructions that can be placed in the memory buffer at any> one time. However, you can scroll a source di splay over theC entire source code of the module whose code is displayed (sourceA lines are paged into the buffer as needed). Similarly, you can@ scroll an instruction display over all of the instructions ofA the routine whose instructions are displayed (instructions are% decoded from the image as needed). 3 DescriptionC You can use the DISPLAY command to create a display or to modify an existing display.B To create a display, specify a name that is not already  used asC a display name (the SHOW DISPLAY command identifies all existing displays).@ By default, the DISPLAY command places a specified display onA top of the display pasteboard, ahead of any other displays butC behind the PROMPT display, which cannot be hidden. The specified@ display thus hides the portions of other displays (except the< PROMPT display) that share the same region of the screen.@ For a list of the key definitions associated with the DISPLAYC command, type Help Keypad_Definitions_CI. Also, use the SHOW KEY4 command to determine the current key definitions. Related commands: Ctrl/W EXPAND MOVE SET PROMPT (SET,SHOW) TERMINAL (SET,SHOW,CANCEL) WINDOW SELECT (SHOW,CANCEL) DISPLAY 3 Examples 1.DBG> DISPLAY REGD This command shows the predefined register display, REG, at its current window location. 2.DBG> DISPLAY/PUSH INSTB This command pushes display INST to the bottom of the display+ pasteboard, behind all other displays. 3.DBG> DISPLAY NEWDISP AT RT2 DBG> SELECT/INPUT NEWDISP@ In this example, the DISPLAY command shows the user-definedA display NEWDISP at the right middle third of the screen. The> SELECT/INPUT command selects NEWDISP as the current input0 display. NEWDISP now echoes debugger input. 4.DBG> DISPLAY DISP2 AT RS45 DBG> SELECT/OUTPUT DISP2A In this example, the DISPLAY command creates a display namedD DISP2 essentially at the right bottom half of the screen, aboveB the PROMPT display, which is located at S6. This is an output? display by default. The SELECT/OUTPUT command then selects) DISP2 as the current output display.' 5.DBG> SET WINDOW TOP AT (1,8,45,30), DBG> DISPLAY NEWINST AT TOP INSTRUCTION DBG> SELECT/INST NEWINSTC In this example, the SET WINDOW command creates a window namedA TOP starting at line 1 and column 45, and extending down forA 8 lines and to the right for 30 columns. The DISPLAY commandA creates an instruction display named NEWINST to be displayed@ through TOP. The SELECT/INST command selects NEWINST as the! current instruction display.- 6.DBG> DISPLAY CALLS AT Q3 DO (SHOW CALLS)@ This command creates a DO display named CALLS at window Q3.? Each time the debugger gains control from the program, theB SHOW CALLS command is executed and the output is displayed in4 display CALLS, replacing any previous contents.4 7.DBG> DISPLAY/MARK EXAM AT Q2 DO (EXAMINE A,B,C)? This command creates a DO display named EXAM at window Q2.B The display shows the current values of variables A, B, and CD whenever the debugger prompts for input. Any changed values are highlighted.% 8.all> DISPLAY/PROCESS OUT_X AT S4= This command makes display OUT_X specific to the visible; process (process 3) and$ puts the display at window S4. 2 DUMP# Displays the contents of memory. Format5 DUMP address-expression1 [:address-expression2] 3 Parameters address-expression17 Specifies the first memory location to be displayed. address-expression2A Specifies the last memory location to be displayed (default is address-expression1). 3 Qualifiers /BINARY5 Displays each examined entity as a binary integer. /BYTEC Displays each examined entity as a byte integer (length 1 byte). /DECIMAL6 Displays each examined entity as a decimal integer. /HEXADECIMAL: Displays each examined entity as a hexadecimal integer. /LONGWORD /LONGWORD (default)= Displays each examined entity in the longword integer typeC (length 4 bytes). This is the default type for program locations. that do not have a compiler-generated type. /OCTAL5 Displays each examined entity as an octal integer. /QUADWORD= Displays each examined entity in the quadword integer type (length 8 bytes). /WORDC Displays each examined entity in the word integer type (length 2 bytes). 3 Description> The DUMP command displays the contents of memory, includingA registers, variables, and arrays. The DUMP command formats itsC output in a manner similar to the DCL command DUMP. The debugger> DUMP command makes no attempt to interpret the stru cture of aggregates.D In general, when you enter a DUMP command, the debugger evaluates@ address-expression1 to yield a program location. The debugger? then displays the entity stored at that location as follows:C o If the entity has a symbolic name, the debugger uses the size> of the entity to determine the address range to display.B o If the entity does not have a symbolic name (and, therefore,9 no associated compiler-generated type) the debuggerB disp !lays address-expression1 through address-expression2 (if specified).B In either case, the DUMP command displays the contents of theseC locations as longword (by default) integer values in the current radix.? The default radix for display is decimal for most languages.B On VAX processors, the exceptions are BLISS and MACRO-32, which@ have a default radix of hexadecimal. On Alpha processors, the= exceptions are BLISS, MACRO-32, and MACRO-64, which have a default " radix of hexadecimal.; Use one of the four radix qualifiers (/BINARY, /DECIMAL,B /HEXADECIMAL, /OCTAL) to display data in another radix. You canC also use the SET RADIX and SET RADIX/OVERRIDE commands to change the default radix.; Use one of the size qualifiers (/BYTE, /WORD, /LONGWORD,2 /QUADWORD) to change the format of the display.D The DUMP command sets the current entity built-in symbols %CURLOCC and period (.) to the location denoted by the address expression#> specified. Logical predecessors (%PREVLOC or the circumflexB character (^)) and successors (%NEXTLOC) are based on the value of the current entity. Related command: EXAMINE 3 Examples 1.DBG> DUMP/QUAD R16:R25= 0000000000000078 0000000000030038 8.......x....... %R16= 000000202020786B 0000000000030041 A.......kx ... %R18= 0000000000030140 0000000000007800 .x......@....... %R20= 0000000000010038 0000000000000007 ........8.......$ %R22= 0000000000000006 0000000000000000 ................ %R24 DBG>? This command displays general registers R16 through R25 in+ quadword format and hexadecimal radix.' 2.DBG> DUMP/BYTE/DECIMAL 30000:30040G 0 0 0 0 0 3 0 -80 ....... 0000000000030000G 0 0 0 0 0 3 1 64 @....... 0000000000030008G 0 0 0 0 0 3 0 48 0....... 0000000000030010G 0 0 0 0 0 3 % 0 56 8....... 0000000000030018G 0 0 0 0 0 3 0 -64 ....... 0000000000030020G 0 0 0 0 0 3 0 -80 ....... 0000000000030028G 0 0 0 0 0 0 7 -50 ....... 0000000000030030G 101 101 119 32 116 120 101 110 next wee 0000000000030038G 107 k 0000000000030040 DBG>@ This command displays locations 30000 through 30040 in byte format and deci&mal radix. 2 EDIT@ Starts the editor established with the SET EDITOR command. IfC you did not enter a SET EDITOR command, starts the DEC Language-A Sensitive Editor (LSEDIT), if that editor is installed on your system. Format' EDIT [[module-name\] line-number] 3 Parameters module-name> Specifies the name of the module whose source file is to be@ edited. If you specify a module name, you must also specify aA line number. If you omit th 'e module name parameter, the sourceB file whose code appears in the current source display is chosen for editing. line-numberA A positive integer that specifies the source line on which theC editor's cursor is initially placed. If you omit this parameter,D the cursor is initially positioned at the beginning of the sourceB line that is centered in the debugger's current source display,C or at the beginning of line 1 if the editor was set to /NOSTART_) POSITION (s(ee the SET EDITOR command.) 3 Qualifiers /EXIT /EXIT /NOEXIT (default)C Controls whether you end the debugging session prior to starting= the editor. If you specify /EXIT, the debugging session is< terminated and the editor is then started. If you specifyA /NOEXIT, the editing session is started and you return to your; debugging session after terminating the editing session. 3 DescriptionC If you have not specified an editor with the )SET EDITOR command,< the EDIT command starts the DEC Language-Sensitive EditorC (LSEDIT) in a spawned subprocess (if LSEDIT is installed on your@ system). The typical (default) way to use the EDIT command isB not to specify any parameters. In this case, the editing cursor? is initially positioned at the beginning of the line that isB centered in the currently selected debugger source display (the current source display).A The SET EDITOR command provides options for start*ing differentC editors, either in a subprocess or through a callable interface. Related commands: (SET,SHOW) EDITOR (SET,SHOW,CANCEL) SOURCE 3 Examples 1.DBG> EDITC This command spawns the DEC Language-Sensitive Editor (LSEDIT)B in a subprocess to edit the source file whose code appears inA the current source display. The editing cursor is positionedA at the beginning of the line that was centered in the source display. 2+.DBG> EDIT SWAP\12C This command spawns the DEC Language-Sensitive Editor (LSEDIT)B in a subprocess to edit the source file containing the module? SWAP. The editing cursor is positioned at the beginning of source line 12.! 3.DBG> SET EDITOR/CALLABLE_EDT DBG> EDIT9 In this example, the SET EDITOR/CALLABLE_EDT command> establishes that EDT is the default editor and is started= through its callable interface (rather than spawned in a@ subproces,s). The EDIT command starts EDT to edit the source? file whose code appears in the current source display. TheD editing cursor is positioned at the beginning of source line 1,D because the default qualifier /NOSTART_POSITION applies to EDT. 2 ENABLE 3 ASTC Enables the delivery of asynchronous system traps (ASTs) in your program. Format ENABLE AST 4 DescriptionA The ENABLE AST command enables the delivery of ASTs while your? progr -am is running, including any pending ASTs (ASTs waiting@ to be delivered). If ASTs are delivered while the debugger isD running (processing commands, and so on), they are queued and areA delivered when control is returned to the program. Delivery of8 ASTs in your program is initially enabled by default.& NOTEA Any call by your program to the $SETAST system service that< disables ASTs overrides a previous ENABLE AST command. Related. commands: (DISABLE,SHOW) AST 4 Example DBG> ENABLE AST DBG> SHOW AST ASTs are enabled DBG>@ The ENABLE AST command enables the delivery of ASTs in your5 program, as confirmed with the SHOW AST command. 2 EVALUATE= Displays the value of a language expression in the currentB language (by default, the language of the module containing the main program). Format, EVALUATE language-expression[, . . . ] 3 Parameters /language-expression: Specifies any valid expression in the current language. 3 Qualifiers /BINARY: Specifies that the result be displayed in binary radix. /CONDITION_VALUE> Specifies that the expression be interpreted as a conditionA value (the kind of condition value you would specify using theC condition-handling mechanism). The message text corresponding toC that condition value is then displayed. The specified value must be an integer value0. /DECIMAL; Specifies that the result be displayed in decimal radix. /HEXADECIMAL? Specifies that the result be displayed in hexadecimal radix. /OCTAL9 Specifies that the result be displayed in octal radix. 3 DescriptionB The debugger interprets the expression specified in an EVALUATEB command as a language expression, evaluates it in the syntax ofB the current language and in the current radix, and displays itsD value as a literal (for examp 1le, an integer value) in the current language.= The current language is the language last established with@ the SET LANGUAGE command. If you did not enter a SET LANGUAGED command, the current language is, by default, the language of the& module containing the main program.= If an expression contains symbols with different compiler-? generated types, the debugger uses the type-conversion rules6 of the current language to evaluate the expression.A The debugger can in 2terpret and display integer data in any one@ of four radixes: binary, decimal, hexadecimal, and octal. TheA current radix is the radix last established with the SET RADIX command.B If you did not enter a SET RADIX command, the default radix forD both data entry and display is decimal for most languages. On VAXB processors, the exceptions are BLISS and MACRO-32, which have aD default radix of hexadecimal. On Alpha processors, the exceptionsC are BLISS, MACRO-32, and MACRO- 364, which have a default radix of hexadecimal.@ You can use a radix qualifier (/BINARY, /OCTAL, and so on) toA display integer data in another radix. These qualifiers do not@ affect how the debugger interprets the data you specify; they> override the current output radix, but not the input radix.B The EVALUATE command sets the current value of built-in symbolsC %CURVAL and backslash (\) to the value denoted by the specified expression.< You cannot evaluate a lan 4guage expression that includes a< function call. For example, if PRODUCT is a function that? multiplies two integers, you cannot use the command EVALUATE; PRODUCT(3,5). If your program assigns the returned value= of a function to a variable, you can examine the resulting; value of that variable. On Alpha processors, the commandD EVALUATE procedure-name displays the procedure descriptor addressA (not the code address) of a specified routine, entry point, or Ada package.5D For more information about debugger support for language-specificA operators and constructs, see the Language_Support Help topic. Related commands: EVALUATE/ADDRESS MONITOR (SET,SHOW) LANGUAGE (SET,SHOW,CANCEL) RADIX (SET,SHOW) TYPE 3 Examples( 1.DBG> EVALUATE 100.34 * (14.2 + 7.9) 2217.514 DBG>B This command uses the debugger as a calculator by multiplying 100.34 by (14.2 + 7.9). 2.DBG> EVALUATE/OCT6AL X 00000001512 DBG>C This command evaluates the symbol X and displays the result in octal radix.& 3.DBG> EVALUATE TOTAL + CURR_AMOUNT 8247.20 DBG>= This command evaluates the sum of the values of two real& variables, TOTAL and CURR_AMOUNT. 4.DBG> DEPOSIT WILLING = TRUE DBG> DEPOSIT ABLE = FALSE# DBG> EVALUATE WILLING AND ABLE False DBG>@ In this example, the EVALUATE command evaluates the logicalD A7ND of the current values of two Boolean variables, WILLING and ABLE. 5.DBG> EVALUATE COLOR'FIRST RED DBG>B In this Ada example, this command evaluates the first element# of the enumeration type COLOR. 3 /ADDRESS? Evaluates an address expression and displays the result as a% memory address or a register name. Format3 EVALUATE/ADDRESS address-expression[, . . . ] 4 Parameters address-expressionD Specifies an addr8ess expression of any valid form (for example, a? routine name, variable name, label, line number, and so on). 4 Qualifiers /BINARY/ Displays the memory address in binary radix. /DECIMAL0 Displays the memory address in decimal radix. /HEXADECIMAL4 Displays the memory address in hexadecimal radix. /OCTAL. Displays the memory address in octal radix. 4 DescriptionC The EVALUATE/ADDRESS command enables you to determine the memory= 9 address or register associated with an address expression.A The debugger can interpret and display integer data in any one@ of four radixes: binary, decimal, hexadecimal, and octal. The? default radix for both data entry and display is decimal forB most languages. On VAX processors, the exceptions are BLISS and@ MACRO-32, which have a default radix of hexadecimal. On Alpha@ processors, the exceptions are BLISS, MACRO-32, and MACRO-64,- which have a default radix of hexadec :imal.@ You can use a radix qualifier (/BINARY, /OCTAL, and so on) toC display address values in another radix. These qualifiers do notD affect how the debugger interprets the data you specify; that is,C they override the current output radix, but not the input radix.? If the value of a variable is currently stored in a registerA instead of memory, the EVALUATE/ADDRESS command identifies the> register. The radix qualifiers have no effect in that case.@ The EVALUATE/AD ;DRESS command sets the current entity built-inA symbols %CURLOC and period (.) to the location denoted by the? address expression specified. Logical predecessors (%PREVLOCB or the circumflex character (^)) and successors (%NEXTLOC) are, based on the value of the current entity.C On Alpha processors, the command EVALUATE/ADDRESS procedure-nameC displays the procedure descriptor address (not the code address)7 of a specified routine, entry point, or Ada package. Relat<ed commands: EVALUATE (SET,SHOW,CANCEL) RADIX SHOW SYMBOL/ADDRESS SYMBOLIZE 4 Examples, 1.DBG> EVALUATE/ADDRESS MODNAME\%LINE 110 3942 DBG>D This command displays the memory address denoted by the address" expression MODNAME\%LINE 110.$ 2.DBG> EVALUATE/ADDRESS/HEX A,B,C 000004A4 000004AC 000004A0 DBG>> This command displays the memory addresses denoted by the: address expressions A, B,= and C in hexadecimal radix. 3.DBG> EVALUATE/ADDRESS X MOD3\%R1 DBG>> This command indicates that variable X is associated with7 register R1. X is a nonstatic (register) variable. 2 EXAMINE9 Displays the current value of a program variable. MoreD generally, displays the value of the entity denoted by an address expression. FormatB EXAMINE [address-expression[:address-expression] [, . . . ]] 3 Parameters address-expressi >onA Specifies an entity to be examined. With high-level languages,B this is typically the name of a variable and can include a pathD name to specify the variable uniquely. More generally, an address@ expression can also be a memory address or a register and canB be composed of numbers (offsets) and symbols, as well as one orA more operators, operands, or delimiters. For information aboutA the debugger symbols for the registers and about the operatorsD you can use in addres ?s expressions, type Help Built_in_Symbols or Help Address_Expressions.@ If you specify the name of an aggregate variable (a compositeD data structure such as an array or record structure) the debuggerA displays the values of all elements. For an array, the displayC shows the subscript (index) and value of each array element. For@ a record, the display shows the name and value of each record component.A To specify an individual array element, array slice, or record8 @ component, follow the syntax of the current language.? If you specify a range of entities, the value of the address= expression that denotes the first entity in the range must@ be less than the value of the address expression that denotesA the last entity in the range. The debugger displays the entityC specified by the first address expression, the logical successorA of that address expression, the next logical successor, and soA on, until it displays the entity specified Aby the last addressD expression. You can specify a list of ranges by separating ranges with a comma.: For information specific to vector registers and vectorD instructions, see /TMASK, /FMASK, /VMR, and /OPERANDS qualifiers. 3 Qualifiers /ASCIC /ASCIC /AC< Interprets each examined entity as a counted ASCII string@ preceded by a 1-byte count field that gives the length of the( string. The string is then displayed. /ASCID /ASCIDB /AD= Interprets each examined entity as the address of a string> descriptor pointing to an ASCII string. The CLASS and DTYPE? fields of the descriptor are not checked, but the LENGTH andA POINTER fields provide the character length and address of the. ASCII string. The string is then displayed. /ASCII /ASCII:nB Interprets and displays each examined entity as an ASCII string@ of length n bytes (n characters). If you omit n, the debugger> attempts Cto determine a length from the type of the address expression. /ASCIW /ASCIW /AW< Interprets each examined entity as a counted ASCII string@ preceded by a 2-byte count field that gives the length of the( string. The string is then displayed. /ASCIZ /ASCIZ /AZ= Interprets each examined entity as a zero-terminated ASCII@ string. The ending zero byte indicates the end of the string. The string is then displayed. /BINARYD5 Displays each examined entity as a binary integer. /BYTEC Displays each examined entity in the byte integer type (length 1 byte). /CONDITION_VALUE> Interprets each examined entity as a condition-value return> status and displays the message associated with that return status. /D_FLOATA Displays each examined entity in the D_floating type (length 8 bytes). /DATE_TIMEB Interprets each examined entity as a quadword integer (length 8EB bytes) containing the internal representation of date and time.< Displays the value in the format dd-mmm-yyyy hh:mm:ss.cc. /DECIMAL6 Displays each examined entity as a decimal integer. /DEFAULT6 Displays each examined entity in the default radix.% The minimum abbreviation is /DEFA. /DEFINITIONS /DEFINITIONS=nA (Alpha only) When the code is optimized, displays n definition; points for a split-lifetime variable. A definition point= is a Flocation in the program where the variable could haveC received its value. By default, up to five definition points areD displayed. If more than the given number of definitions (explicit; or default) are available, then the number of additionalC definitions is reported as well. (For more information on split-4 lifetime variables, see OpenVMS Debugger Manual.)% The minimum abbreviation is /DEFI. /EXTENDED_FLOAT /EXTENDED_FLOAT /X_FLOATD (Alpha onlyG) Displays each examined entity in the IEEE X_floating type (length 16 bytes). /FLOAT> On VAX processors, same as /F_FLOAT. Displays each examined2 entity in the F_floating type (length 4 bytes).? On Alpha processors, same as T_FLOAT. Displays each examinedA entity in the IEEE T_floating type (double precision, length 8 bytes). /F_FLOATB (VAX only) Displays each examined entity in the F_floating type (length 4 bytes). /FPCR@ (Alpha only) DiHsplays each examined entity in FPCR (floating-" point control register) format. /FMASK( /FMASK[=(mask-address-expression)]: Applies only to VAX vectorized programs. See the /TMASK qualifier. /G_FLOATA Displays each examined entity in the G_floating type (length 8 bytes). /H_FLOATB (VAX only) Displays each examined entity in the H_floating type (length 16 bytes). /HEXADECIMAL: Displays each examined entity as a hexadecimal integeIr. /INSTRUCTIOND Displays each examined entity as an assembly-language instructionD (variable length, depending on the number of instruction operandsA and the kind of addressing modes used). See also the /OPERANDS qualifier.B In screen mode, the output of an EXAMINE/INSTRUCTION command isA directed at the current instruction display, if any, not at anD output or DO display. The arrow in the instruction display points to the examined instruction.B On Alpha Jprocessors, the command EXAMINE/INSTRUCTION procedure-? name displays the first instruction at the code address of a2 specified routine, entry point, or Ada package. /LINE /LINE (default) /NOLINED Controls whether program locations are displayed in terms of lineA numbers (%LINE x) or as routine-name + byte-offset. By defaultA (/LINE), the debugger symbolizes program locations in terms of line numbers. /LONG_FLOAT /LONG_FLOAT /SK_FLOATD (Alpha only) Displays each examined entity in the IEEE S_floating+ type (single precision, length 4 bytes). /LONG_LONG_FLOAT /LONG_LONG_FLOAT /T_FLOATD (Alpha only) Displays each examined entity in the IEEE T_floating+ type (double precision, length 8 bytes). /LONGWORD= Displays each examined entity in the longword integer typeC (length 4 bytes). This is the default type for program locations. that do not have a compiler-generated tLype. /OCTAL5 Displays each examined entity as an octal integer. /OCTAWORD= Displays each examined entity in the octaword integer type (length 16 bytes). /OPERANDS /OPERANDS[=keyword]= (VAX only) Displays operand information associated with an@ examined instruction (displays each operand's address and its? contents, using the operand's data type). The keywords BRIEF> and FULL vary the amount of information displayed about any8 nonregi Mster operands. The default is /OPERANDS=BRIEF.C Use /OPERANDS only when examining the instruction at the currentA PC value (for example, EXAMINE/OPERANDS .0\%PC). Examining theA operands of an instruction that is not at the current PC valueD can give erroneous results, because the state of the machine (theA contents of the registers) is not set up for that instruction.A In screen mode, operand information is directed at the current output display.= When you examine Nthe operands of a vector instruction, any= operand-element masking that might be associated with that= instruction is performed by default. The /TMASK and /FMASK@ qualifiers enable you to specify some other mask. The current? value of the vector length register (VLR) limits the highest5 element of a vector register that you can examine.A See also the SET MODE [NO]OPERANDS=keyword command, which lets@ you set a default level for the amount of operand information) displayOed when examining instructions. /PACKED /PACKED:nB Interprets each examined entity as a packed decimal number. TheB value of n is the number of decimal digits. Each digit occupies one nibble (4 bits). /PS> (Alpha only) Displays each examined entity in PS (processor status register) format. /PSLD (VAX only) Displays each examined entity in PSL (processor status longword) format. /PSWD (VAX only) Displays each examined entity Pin PSW (processor statusA word) format. The /PSW qualifier is like /PSL except that only- the low-order word (2 bytes) is displayed. /QUADWORD= Displays each examined entity in the quadword integer type (length 8 bytes). /S_FLOATD (Alpha only) Displays each examined entity in the IEEE S_floating+ type (single precision, length 4 bytes). /SFPCR@ (Alpha only) Displays each examined entity in SFPCR (software+ floating-point control register) formatQ. /SOURCE& NOTE> This qualifier is not available in the Compaq DECwindows7 Motif for OpenVMS user interface to the debugger.A Displays the source line corresponding to the location of eachA examined entity. The examined entity must be associated with aD machine code instruction and, therefore, must be a line number, aB label, a routine name, or the memory address of an instruction.= The examined entity cannot be a variabl Re name or any other3 address expression that is associated with data.= In screen mode, the output of an EXAMINE/SOURCE command isC directed at the current source display, if any, not at an output? or DO display. The arrow in the source display points to the@ source line associated with the last entity specified (or the- last one specified in a list of entities).A On Alpha processors, the command EXAMINE/SOURCE procedure-name> displays the source code at the code addrSess of a specified( routine, entry point, or Ada package. /SYMBOLIC /SYMBOLIC (default) /NOSYMBOLICA Controls whether symbolization occurs. By default (/SYMBOLIC),B the debugger symbolizes all addresses, if possible; that is, itA converts numeric addresses into their symbolic representation.D If you specify /NOSYMBOLIC, the debugger suppresses symbolization@ of entities you specify as absolute addresses. If you specify> entities as variable names, sym Tbolization still occurs. The; /NOSYMBOLIC qualifier is useful if you are interested inA identifying numeric addresses rather than their symbolic namesC (if symbolic names exist for those addresses). Using /NOSYMBOLIC@ may speed up command processing because the debugger does not$ need to convert numbers to names. /TASK= Applies to tasking (multithread) programs. Interprets eachB examined entity as a task (thread) object and displays the taskD value (the name or taUsk ID) of that task object. When examining aC task object, use /TASK only if the programming language does not" have built-in tasking services. /T_FLOATD (Alpha only) Displays each examined entity in the IEEE T_floating+ type (double precision, length 8 bytes). /TMASK( /TMASK[=(mask-address-expression)]( /FMASK[=(mask-address-expression)]? These qualifiers apply only to VAX vectorized programs. TheyD enable you to specify a mask in order to display Vcertain elementsD of a vector register (V0 to V15), or of an array in memory, while! not displaying other elements.9 For example, when you examine the operands of a vectorC instruction (by using the /OPERANDS qualifier), these qualifiersC enable you to override any operand-element masking that might be$ associated with that instruction.? The /TMASK qualifier applies the EXAMINE command only to the? elements of the register or array that correspond to the setD bits W(bit value: 1) of the mask. The /FMASK qualifier applies theD EXAMINE command only to the elements that correspond to the clearC bits (bit value: 0) of the mask. The current value of the vectorA length register (VLR) limits the highest register element that5 you can examine but not the highest array element.C By default, if you do not specify a mask address expression withA /TMASK or /FMASK, the vector mask register (VMR) is used. ThatA is, the EXAMINE command is applied on Xly to the elements of theC vector register or array that correspond to the set bits (in the@ case of /TMASK) or clear bits (in the case of /FMASK) of VMR.B If you specify a mask address expression with /TMASK or /FMASK,@ the value at that address is used as the mask, subject to the following conventions:= o You must use parentheses around the address expression.B o The number of mask elements limits the number of register or* array elements that you can examine. YA o If the mask address expression denotes a Boolean array, itsD values are used as the mask, in the same basic way that VMR is used in the default case.A o If the mask address expression denotes a non-Boolean array,C the least significant bit value of each array element is usedB as the mask for the corresponding element of the register or target array.C o If the mask address expression denotes a Boolean scalar type,@ its value is used as tZhe mask for the first element of the? register or target array. No other elements are examined.@ o If the mask address expression denotes any other type, itsC least significant bit value is used as the mask for the firstD element of the register or target array. No other elements are examined.? o For a multi-element mask, the lowest specified element of@ the mask is applied to the lowest specified element of the register or target array. /T[YPE /TYPE=(name)@ Interprets and displays each examined entity according to theB type specified by name (which must be the name of a variable orB data type declared in the program). This enables you to specifyA a user-declared type. You must use parentheses around the type expression. /VARIANT2 /VARIANT=variant-selector address-expression8 /VARIANT=(variant-selector,...) address-expression; Enables the debugger to display the correct item when it \# encounters an anonymous variant.A In a C program, a union contains members, only one of which isD valid at any one time. When displaying a union, the debugger does, not know which member is currently valid.= In a PASCAL program, a record with a variant part contains= variants, only one of which is valid at any one time. WhenC displaying a record with an anonymous variant part, the debuggerC does not know which variant is currently valid, and displays all variant]s by default.? You can use the /VARIANT qualifier of the EXAMINE command toC select which member of a union (C) or anonymous variant (PASCAL) to display. /VMRC (VAX only) Applies only to VAX vectorized programs. Displays the Vector Mask Register. /WCHAR_T /WCHAR_T[:n]C Interprets and displays each examined entity as a multibyte fileB code sequence of length n longwords (n characters). The default is 1 longword.D When converting the exa^mined string, the debugger uses the localeB database of the process in which the debugger runs. The default is C locale. /WORDC Displays each examined entity in the word integer type (length 2 bytes). /X_FLOATD (Alpha only) Displays each examined entity in the IEEE X_floating type (length 16 bytes). 3 DescriptionB The EXAMINE command displays the entity at the location denotedC by an address expression. You can use the command to display theA _ contents of any memory location or register that is accessibleA in your program. For high-level languages, the command is used@ mostly to obtain the current value of a variable (an integer,+ real, string, array, record, and so on).D If you are debugging optimized code on Alpha systems, the EXAMINEC command displays the definition points at which a split-lifetimeC variable could have received its value. Split-lifetime variables< are discussed in OpenVMS Debugger Manual. By `default, theB EXAMINE command displays up to five definition points. With theC /DEFINITIONS qualifier, you can specify the number of definition points.B The debugger recognizes the compiler-generated types associated@ with symbolic address expressions (symbolic names declared inD your program). Symbolic address expressions include the following entities:A o Variable names. When specifying a variable with the EXAMINEC command, use the same syntax that is used in t ahe source code.C o Routine names, labels, and line numbers. These are associatedD with instructions. You can examine instructions using the same- techniques as when examining variables.> In general, when you enter an EXAMINE command, the debugger@ evaluates the address expression specified to yield a program@ location. The debugger then displays the value stored at that location as follows:C o If the location has a symbolic name, the debugger formats theD b value according to the compiler-generated type associated withD that symbol (that is, as a variable of a particular type or as an instruction).D o If the location does not have a symbolic name (and, therefore,A no associated compiler-generated type) the debugger formatsC the value in the type longword integer by default. This meansD that, by default, the EXAMINE command displays the contents of: these locations as longword (4-byte) integer values.> c For information specific to vector registers (VAX only) and@ vector instructions (VAX only), see the /TMASK, /FMASK, /VMR, and /OPERANDS qualifiers. 3 Description,_Continued...> There are several ways of changing the type associated with> a program location so that you can display the data at that# location in another data format:C o To change the default type for all locations that do not haveC a symbolic name, you can specify a new type with the SET TYPE d command.C o To change the default type for all locations (both those that@ do and do not have a symbolic name), you can specify a new. type with the SET TYPE/OVERRIDE command.A o To override the type currently associated with a particularD location for the duration of a single EXAMINE command, you canD specify a new type by using a type qualifier (/ASCII:n, /BYTE,? /TYPE=(name), and so on). Most qualifiers for the EXAMINE" command are type qualifi eers.D The debugger can interpret and display integer data in any one of9 four radixes: binary, decimal, hexadecimal, and octal.C The default radix for both data entry and display is decimal forB most languages. On VAX processors, the exceptions are BLISS and@ MACRO-32, which have a default radix of hexadecimal. On Alpha@ processors, the exceptions are BLISS, MACRO-32, and MACRO-64,- which have a default radix of hexadecimal.D The EXAMINE command has four radix qualifie frs (/BINARY, /DECIMAL,C /HEXADECIMAL, /OCTAL) that enable you to display data in another? radix. You can also use the SET RADIX and SET RADIX/OVERRIDE( commands to change the default radix.D In addition to the type and radix qualifiers, the EXAMINE command% has qualifiers for other purposes:? o The /SOURCE qualifier enables you to identify the line of? source code corresponding to a line number, routine name,D label, or any other address expression that is assoc giated with& an instruction rather than data.> o The /[NO]LINE and /[NO]SYMBOLIC qualifiers enable you to7 control the symbolization of address expressions.? The EXAMINE command sets the current entity built-in symbolsA %CURLOC and period (.) to the location denoted by the address> expression specified. Logical predecessors (%PREVLOC or theA circumflex character (^)) and successors (%NEXTLOC) are based& on the value of the current entity.= The /VARIANT qual hifier enables the debugger to display the8 correct item when it encounters an anonymous variant.A In a C program, a union contains members, only one of which isD valid at any one time. When displaying a union, the debugger doesA not know which member is currently valid. In a PASCAL program,> a record with a variant part contains variants, only one ofC which is valid at any one time. When displaying a record with anC anonymous variant part, the debugger does not know which va iriant< is currently valid, and displays all variants by default.? You can use the /VARIANT qualifier of the EXAMINE command toB select which member of a union (C program) or anonymous variant9 (PASCAL program) to display. The format is as follows:= DBG> EXAMINE /VARIANT=variant-selector address-expressionD DBG> EXAMINE /VARIANT=(variant-selector,...) address-expression< The variant selector variant-selector specifies a name, aA discriminant (PASCAL only), or a pojsition; that is, one of the following: o NAME = name-string o DISCRIMINANT = expression o POSITION = expression> The /VARIANT qualifier takes a list of zero or more variant; selectors. /VARIANT without any variant selectors is theA default: the first variant of all anonymous variant lists will be displayed.7 Each variant selector specifies either the name, the@ discriminant, or the position of the variant to be displayed.5 The debugger uses t khe variant selector as follows:A 1. If the debugger encounters an anonymous variable list whileB displaying address-expression, the debugger uses the variant2 selector to choose which variant to display.B 2. Each time the debugger encounters an anonymous variant list,B it attempts to use the next variant selector to choose whichD variant to display. If the variant selector matches one of theA variants of the variant list (union), the debugger displays lthat variant.B 3. The debugger walks the structure top-to-bottom, depth first,7 so that children are encountered before siblings.C 4. If the debugger encounters an anonymous variant list and does@ not have a variant selector to match it with, the debugger! displays the first variant.C 5. If the variant selector does not match any of the variants ofD an anonymous variant list, the debugger displays a single lineD to indicate that. This is similar to wha mt the debugger does ifD the discriminant value fails to match any of the variants in a0 discriminated variant list. . For example:E [Variant Record omitted - null or illegal Tag Value: 3]C A name specifies a name string. A name matches a variant if that< variant contains a field with the name specified by name.> A discriminant specifies a language expression that must be> type compatible with the tag type of the variant part it is@ meant to match. The d niscriminant expression matches a variant? if it evaluates to a value in the variant's case-label list.A Discriminants apply only to Pascal programs, because C and C++$ unions do not have discriminants.? A positional-selector specifies a language expression, which? should evaluate to a integer between 1 and N, where N is theC number of variants in a variant list. A positional-selector thatD evaluates to I specifies that the Ith variant is to be displayed.< You can use aosterisk (*) as a wildcard, which matches all) variants of an anonymous variant list.; Each of these variant selectors can be used to match allC variants. In particular, each of the following variant selectorsD indicates that all of the variants of the first anonymous variant list are to be displayed. /VAR=D=* /VAR=N=* /VAR=P=*D The variant selectors can themselves contain a list of selectors.? For example, the following commands all mean the same thing. p+ EXAMINE /VARIANT=(DIS=3,DIS=1,DIS=54) x% EXAMINE /VARIANT=(DIS=(3,1,54)) x# EXAMINE /VARIANT=DIS=(3,1,54) xD You can specify a a single discriminant or position value without? parentheses if the value is a simple decimal integer. To use= a general expression to specify the value, you enclose the@ expression in parentheses. In the following list of commands,9 the first four are legal while the last three are not. EXAMINE /VARIANT=POS=39 EXAMINE /VARIANT=PqOS=(3) ! parentheses unnecessary9 EXAMINE /VARIANT=(POS=(3)) ! parentheses unnecessary9 EXAMINE /VARIANT=(POS=3) ! parentheses unnecessary7 EXAMINE /VARIANT=(POS=foo) ! parentheses necessary7 EXAMINE /VARIANT=POS=(foo) ! parentheses necessary7 EXAMINE /VARIANT=(POS=3-1) ! parentheses necessary Related Commands: CANCEL TYPE/OVERRIDE DEPOSIT DUMP EVALUATE SET MODE [NO]OPERANDS SET MODE [NO]SYMBOLIC (SET,SHOW,rCANCEL) RADIX (SET,SHOW) TYPE 3 Examples 1.DBG> EXAMINE COUNT SUB2\COUNT: 27 DBG>B This command displays the value of the integer variable COUNT in module SUB2. 2.DBG> EXAMINE PART_NUMBER+ INVENTORY\PART_NUMBER: "LP-3592.6-84" DBG>A This command displays the value of the string variable PART_ NUMBER. 3.DBG> EXAMINE SUB1\ARR3 SUB1\ARR3 (1,1): 27.01000 (1,2): 31.01000 s(1,3): 12.48000 (2,1): 15.08000 (2,2): 22.30000 (2,3): 18.73000 DBG>B This command displays the value of all elements in array ARR3D in module SUB1. ARR3 is a 2 by 3 element array of real numbers." 4.DBG> EXAMINE SUB1\ARR3(2,1:3) SUB1\ARR3 (2,1): 15.08000 (2,2): 22.30000 (2,3): 18.73000 DBG>B This command displays the value of the elements in a slice ofB array SUB1\tARR3. The slice includes "columns" 1 to 3 of "row" 2.& 5.DBG> EXAMINE VALVES.INTAKE.STATUS' MONITOR\VALVES.INTAKE.STATUS: OFF DBG>C This command displays the value of the nested record component, VALVES.INTAKE.STATUS in module MONITOR. 6.DBG> EXAMINE/SOURCE SWAP module MAIN4 47: procedure SWAP(X,Y: in out INTEGER) is DBG>C This command displays the source line in which routine SWAP is- declared (the location of routine SuWAP).1 7.DBG> EXAMINE /VARIANT=(NAME=m,DIS=4,POS=1) xA This command specifies that, for the first anonymous variantB list encountered, display the variant part containing a field> named "m", for the second anonymous variant list, display? the part with the discriminant value 4, and, for the third< anonymous variant list, display the first variant part. 2 EXITC Ends a debugging session, or terminates one or more processes ofA a multiprocess program, avllowing any application-declared exitC handlers to run. If used within a command procedure or DO clauseD and no process is specified, it exits the command procedure or DO clause at that point. Format# EXIT [process-spec[, . . . ]] 3 Parameters process-specC Specifies a process currently under debugger control. Use any of the following forms:D [%PROCESS_NAME] process- The process name, if that name does notD name conta win spaces or lowercase characters.= The process name can include the> asterisk (*) wildcard character.D [%PROCESS_NAME] The process name, if that name contains@ "process-name" spaces or lowercase characters. YouD can also use apostrophes (') instead of1 quotation marks (").; %PROCESS_PID process_id The process identifier (PID, a1 x hexadecimal number).B [%PROCESS_NUMBER] The number assigned to a process when? process-number it comes under debugger control. AA (or %PROC process- new number is assigned sequentially,A number) starting with 1, to each process. IfB a process is terminated with the EXIT? or QUIT command, the number can be@ assigned again during the debuggingA y session. Process numbers appear in a@ SHOW PROCESS display. Processes areC ordered in a circular list so they canA be indexed with the built-in symbolsA %PREVIOUS_PROCESS and %NEXT_PROCESS.6 process-set-name A symbol defined with theD DEFINE/PROCESS_SET command to represent2 a group of proces zses.? %NEXT_PROCESS The next process after the visible? process in the debugger's circular* process list.@ %PREVIOUS_PROCESS The process previous to the visible? process in the debugger's circular* process list.C %VISIBLE_PROCESS The process whose stack, register set,C and images are the current context forA { looking up symbols, register values,C routine calls, breakpoints, and so on.C You can also use the asterisk (*) wildcard character to specify all processes. 3 DescriptionD The EXIT command is one of the four debugger commands that can beD used to execute your program (the others are CALL, GO, and STEP). Ending a Debugging Session:< To end a debugging session, enter the EXIT command at theA debugger prompt wit |hout specifying any parameters. This causesA orderly termination of the session: the program's application-B declared exit handlers (if any) are executed, the debugger exitC handler is executed (closing log files, restoring the screen andD keypad states, and so on), and control is returned to the commandA interpreter. You cannot then continue to debug your program byC entering the DCL command DEBUG or CONTINUE (you must restart the debugger).D Because EXIT runs any app }lication-declared exit handlers, you canA set breakpoints in such exit handlers, and the breakpoints areC triggered upon typing EXIT. Thus, you can use EXIT to debug your exit handlers.> To end a debugging session without running any application-@ declared exit handlers, use the QUIT command instead of EXIT.? Using the EXIT Command in Command Procedures and DO Clauses:: When the debugger executes an EXIT command (without any= parameters) in a command procedure, contr ~ol returns to the? command stream that invoked the command procedure. A command< stream can be the terminal, an outer (containing) command; procedure, or a DO clause in a command or screen display@ definition. For example, if the command procedure was invokedD from within a DO clause, control returns to that DO clause, where? the debugger executes the next command (if any remain in the command sequence).: When the debugger executes an EXIT command (without any@ parameters) in a DO clause, it ignores any remaining commands* in that clause and displays its prompt. 3 Description,_Continued...# Terminating Specified Processes:> If you are debugging a multiprocess program you can use the? EXIT command to terminate specified processes without endingA the debugging session. The same techniques and behavior apply,D whether you enter the EXIT command at the prompt or use it within$ a command procedure or DO clause.> To terminate on e or more processes, enter the EXIT command,@ specifying these processes as parameters. This causes orderly> termination of the images in these processes, executing anyC application-declared exit handlers associated with these images.A Subsequently, the specified processes are no longer identifiedD in a SHOW PROCESS/ALL display. If any specified processes were onB hold as the result of a SET PROCESS command, the hold condition is ignored.> When the specified processes begi n to exit, any unspecified@ process that is not on hold begins execution. After executionC is started, the way in which it continues depends on whether youA entered a SET MODE [NO]INTERRUPT command. By default (SET MODE? INTERRUPT), execution continues until it is suspended in any@ process. At that point, execution is interrupted in any otherA processes that were executing images, and the debugger prompts for input.D To terminate specified processes without running any application-B declared exit handlers or otherwise starting execution, use the QUIT command instead of EXIT. Related commands: DISCONNECT @ (Execute Procedure) Ctrl/C Ctrl/Y Ctrl/Z QUIT RERUN RUN SET ABORT_KEY SET MODE [NO]INTERRUPT SET PROCESS 3 Examples 1.DBG> EXIT $C This command ends the debugging session and returns you to DCL level.. 2.all> EXIT %NEXT_PROCESS, JONES_3, %PROC 5 all>B This command causes orderly termination of three processes ofB a multiprocess program: the process after the visible processA on the process list, process JONES_3, and process 5. ControlC is returned to the debugger after the specified processes have exited. 2 EXITLOOP; Exits one or more enclosing FOR, REPEAT, or WHILE loops. Format EXITLOOP [integer] 3 Parameters integerA A decimal integer that specifies the number of nested loops to exit from. The default is 1. 3 Description> Use the EXITLOOP command to exit one or more enclosing FOR, REPEAT, or WHILE loops. Related commands: FOR REPEAT WHILE 3 Example2 DBG> WHILE 1 DO (STEP; IF X .GT. 3 THEN EXITLOOP)B The WHILE 1 command generates an endless loop that executes aA STEP command with each iteration. After each STEP, the valueA of X is tested. If X is greater than 3, the EXITLOOP command+ terminates the loop (Fortran example). 2 EXPANDD Expands or contracts the window associated with a screen display.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format% EXPAND [display-name[, . . . ]] 3 Parameters display-nameD Specifies a display to be expanded or contracted. You can specify! any of the following entities: o A predefined display: SRC OUT PROMPT INST REG FREG (Alpha only) IREG; o A display previously created with the DISPLAY command o A display built-in symbol: %CURDISP %CURSCROLL %NEXTDISP %NEXTINST %NEXTOUTPUT %NEXTSCROLL %NEXTSOURCEB If you do not specify a display, the current scrolling display,3  as established by the SELECT command, is chosen. 3 Qualifiers /DOWN /DOWN[:n]B Moves the bottom border of the display down by n lines (if n isD positive) or up by n lines (if n is negative). If you omit n, the" border is moved down by 1 line. /LEFT /LEFT[:n]B Moves the left border of the display to the left by n lines (ifC n is positive) or to the right by n lines (if n is negative). If9 you omit n, the border is moved to the left by 1 line. /RIGHT /RIGHT[:n]D Moves the right border of the display to the right by n lines (ifB n is positive) or to the left by n lines (if n is negative). If: you omit n, the border is moved to the right by 1 line. /UP /UP[:n]= Moves the top border of the display up by n lines (if n is? positive) or down by n lines (if n is negative). If you omit' n, the border is moved up by 1 line. 3 Description+ You must specify at least one q ualifier.> The EXPAND command moves one or more display-window borders= according to the qualifiers specified (/UP:[n], /DOWN:[n], RIGHT:[n], /LEFT:[n]).? The EXPAND command does not affect the order of a display on= the display pasteboard. Depending on the relative order ofB displays, the EXPAND command can cause the specified display toC hide or uncover another display or be hidden by another display, partially or totally.B Except for the PROMPT display, any display can be contracted to@ the point where it disappears (at which point it is marked asC "removed"). It can then be expanded from that point. ContractingC a display to the point where it disappears causes it to lose anyB attributes that were selected for it. The PROMPT display cannot? be contracted or expanded horizontally but can be contracted% vertically to a height of 2 lines.= A window border can be expanded only up to the edge of theD screen. The left and top wi ndow borders cannot be expanded beyondA the left and top edges of the display, respectively. The rightA border can be expanded up to 255 columns from the left displayA edge. The bottom border of a source or instruction display canB be expanded down only to the bottom edge of the display (to theB end of the source module or routine's instructions). A register3 display cannot be expanded beyond its full size.? For a list of the key definitions associated with the EXPANDC command, type Help Keypad_Definitions_CI. Also, use the SHOW KEY4 command to determine the current key definitions. Related commands: DISPLAY MOVE SELECT/SCROLL (SET,SHOW) TERMINAL 3 Examples 1.DBG> EXPAND/RIGHT:6A This command moves the right border of the current scrolling' display to the right by 6 columns." 2.DBG> EXPAND/UP/RIGHT:-12 OUT2D This command moves the top border of display OUT2 up by 1 line,4 and the right border to the left by 12 columns. 3.DBG> EXPAND/DOWN:99 SRCD This command moves the bottom border of display SRC down to the bottom edge of the screen. 2 EXTRACT? Saves the contents of screen displays in a file or creates aC debugger command procedure with all of the commands necessary to/ re-create the current screen state later on.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format2 EXTRACT [display-name[, . . . ]] [file-spec] 3 Parameters display-nameB Specifies a display to be extracted. You can specify any of the following entities: o A predefined display: SRC OUT PROMPT INST REG FREG (Alpha only) IREG; o A display previously created with the DISPLAY command@ You can use the asterisk (*) wildcard character in a display? name. Do not specify a display name with the /ALL qualifier. file-specB Specifies the file to which the information is written. You can specify a logical name.? If you specify /SCREEN_LAYOUT, the default specification for? the file is SYS$DISK:[]DBGSCREEN.COM. Otherwise, the default) specification is SYS$DISK:[]DEBUG.TXT. 3 Qualifiers /ALLA Extracts all displays. Do not specify /SCREEN_LAYOUT with this qualifier. /APPEND> Appends the information at the end of the file, rather thanA creating a new file. By default, a new file is created. Do not. specify /SCREEN_LAYOUT with this qualifier. /SCREEN_LAYOUTC Writes a file that contains the debugger commands describing theD current state of the screen. This information includes the screenD height and width, message wrap setting, and the position, displayD kind, and display attributes of every existing display. This fileA can then be executed with the execute procedure (@) command toC reconstruct the screen at a later time. Do not specify /ALL with this qualifier. 3 Description= When you use the EXTRACT command to save the contents of aB display into a file, only those lines that are currently stored= in the display's memory buffer (as determined by the /SIZE= qualifier on the DISPLAY command) are written to the file.5 You cannot extract the PROMPT display into a file. Related commands: DISPLAY SAVE 3 Examples 1.DBG> EXTRACT SRC? This command writes all the lines in display SRC into file SYS$DISK:[]DEBUG.TXT./ 2.DBG> EXTRACT/APPEND OUT [JONES.WORK]MYFILED This command appends all the lines in display OUT to the end of! file [JONES.WORK]MYFILE.TXT. 3.DBG> EXTRACT/SCREEN_LAYOUTD This command writes the debugger commands needed to reconstruct3 the screen into file SYS$DISK:[]DBGSCREEN.COM. 2 FORB Executes a sequence of commands while incrementing a variable a specified number of times. Format: FOR name=expression1 TO expression2 [BY expression3] DO (command[; . . . ]) 3 Parameters name* Specifies the name of a count variable. expression1B Specifies an integer or enumeration type value. The expression17 and expression2 parameters must be of the same type. expression2B Specifies an integer or enumeration type value. The expression17 and expression2 parameters must be of the same type. expression3 Specifies an integer. command= Specifies a debugger command. If you specify more than oneC command, you must separate the commands with semicolons. At eachB execution, the debugger checks the syntax of any expressions in( the commands and then evaluates them. 3 Description> The behavior of the FOR command depends on the value of the= expression3  parameter, as detailed in the following table:' expression3Action of the FOR Command= Positive name parameter is incremented from the value ofA expression1 by the value of expression3 until it is3 greater than the value of expression2B Negative name is decremented from the value of expression1 by@ the value of expression3 until it is less than the" value of expression23 0 The debugger returns an error message:  Omitted The debugger assumes it to have the value +1 Related commands: EXITLOOP REPEAT WHILE 3 Examples1 1.DBG> FOR I = 10 TO 1 BY -1 DO (EXAMINE A(I)). This command examines an array backwards./ 2.DBG> FOR I = 1 TO 10 DO (DEPOSIT A(I) = 0)/ This command initializes an array to zero. 2 GO' Starts or resumes program execution. Format GO [address-expression] 3 Parameters address-expressi onB Specifies that program execution resume at the location denoted> by the address expression. If you do not specify an address? expression, execution resumes at the point of suspension or,B in the case of debugger startup, at the image transfer address. 3 DescriptionD The GO command starts program execution or resumes execution fromA the point at which it is currently suspended. GO is one of theB four debugger commands that can be used to execute your program) (th e others are CALL, EXIT, and STEP).C Specifying an address expression with the GO command can produce? unexpected results because it alters the normal control flow; of your program. For example, during a debugging session? you can restart execution at the beginning of the program byD entering the GO %LINE 1 command. However, because the program hasD executed, the contents of some variables might now be initialized3 differently from when you first ran the program.@ If an exception breakpoint is triggered (resulting from a SET= BREAK/EXCEPTION or a STEP/EXCEPTION command), execution isA suspended before any application-declared condition handler isA invoked. If you then resume execution with the GO command, the behavior is as follows:@ o Entering a GO command to resume execution from the currentB location causes the debugger to resignal the exception. ThisC enables you to observe which application-declared handler, if& any, n ext handles the exception.? o Entering a GO command to resume execution from a locationC other than the current location inhibits the execution of any6 application-declared handler for that exception.A If you are debugging a multiprocess program, the GO command isC executed in the context of the current process set. In addition,D when debugging a multiprocess program, the way in which executionA continues in your process depends on whether you entered a SET@ MODE [NO]INTERRUPT command or a SET MODE [NO]WAIT command. By> default (SET MODE NOINTERRUPT), when one process stops, the? debugger takes no action with regard to the other processes.@ Also by default (SET MODE WAIT), the debugger waits until allC process in the current process set have stopped before prompting for a new command. Related commands: CALL EXIT RERUN SET BREAK SET MODE [NO]INTERRUPT SET MODE [NO]WAIT SET PROCESS SET STEP SET TRACE SET WATCH STEP WAIT 3 Examples 1.DBG> GO . . .# 'Normal successful completion' DBG>@ This command starts program execution, which then completes successfully. 2.DBG> SET BREAK RESTORE" DBG> GO ! start execution . . .' break at routine INVENTORY\RESTORE 137: procedure RESTORE;# DBG> GO ! resume execution . . .@ In this example, the SET BREAK command sets a breakpoint onD routine RESTORE. The first GO command starts program execution,B which is then suspended at the breakpoint on routine RESTORE.A The second GO command resumes execution from the breakpoint. 3.DBG> GO %LINE 42D This command resumes program execution at line 42 of the module/ in which execution is currently suspended. 2 HELPA Displays online help on debugger commands and selected topics.&  NOTEB This command is not available in the Compaq DECwindows MotifB for OpenVMS user interface to the debugger. Help on commands> is available from the Help menu in a DECwindows debugger window. Format% HELP topic [subtopic [ . . . ]] 3 Parameters topicD Specifies the name of a debugger command or topic about which youC want help. You can specify the asterisk (*) wildcard character," either singly or within a name. subtopic@ Specifies a subtopic, qualifier, or parameter about which youB want further information. You can specify the asterisk wildcard( (*), either singly or within a name. 3 Description= The debugger's online help facility provides the followingB information about any debugger command, including a description= of the command, its format, explanations of any parametersB that can be specified with the command, and explanations of any5 qualifiers that can b e specified with the command.@ To get information about a particular qualifier or parameter,> specify it as a subtopic. If you want information about all= qualifiers, specify "qualifier" as a subtopic. If you want; information about all parameters, specify "parameter" as< a subtopic. If you want information about all parameters,D qualifiers, and any other subtopics related to a command, specify" an asterisk (*) as a subtopic.> In addition to help on commands, you can get online help onB various topics such as screen features, keypad mode, and so on.B Topic keywords are listed along with the commands when you type HELP.B For summary information about new features with this release of* the debugger, see help on New_Features.= For help on the predefined keypad-key functions, type Help; Keypad_Definitions_CI. Also, use the SHOW KEY command to) determine the current key definitions. 3 Example DBG> HELP GO3 This command displays help for the GO command. 2 IFD Executes a sequence of commands if a language expression (Boolean$ expression) is evaluated as true. Format4 IF Boolean-expression THEN (command[; . . . ])# [ELSE (command[; . . . ])] 3 Parameters Boolean-expressionD Specifies a language expression that evaluates as a Boolean value1 (true or false) in the currently set language. command= Specifies a debugger command. If you specify more than one? command, you must separate the commands with semicolons (;). 3 DescriptionA The IF command evaluates a Boolean expression. If the value isA true (as defined in the current language), the command list in? the THEN clause is executed. If the expression is false, the8 command list in the ELSE clause (if any) is executed. Related commands: EXITLOOP FOR REPEAT WHILE 3 Example= DBG> SET BREAK R DO (IF X .LT. 5 THEN (GO) ELSE (EXAMINE X))B This command causes the debugger to suspend program executionC at location R (a breakpoint) and then resume program execution? if the value of X is less than 5 (Fortran example). If the5 value of X is 5 or more, its value is displayed. 2 MONITOR? Displays the current value of a program variable or languageD expression in the monitor view of the Compaq DECwindows Motif for OpenVMS user interface.& NOTE; Requires the Compaq DECwindows Motif for OpenVMS user interface. Format MONITOR expression 3 Parameters expressionB Specifies an entity to be monitored. With high-level languages,D this is typically the name of a variable. Currently, MONITOR doesD not handle composite expressions (language expressions containing operators).@ If you specify the name of an aggregate variable (a compositeD data structure such as an array or record structure), the monitor@ view lists "Aggregate" for the value of the variable. You canB then double-click on the variable name to get the values of all- the elements (see context-sensitive Help).A To specify an individual array element, array slice, or record8 component, follow the syntax of the current language. 3 Qualifiers /ASCIC /ASCIC /AC= Interprets each monitored entity as a counted ASCII string@ preceded by a 1-byte count field that gives the length of the( string. The string is then displayed. /ASCID /ASCID /AD> Interprets each monitored entity as the address of a string> descriptor pointing to an ASCII string. The CLASS and DTYPE? fields of the descriptor are not checked, but the LENGTH andA POINTER fields provide the character length and address of the. ASCII string. The string is then displayed. /ASCII /ASCII:nC Interprets and displays each monitored entity as an ASCII string@ of length n bytes (n characters). If you omit n, the debugger> attempts to determine a length from the type of the address expression. /ASCIW /ASCIW /AW= Interprets each monitored entity as a counted ASCII string@ preceded by a 2-byte count field that gives the length of the( string. The string is then displayed. /ASCIZ /ASCIZ /AZ> Interprets each monitored entity as a zero-terminated ASCII@ string. The ending zero byte indicates the end of the string. The string is then displayed. /BINARY6 Displays each monitored entity as a binary integer. /BYTED Displays each monitored entity in the byte integer type (length 1 byte). /D_FLOATC (VAX only) Displays each monitored entity in the D_floating type (length 8 bytes). /DATE_TIMEC Interprets each monitored entity as a quadword integer (length 8D bytes) containing the internal OpenVMS representation of date andB time. Displays the value in the format dd-mmm-yyyy hh:mm:ss.cc. /DECIMAL7 Displays each monitored entity as a decimal integer. /DEFAULT7 Displays each monitored entity in the default radix. /EXTENDED_FLOAT= (Alpha only) Displays each monitored entity in the IEEE X_# floating type (length 16 bytes). /FLOAT> On VAX processors, displays each monitored entity in the F_" floating type (length 4 bytes).B On Alpha processors, displays each monitored entity in the IEEE6 T_floating type (double precision, length 8 bytes). /F_FLOATC (VAX only) Displays each monitored entity in the F_floating type (length 4 bytes). /G_FLOATB Displays each monitored entity in the G_floating type (length 8 bytes). /H_FLOATC (VAX only) Displays each monitored entity in the H_floating type (length 16 bytes). /HEXADECIMAL; Displays each monitored entity as a hexadecimal integer. /INSTRUCTION9 Displays each monitored entity as an assembly-language; instruction (variable length, depending on the number of? instruction operands and the kind of addressing modes used).$ See also the /OPERANDS qualifier. /INT Same as /LONGWORD qualifier. /LONG_FLOAT= (Alpha only) Displays each monitored entity in the IEEE S_4 floating type (single precision, length 4 bytes). /LONG_LONG_FLOAT= (Alpha only) Displays each monitored entity in the IEEE T_4 floating type (double precision, length 8 bytes). /LONGWORD /LONGWORD /INT /LONG> Displays each monitored entity in the longword integer typeC (length 4 bytes). This is the default type for program locations. that do not have a compiler-generated type. /OCTAL6 Displays each monitored entity as an octal integer. /OCTAWORD> Displays each monitored entity in the octaword integer type (length 16 bytes).  /QUADWORD> Displays each monitored entity in the quadword integer type (length 8 bytes). /REMOVE@ Removes a monitored item or items with the address expression# specified from the Monitor View. /SHORT Same as /WORD qualfier. /TASK= Applies to tasking (multithread) programs. Interprets eachC monitored entity as a task (thread) object and displays the taskC value (the name or task ID) of that task object. When monitoringA a task object, use /TASK only if the programming language does& not have built-in tasking services. /WORD /WORD /SHORTD Displays each monitored entity in the word integer type (length 2 bytes). 3 DescriptionB You can use the MONITOR command only with the debugger's CompaqB DECwindows Motif for OpenVMS user interface, because the outputD of that command is directed at the monitor view. With the commandB interface, you typically use the EVALUATE, EXAMINE or SET WATCH command instead.* The MONITOR command does the following:D 1. Displays the monitor view (if it is not already displayed by a previous MONITOR command).C 2. Puts the name of the specified variable or expression and its( current value in the monitor view.> The debugger updates the monitor view whenever the debuggerD regains control from the program, regardless of whether the valueB of the variable or location you are monitoring has changed. (By? contrast, a watchpoint halts execution when the value of the watched variable changes.)> For more information about the monitor view and the MONITOR' command, see context-sensitive Help. Related commands: DEPOSIT EVALUATE EXAMINE SET WATCH 3 Example DBG> MONITOR COUNT< This command displays the name and current value of the@ variable COUNT in the monitor view of the debugger's Compaq> DECwindows Motif for OpenVMS user interface. The value isD updated whenever the debugger regains control from the program. 2 MOVE? Moves a screen display vertically or horizontally across the screen.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format# MOVE [display-name[, . . . ]] 3 Parameters display-name> Specifies a display to be moved. You can specify any of the following entities: o A predefined display: SRC OUT PROMPT INST REG FREG (Alpha only) IREG; o A display previously created with the DISPLAY command o A display built-in symbol: %CURDISP %CURSCROLL %NEXTDISP %NEXTINST %NEXTOUTPUT %NEXTSCROLL %NEXTSOURCEB If you do not specify a display, the current scrolling display,3 as established by the SELECT command, is chosen. 3 Qualifiers /DOWN /DOWN[:n]@ Moves the display down by n lines (if n is positive) or up byB n lines (if n is negative). If you omit n, the display is moved down by 1 line. /LEFT /LEFT[:n]A Moves the display to the left by n lines (if n is positive) orB right by n lines (if n is negative). If you omit n, the display" is moved to the left by 1 line. /RIGHT /RIGHT[:n]B Moves the display to the right by n lines (if n is positive) orD left by n lines (if n is negative). If you omit n, the display is moved to the right by 1 line. /UP /UP[:n]B Moves the display up by n lines (if n is positive) or down by nC lines (if n is negative). If you omit n, the display is moved up by 1 line. 3 Description+ You must specify at least one qualifier.@ For each display specified, the MOVE command simply creates aA windo w of the same dimensions elsewhere on the screen and mapsD the display to it, while maintaining the relative position of the text within the window.A The MOVE command does not change the order of a display on theC display pasteboard. Depending on the relative order of displays,D the MOVE command can cause the display to hide or uncover anotherA display or be hidden by another display, partially or totally.< A display can be moved only up to the edge of the screen.D For a list of the keypad-key definitions associated with the MOVEC command, type Help Keypad_Definitions_CI. Also, use the SHOW KEY4 command to determine the current key definitions. Related commands: DISPLAY EXPAND SELECT/SCROLL (SET,SHOW) TERMINAL 3 Examples 1.DBG> MOVE/LEFTD This command moves the current scrolling display to the left by 1 column.# 2.DBG> MOVE/UP:3/RIGHT:5 NEW_OUT@ This command moves display NEW_OUT up by 3 lines and to the right by 5 columns. 2 PTHREAD@ Passes a command to the POSIX Threads debugger for execution.& NOTE; This command is valid only when the event facility is> THREADS and the program is running POSIX Threads 3.13 or later. Format PTHREAD command 3 Parameters command$ A POSIX Threads debugger command. 3 Description@ Passes a command to the POSIX Threads debugger for execution.A The results appear in the command view. Once the POSIX ThreadsB debugger command has been completed, control is returned to the? OpenVMS debugger. You can get help on POSIX Threads debugger# commands by typing PTHREAD HELP.D See the Guide to POSIX Threads Library for more information about$ using the POSIX Threads debugger. Related commands: o SET EVENT FACILITY o SET TASK|THREAD o SHOW EVENT FACILITY o SHOW TASK|THREAD 3 Example DBG_1> PTHREAD HELP conditions [-afhwqrs] [-(N ] [id]...: list condition variables( exit: exit from DECthreads debugger+ help [topic]: display help information* keys [-v] [-N ] [id]...: list keys7 mutexes [-afhilqrs] [-N ] [id]...: list mutexes( quit: exit from DECthreads debugger show [-csuv]: show stuff6 squeue [-c ] [-fhq] [-t ] [a]: format queue& stacks [-fs] [sp]...: list stacks$ system: show system inf ormation6 threads [-1] [-N ] [-abcdfhklmnor] [-s ] [-tz] [id]...: list threads4 tset [-chna] [-s ] : set state of thread versions: display versions write : write a stringC All keywords may be abbreviated: if the abbreviation is ambiguous,B the first match will be used. For more help, type 'help '. DBG_1>? This command invokes the POSIX Threads debugger help file,B then returns control to the OpenVMS debugger. To get specificC help on a POSIX Threads debugger Help topic, type PTHREAD HELP topic. 2 QUITC Ends a debugging session, or terminates one or more processes ofA a multiprocess program (similar to EXIT), but without allowingB any application-declared exit handlers to run. If used within aA command procedure or DO clause and no process is specified, it: exits the command procedure or DO clause at that point. Format# QUIT [process-spec[, . . . ]] 3 Parameters  process-spec< (Kept debugger only.) Specifies a process currently under4 debugger control. Use any of the following forms:D [%PROCESS_NAME] process- The process name, if that name does notD name contain spaces or lowercase characters.= The process name can include the> asterisk (*) wildcard character.D [%PROCESS_NAME] The process name, if that name contains@ "process-name" s paces or lowercase characters. YouD can also use apostrophes (') instead of1 quotation marks (").; %PROCESS_PID process_id The process identifier (PID, a1 hexadecimal number).B [%PROCESS_NUMBER] The number assigned to a process when? process-number it comes under debugger control. AA (or %PROC process- new number is assigned sequentially,A number) starting with 1, to each process. IfB a process is terminated with the EXIT? or QUIT command, the number can be@ assigned again during the debuggingA session. Process numbers appear in a@ SHOW PROCESS display. Processes areC ordered in a circular list so they canA be indexed with the built-in symbols A %PREVIOUS_PROCESS and %NEXT_PROCESS.6 process-set-name A symbol defined with theD DEFINE/PROCESS_SET command to represent2 a group of processes.? %NEXT_PROCESS The next process after the visible? process in the debugger's circular* process list.@ %PREVIOUS_PROCESS The process previous to the visible?  process in the debugger's circular* process list.C %VISIBLE_PROCESS The process whose stack, register set,C and images are the current context forA looking up symbols, register values,C routine calls, breakpoints, and so on.C You can also use the asterisk (*) wildcard character to specify all processes. 3 DescriptionC The QUIT command is simlar to the EXIT command, except that QUITB does not cause your program to execute and, therefore, does notB execute any application-declared exit handlers in your program. Ending a Debugging Session:< To end a debugging session, enter the QUIT command at theA debugger prompt without specifying any parameters. This causes@ orderly termination of the session: the debugger exit handlerB is executed (closing log files, restoring the screen and keypad@ states, and so on ), and control is returned to DCL level. YouA cannot then continue to debug your program by entering the DCL= command DEBUG or CONTINUE (you must restart the debugger).? Using the QUIT Command in Command Procedures and DO Clauses:9 When the debugger executes a QUIT command (without any= parameters) in a command procedure, control returns to the? command stream that invoked the command procedure. A command< stream can be the terminal, an outer (containing) command; pro cedure, or a DO clause in a command or screen display@ definition. For example, if the command procedure was invokedD from within a DO clause, control returns to that DO clause, where? the debugger executes the next command (if any remain in the command sequence).9 When the debugger executes a QUIT command (without any@ parameters) in a DO clause, it ignores any remaining commands* in that clause and displays its prompt.# Terminating Specified Processes:? If you are debugging a multiprocess program, you can use the? QUIT command to terminate specified processes without endingA the debugging session. The same techniques and behavior apply,D whether you enter the QUIT command at the prompt or use it within$ a command procedure or DO clause.> To terminate one or more processes, enter the QUIT command,@ specifying these processes as parameters. This causes orderlyA termination of the images in these processes without executing? any application-declared exit handlers associated with these> images. Subsequently, the specified processes are no longer, identified in a SHOW PROCESS/ALL display.C In contrast to the EXIT command, the QUIT command does not cause" any process to start execution.  Related commands: DISCONNECT @ (Execute Procedure) Ctrl/C Ctrl/Y Ctrl/Z EXIT RERUN RUN SET ABORT_KEY SET PROCESS 3 Examples 1.DBG> QUIT $C This command ends the debugging session and returns you to DCL level.. 2.all> QUIT %NEXT_PROCESS, JONES_3, %PROC 5 all>B This command causes orderly termination of three processes ofB a multiprocess program: the process after the visible processA on the process list, process JONES_3, and process 5. ControlC is returned to the debugger after the specified processes have exited. 2 REBOOT? (Alpha only) When debugging Alp ha operating system code with= the OpenVMS Alpha System-Code Debugger, reboots the target? machine running the Alpha operating system code and executes' (or reexecutes) your system program.? The REBOOT command, in other words, is similar to the RUN orC RERUN commands when you are within the OpenVMS Alpha System-Code@ Debugger environment. (The OpenVMS Alpha System-Code Debugger= is a kernel debugger that is activated through the OpenVMS Debugger.)= Before you issue this command, you must have completed the= instructions described in the Writing OpenVMS Alpha DeviceB Drivers in C manual. These instructions include the creation ofD an Alpha device driver, the setup commands activating the OpenVMSB Alpha System-Code Debugger, and the CONNECT command that allows you to debug.; You must also have started the OpenVMS Debugger with the DEBUG/KEEP command. Format REBOOT 3 Description> For complete information on using the OpenVMS Alpha System-A Code Debugger, see the Writing OpenVMS Alpha Device Drivers in C manual. Related commands: CONNECT DISCONNECT 3 Example DBG> REBOOT> This command reboots the target machine where you will beA debugging the OpenVMS Alpha operating system and reruns your program. 2 REPEAT? Executes a sequence of commands a specified number of times. Format7 REPEAT language-expression DO (command[; . . . ]) 3 Parameters language-expression< Denotes any expression in the currently set language that# evaluates to a positive integer. command= Specifies a debugger command. If you specify more than oneC command, you must separate the commands with semicolons (;). AtD each execution, the debugger checks the syntax of any expressions+ in the commands and then evaluates them. 3 Description> The REPEAT command is a simple form of the FOR command. The@ REPEAT command executes a sequence of commands repetitively a? specified number of times, without providing the options for; establishing count parameters that the FOR command does. Related commands: EXITLOOP FOR WHILE 3 Example$ DBG> REPEAT 10 DO (EXAMINE Y; STEP)C This command line sets up a loop that issues a sequence of two. commands (EXAMINE Y, then STEP) 10 times. 2 RERUN7 Reruns the program currently under debugger control.& NOTE? Requires that you started your debugging session with the? DCL command DEBUG/KEEP and then executed the debugger RUNA command. If you began your session with the DCL command RUNB filespec instead, you cannot use the debugger RERUN command. Format RERUN 3 Qualifiers /ARGUMENTS /ARGUMENTS="arg-list"A Specifies a list of arguments. If you specify a quoted string,D y ou might have to add quotation marks because the debugger stripsA them when parsing the string. If you do not specify arguments,? any arguments that were specified previously when running or2 rerunning that program are applied, by default. /HEAP_ANALYZERD (Applies only to workstation users.) Invokes the Heap Analyzer, a@ debugger feature that helps you understand how memory is used> by your application. For more information on using the Heap- Analyzer, see the OpenVMS Debugger Manual. /SAVE /SAVE (default) /NOSAVE; Controls whether to save the current state (activated or; deactivated) of all breakpoints, tracepoints, and staticC watchpoints for the next run of the program. The /SAVE qualifierB specifies that their state is saved, and /NOSAVE specifies thatC their state is not saved. /SAVE may or may not save the state ofB a particular nonstatic watchpoint depending on the scope of theB variable being watched rela tive to the main program unit (where execution restarts). 3 DescriptionB If you invoked the debugger with the DCL command DEBUG/KEEP and@ subsequently used the debugger RUN command to begin debugging@ your program, you can then use the RERUN command to rerun the, program currently under debugger control.@ The RERUN command terminates the image you were debugging and@ then restarts that image under debugger control. Execution isC paused at the start of the main program unit, as if you had used9 the debugger RUN command or the DCL command RUN/DEBUG.? The RERUN command uses the same version of the image that isA currently under debugger control. To debug a different versionC of that program (or a different program) from the same debugging session, use the RUN command. Related commands: RUN (debugger command) RUN (DCL command)! (ACTIVATE,DEACTIVATE) BREAK! (ACTIVATE,DEACTIVATE) TRACE! (ACTIVATE,DEACTIVATE) WATCH 3 Examples 1.DBG> RERUN= This command reruns the current program. By default, the9 debugger saves the current state of all breakpoints,D tracepoints, and static watchpoints (activated or deactivated). 2.DBG> RERUN/NOSAVE? This command reruns the current program without saving theB current state of breakpoints, tracepoints, and watchpoints-inA effect, the same as using the RUN command and specifying the image name.+ 3.DBG> RERUN/ARGUMENTS="fee fii foo fum"@ This command reruns the current program with new arguments. 2 RUN) Runs a program under debugger control.& NOTE? Requires that you started your debugging session with the< DCL command DEBUG/KEEP. If you began your session with> the DCL command RUN filespec instead, you cannot use the debugger RUN command. Format RUN [program-image] 3 Parameters program-image@ Specifies the executable image of the program to be debugged.= Do not specify an image if you use the /COMMAND=cmd-symbol qualifier. 3 Qualifiers /ARGUMENTS /ARGUMENTS="arg-list"A Specifies a list of arguments. If you specify a quoted string,D you might have to add quotation marks because the debugger strips" quotes when parsing the string. /COMMAND /COMMAND="cmd-symbol"; Specifies a DCL foreign command for running the program.; Do not use this qualifier if you specify a program-image parameter.D Do not specify a DCL command or any other command definition that, was created with the SET COMMAND command. /HEAP_ANALYZERD (Applies only to workstation users.) Invokes the Heap Analyzer, a@ debugger feature that helps you understand how memory is used> by your application. For more information on using the Heap- Analyzer, see the OpenVMS Debugger Manual. /NEWD Run s a new program under debugger control without terminating any programs already running. 3 DescriptionC If you invoked the debugger with the DCL command DEBUG/KEEP, youB can use the debugger RUN command at any time during a debuggingC session to start a program under debugger control. If you are inC the midst of debugging a program when you issue the RUN command,@ that program will first be terminated unless you use the /NEW qualifier.B To run the same program a gain (that is, the same version of theC program that is currently under debugger control), use the RERUNB command. RERUN enables you to save the current state (activated> or deactivated) of any breakpoints, tracepoints, and static watchpoints.B Note the following restrictions about the debugger RUN command:B o You can use the RUN command only if you started the debugger& with the DCL command DEBUG/KEEP.A o You cannot use the RUN command to connect the debugger to a5 running program. See the description of Ctrl/Y.C o You cannot run a program under debugger control over a DECnet? link. Both the image to be debugged and the debugger must reside on the same node. Related commands: RERUN RUN (DCL command) Ctrl/Y-DEBUG (DCL command) DEBUG (DCL command) 3 Examples 1.DBG> RUN EIGHTQUEENS% Language: C, Module: EIGHTQUEENS? This command brings the program EIGHTQUEENS under debugger control.- 2.$ RUNPROG == "$ DISK3:[SMITH]MYPROG.EXE" $ DEBUG/KEEP . . .1 DBG> RUN/COMMAND="RUNPROG"/ARGUMENTS="X Y Z"D The first line of this example creates a command symbol RUNPROG@ (at DCL level) to run an image named MYPROG.EXE. The secondC line starts the debugger. The debugger RUN command then brings> the image MYPROG.EXE under debugger control. The /COMMANDB qualifier specifies the command symbol previously created (in@ this case RUNPROG), and the /ARGUMENTS qualifier passes the" arguments X Y Z to the image.& 3.DBG> RUN/ARGUMENTS="X Y Z" MYPROG> This command brings the program MYPROG.EXE under debugger, control and passes the arguments X Y Z. 2 SAVE@ Preserves the contents of an existing screen display in a new display.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format0 SAVE old-display AS new-display [, . . . ] 3 Parameters old-displayB Specifies the display whose contents are saved. You can specify! any of the following entities: o A predefined display: SRC OUT PROMPT INST REG FREG (Alpha only) IREG; o A display previously created with the DISPLAY command o A display built-in symbol: %CURDISP  %CURSCROLL %NEXTDISP %NEXTINST %NEXTOUTPUT %NEXTSCROLL %NEXTSOURCE new-display@ Specifies the name of the new display to be created. This new> display then receives the contents of the old-disp display. 3 Description= The SAVE command enables you to save a snapshot copy of anA existing display in a new display for later reference. The newA display is created with the same text contents as the existingC display . In general, the new display is given all the attributesB or characteristics of the old display except that it is removedD from the screen and is never automatically updated. You can laterC recall the saved display to the terminal screen with the DISPLAY command.; When you use the SAVE command, only those lines that areA currently stored in the display's memory buffer (as determined? by the /SIZE qualifier on the DISPLAY command) are stored in? the saved display. However, in the case of a saved source or? instruction display, you can also see any other source linesC associated with that module or any other instructions associated6 with that routine (by scrolling the saved display).& You cannot save the PROMPT display. Related commands: DISPLAY EXITLOOP 3 Example DBG> SAVE REG AS OLDREGB This command saves the contents of the display named REG into, the newly created display named OLDREG. 2 SCROLLC Scrolls a screen display to make other parts of the text visible through the display window.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format SCROLL [display-name] 3 Parameters display-nameA Specifies a display to be scrolled. You can specify any of the following entities: o A predefined display: SRC  OUT PROMPT INST REG FREG (Alpha only) IREG; o A display previously created with the DISPLAY command o A display built-in symbol: %CURDISP %CURSCROLL %NEXTDISP %NEXTINST %NEXTOUTPUT %NEXTSCROLL %NEXTSOURCEB If you do not specify a display, the current scrolling display,3 as established by the SELECT command, is chosen. 3 Qualifiers /BOTTOM4 Scrolls down to the bottom of the display's text. /DOWN /DOWN:[n]A Scrolls down over the display's text by n lines to reveal text= further down in the display. If you omit n, the display is6 scrolled by approximately 3/4 of its window height. /LEFT /LEFT:[n]C Scrolls left over the display's text by n columns to reveal textB beyond the left window border. You cannot scroll past column 1.< If you omit n, the display is scrolled left by 8 columns. /RIGHT /RIGHT[:n]D Scrolls right over the display's text by n columns to reveal text@ beyond the right window border. You cannot scroll past columnB 255. If you omit n, the display is scrolled right by 8 columns. /TOP/ Scrolls up to the top of the display's text. /UP /UP[:n]? Scrolls up over the display's text by n lines to reveal textD further up in the display. If you omit n, the display is scrolled- by approximately 3/4 of its window height. 3 Description> The SCROLL command moves a display up, down, right, or leftC relative to its window so that various parts of the display text* can be made visible through the window.A Use the SELECT/SCROLL command to select the target display for6 the SCROLL command (the current scrolling display).? For a list of the key definitions associated with the SCROLLC command, type Help Keypad_Definitions_CI. Also, use the SHOW KEY4 command to determine the current key definitions. Related command: SELECT. 3 Examples 1.DBG> SCROLL/LEFTC This command scrolls the current scrolling display to the left by 8 columns. 2.DBG> SCROLL/UP:4 ALPHA3 This command scrolls display ALPHA 4 lines up. 2 SEARCH? Searches the source code for a specified string and displays9 source lines that contain an occurrence of the string. Format SEARCH [range] [string] 3 Parameters range< Specifies a program region to be searched. Use any of the following formats:C mod-name Searches the specified module from line 0 to- the end of the module.= mod-name\line-num Searches the specified module from the> specified line number to the end of the module.B mod-name\line- Searches the specified module from the lineC num:line-num number specified on the  left of the colon to> the line number specified on the right.B line-num Uses the current scope to find a module andC searches that module from the specified lineC number to the end of the module. The currentC scope is established by a previous SET SCOPED command, or the PC scope if you did not enterB a SET SCOPE command. If you specify a scopeB  search list with the SET SCOPE command, theC debugger searches only the module associated2 with the first named scope.B line-num:line-num Uses the current scope to find a module and@ searches that module from the line number@ specified on the left of the colon to the> line number specified on the right. TheA current scope is established by  a previous@ SET SCOPE command, or the PC scope if you@ did not enter a SET SCOPE command. If you? specify a scope search list with the SETD SCOPE command, the debugger searches only theD module associated with the first named scope.B null (no entry) Searches the same module as that from which@ a source line was most recently displayed>  (as a result of a TYPE, EXAMINE/SOURCE,A or SEARCH command, for example), beginning@ at the first line following the line mostC recently displayed and continuing to the end% of the module. stringC Specifies the source code characters for which to search. If youC do not specify a string, the string specified in the last SEARCH command, if any, is used.9 You must enclose the string in quotation marks (") or2 apostrophes (') under the following conditions:B o The string has any leading or ending space or tab characters/ o The string contains an embedded semicolon! o The range parameter is nullD If the string is enclosed in quotation marks, use two consecutive? quotation marks ("") to indicate an enclosed quotation mark.@ If the string is enclosed in apostrophes, use two consecutive7 apostrophes ('') to indicate an enclosed apostrophe.  3 Qualifiers /ALL@ Specifies that the debugger search for all occurrences of theB string in the specified range and display every line containing an occurrence of the string. /IDENTIFIER> Specifies that the debugger search for an occurrence of the? string in the specified range but display the string only ifC it is not bounded on either side by a character that can be part, of an identifier in the current language. /NEXT< (Default) Specifies that the debugger search for the nextC occurrence of the string in the specified range and display only' the line containing this occurrence. /STRINGC (Default) Specifies that the debugger search for and display theD string as specified, and not interpret the context surrounding anC occurrence of the string, as it does in the case of /IDENTIFIER. 3 DescriptionD The SEARCH command displays the lines of source code that contain' an occurrence of a specified string.D If you specify a module name with the SEARCH command, that module@ must be set. To determine whether a particular module is set,C use the SHOW MODULE command, then use the SET MODULE command, if necessary.D Qualifiers for the SEARCH command determine whether the debugger:A (1) searches for all occurrences (/ALL) of the string or only@ the next occurrence (/NEXT); and (2) displays any occurrenceA of the string (/STRING) or only those occurrences in which the B string is not bounded on either side by a character that can be? part of an identifier in the current language (/IDENTIFIER).= If you plan to enter several SEARCH commands with the sameC qualifier, you can first use the SET SEARCH command to establishA a new default qualifier (for example, SET SEARCH ALL makes theB SEARCH command behave like SEARCH/ALL). Then you do not have toC use that qualifier with the SEARCH command. You can override theA current default qualifiers for the duration of a single SEARCH* command by specifying other qualifiers. Related commands: (SET,SHOW) LANGUAGE (SET,SHOW) MODULE (SET,SHOW) SCOPE (SET,SHOW) SEARCH 3 Examples# 1.DBG> SEARCH/STRING/ALL 40:50 D module COBOLTEST8 40: 02 D2N COMP-2 VALUE -234560000000.5 41: 02 D COMP-2 VALUE 222222.33.9 42: 02 DN COMP-2 VALUE -222222.333333./ 47: 02 DR0 COMP-2 VALUE 0.1.4 48: 02 DR5 COMP-2 VALUE 0.000001.9 49: 02 DR10 COMP-2 VALUE 0.00000000001.> 50: 02 DR15 COMP-2 VALUE 0.0000000000000001. DBG>A This command searches for all occurrences of the letter D inB lines 40 to 50 of the module COBOLTEST, the module that is in the current scope.' 2.DBG> SEARCH/IDENTIFIER/ALL 40:50 D module COBOLTEST5 41: 02 D COMP-2 VALUE 222222.33. DBG> A This command searches for all occurrences of the letter D inB lines 40 to 50 of the module COBOLTEST. The debugger displays@ the only line where the letter D (the search string) is notA bounded on either side by a character that can be part of an( identifier in the current language. 3.DBG> SEARCH/NEXT 40:50 D module COBOLTEST8 40: 02 D2N COMP-2 VALUE -234560000000. DBG>B This command searches for the next occurrence of the letter D/ in lines 40 to 50 of the module COBOLTEST. 4.DBG> SEARCH/NEXT module COBOLTEST5 41: 02 D COMP-2 VALUE 222222.33. DBG>C This command searches for the next occurrence of the letter D.A The debugger assumes D to be the search string because D wasC the last one entered and no other search string was specified. 5.DBG> SEARCH 43 D module COBOLTEST/ 47: 02 DR0 COMP-2 VALUE 0.1. DBG>B This command searches for the next occurrence (by default) of) the letter D, starting with line 43. 2 SDAA Invokes the System Dump Analyzer (SDA) from within the OpenVMS3 debugger without terminating a debugger session. Format SDA [sda-command] 3 Parameters sda-commandA One SDA command to be executed before returning control to the OpenVMS debugger. 3 DescriptionC The SDA command allows you to use the System Dump Analyzer (SDA)/ within the debugger for the following tasks: o? o System code debugging with the System Code Debugger (SCD) (Alpha only)> o System dump analysis with the System Dump Debugger (SDD) (Alpha only)? o Process dump analysis with the System Dump Analyzer (SDA) (Alpha only)A This gives you access to all SDA commands within the debugging? session. When you exit SDA, you return to the same debuggingA session. Note that you do not have access to debugger commands within the SDA session.& NOTE? The SDA command is not available when debugging user-mode programs. Related commands ANALYZE/CRASH_DUMP ANALYZE/PROCESS_DUMP CONNECT %NODE 3 Example DBG> SDA) OpenVMS (TM) Alpha process dump analyzer SDA> .. . . SDA> EXIT DBG>C This example opens an SDA session within the OpenVMS debugger,? performs some analysis, closes the SDA session and returns control to the debugger. DBG> SDA SHOW PROCESS . . DBG>A This example show the execution of a single SDA command from@ within the debugger, followed by a return of control to the debugger. 2 SELECT8 Selects a screen display as the current error, input,= instruction, output, program, prompt, scrolling, or source display.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format SELECT [display-name] 3 Parameters display-name@ Specifies the display to be selected. You can specify any oneA of the following, with the restrictions noted in the qualifier descriptions: o A predefined display: SRC OUT PROMPT INST REG FREG (Alpha only) IREG; o A display previously created with the DISPLAY command o A display built-in symbol: %CURDISP %CURSCROLL %NEXTDISP %NEXTINST %NEXTOUTPUT %NEXTSCROLL %NEXTSOURCEA If you omit this parameter and do not specify a qualifier, youD "unselect" the current scrolling display (no display then has theA scrolling attribute). If you omit this parameter but specify aC qualifier (/INPUT, /SOURCE, and so on), you unselect the current@ display with that attribute (see the qualifier descriptions). 3 Qualifiers /ERRORC Selects the specified display as the current error display. ThisA causes all debugger diagnostic messages to go to that display.@ The display specified must be either an output display or theB PROMPT display. If you do not specify a display, this qualifierD selects the PROMPT display current error display. By default, the* PROMPT display has the error attribute. /INPUTC Selects  the specified display as the current input display. ThisC causes that display to echo debugger input (which appears in theD PROMPT display). The display specified must be an output display.= If you do not specify a display, the current input display@ is unselected and debugger input is not echoed to any displayC (debugger input appears only in the PROMPT display). By default,& no display has the input attribute. /INSTRUCTIOND Selects the specified display as the cu rrent instruction display.@ This causes the output of all EXAMINE/INSTRUCTION commands toC go to that display. The display specified must be an instruction display.C If you do not specify a display, the current instruction display> is unselected and no display has the instruction attribute.D By default, for all languages except MACRO-32, no display has theA instruction attribute. If the language is set to MACRO-32, the9 INST display has the instruction attribute by default. /OUTPUTD Selects the specified display as the current output display. ThisA causes debugger output that is not already directed to another? display to go to that display. The display specified must be2 either an output display or the PROMPT display.B If you do not specify a display, the PROMPT display is selectedA as the current output display. By default, the OUT display has the output attribute. /PROGRAM@ Selects the specified display as the current program display.= This causes the debugger to try to force program input andA output to that display. Currently, only the PROMPT display can be specified.B If you do not specify a display, the current program display isB unselected and program input and output are no longer forced to the specified display.C By default, the PROMPT display has the program attribute, except> on workstations, where the program attribute is unselected. /PROMPT? Selects t he specified display as the current prompt display.D This is where the debugger prompts for input. Currently, only theA PROMPT display can be specified. Moreover, you cannot unselect? the PROMPT display (the PROMPT display always has the prompt attribute). /SCROLLC (Default) Selects the specified display as the current scrolling= display. This is the default display for the SCROLL, MOVE,@ and EXPAND commands. Although any display can have the scrollD attribute, you can use only the MOVE and EXPAND commands (not the+ SCROLL command) with the PROMPT display.D If you do not specify a display, the current scrolling display is6 unselected and no display has the scroll attribute.A By default, for all languages except MACRO-32, the SRC displayD has the scroll attribute. If the language is set to MACRO-32, the4 INST display has the scroll attribute by default. /SOURCED Selects the specified display as the current source display. ThisB causes the output of all TYPE and EXAMINE/SOURCE commands to goC to that display. The display specified must be a source display.A If you do not specify a display, the current source display is6 unselected and no display has the source attribute.A By default, for all languages except MACRO-32, the SRC displayC has the source attribute. If the language is set to MACRO-32, no/ display has the source attribute by default. 3 Description> Attributes are used t o select the current scrolling display? and to direct various types of debugger output to particular= displays. This gives you the option of mixing or isolatingB different types of information, such as debugger input, output,9 diagnostic messages, and so on in scrollable displays.> Use the SELECT command with one or more qualifiers (/ERROR,: /SOURCE, and so on) to assign one or more corresponding? attributes to a display. By default, if you do not specify a! qualifier, /S CROLL is assumed.C If you use the SELECT command without specifying a display name,B the attribute assignment indicated by the qualifier is canceled= (unselected). To reassign display attributes, you must useC another SELECT command. For more information, see the individual qualifier.? For a list of the key definitions associated with the SELECTC command, type Help Keypad_Definitions_CI. Also, use the SHOW KEY4 command to determine the current key definitions.  Related commands: DISPLAY EXPAND MOVE SCROLL SHOW SELECT 3 Examples# 1.DBG> SELECT/SOURCE/SCROLL SRC2@ This command selects display SRC2 as the current source and scrolling display. 2.DBG> SELECT/INPUT/ERROR OUT> This command selects display OUT as the current input and? error display. This causes debugger input, debugger output? (assuming OUT is the current output display), and debugger? diagnostic messages to be logged in the OUT display in the correct sequence. 3.DBG> SELECT/SOURCE? This command unselects (deletes the source attribute from)@ the currently selected source display. The output of a TYPEB or EXAMINE/SOURCE command then goes to the currently selected output display. 2 SET 3 ABORT_KEY< Assigns the debugger's abort function to another Ctrl-key8 sequence. By default, Ctrl/C does the abort function.&  NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format$ SET ABORT_KEY = CTRL_character 4 Parameters characterC Specifies the key you press while holding down the Ctrl key. You( can specify any alphabetic character. 4 DescriptionC By default, the Ctrl/C sequence, when entered within a debugging: session, aborts the execution of a debugger command andB interrupt s program execution. The SET ABORT_KEY command enablesA you to assign the abort function to another Ctrl-key sequence.C This might be necessary if your program has a Ctrl/C AST service routine enabled.A Many Ctrl-key sequences have predefined functions, and the SETB ABORT_KEY command enables you to override such definitions (seeB the OpenVMS User's Manual). Some of the Ctrl-key characters not3 used by the operating system are G, K, N, and P.> The SHOW ABORT_KEY command identifies the Ctrl-key sequence. currently in effect for the abort function.B Do not use Ctrl/Y from within a debugging session. Instead, useD either Ctrl/C or an equivalent Ctrl-key sequence established with the SET ABORT_KEY command. Related commands: Ctrl/C Ctrl/Y SHOW ABORT_KEY 4 Example DBG> SHOW ABORT_KEY Abort Command Key is CTRL_C DBG> GO . . . < DBG> EXAMINE/BYTE 1000:101000 !should have typed 1000:1010 1000: 0 1004: 0 1008: 0 1012: 0 1016: 0 2 %DEBUG-W-ABORTED, command aborted by user request DBG> SET ABORT_KEY = CTRL_P DBG> GO . . . < DBG> EXAMINE/BYTE 1000:101000 !should have typed 1000:1010 1000: 0 1004: 0 1008: 0 1012: 0 1016: 0 2 %DEBUG-W-ABORTED, command aborted by user request DBG>& This example shows the following:7 o Use of Ctrl/C for the abort function (default).> o Use of the SET ABO RT_KEY command to reassign the abort function to Ctrl/P. 3 ATSIGND Establishes the default file specification that the debugger uses) when searching for command procedures. Format SET ATSIGN file-spec 4 Parameters file-spec= Specifies any part of a file specification (for example, a= directory name or a file type) that the debugger is to use? by default when searching for a command procedure. If you do= not supply a full file specification, the debugger assumesA SYS$DISK:[]DEBUG.COM as the default file specification for any missing field.C You can specify a logical name that translates to a search list.? In this case, the debugger processes the file specifications@ in the order they appear in the search list until the command procedure is found. 4 Description@ When you invoke a debugger command procedure with the executeD procedure (@) command, the debugger assumes, by default, that  theD command procedure file specification is SYS$DISK:[]DEBUG.COM. The; SET ATSIGN command enables you to override this default. Related commands: @ (Execute Procedure) SHOW ATSIGN 4 Example' DBG> SET ATSIGN USER:[JONES.DEBUG].DBG DBG> @TESTB In this example, when you use the @TEST command, the debugger7 looks for the file TEST.DBG in USER:[JONES.DEBUG]. 3 BREAKA Establishes a breakpoint at the location denoted by an address? e xpression, at instructions of a particular class, or at the" occurrence of specified events. Format. SET BREAK [address-expression[, . . . ]]. [WHEN(conditional-expression)]' [DO(command[; . . . ])] 4 Parameters address-expression@ Specifies an address expression (a program location) at which= a breakpoint is to be set. With high-level languages, this> is typically a line number, a routine name, or a label, and? can  include a path name to specify the entity uniquely. MoreC generally, an address expression can also be a memory address orC a register and can be composed of numbers (offsets) and symbols,A as well as one or more operators, operands, or delimiters. For> information about the operators that you can use in address7 expressions, see the Address_Expressions help topic.> Do not specify the asterisk (*) wildcard character. Do not: specify an address expression with any of the following qualifiers: /ACTIVATING /BRANCH /CALL /EXCEPTION /HANDLER /INSTRUCTION0 /INSTRUCTION=(opcode[, . . . ]) (VAX only) /INTO /[NO]JSB (VAX only) /LINE /OVER /[NO]SHARE /[NO]SYSTEM /SYSEMULATE (Alpha only) /TERMINATING" /UNALIGNED_DATA (Alpha only)$ /VECTOR_INSTRUCTION (VAX only)B The /MODIFY and /RETURN qualifiers are used with specific kinds of address expres sions.A If you specify a memory address or an address expression whose< value is not a symbolic location, check (with the EXAMINE> command) that an instruction actually begins at the byte of@ memory so indicated. If an instruction does not begin at thisA byte, a run-time error can occur when an instruction includingA that byte is executed. When you set a breakpoint by specifyingD an address expression whose value is not a symbolic location, theA debugger does not verify that the location specified marks the beginning of an instruction.? On VAX systems, CALLS and CALLG routines start with an entry mask. conditional-expression: Specifies a conditional expression in the currently setB language that is to be evaluated whenever execution reaches theD breakpoint. (The debugger checks the syntax of the expressions inB the WHEN clause when execution reaches the breakpoint, not whenB the breakpoint is set.) If the expression is true, the debuggerA reports that a breakpoint has been triggered. If an action (DOC clause) is associated with the breakpoint, it will occur at this@ time. If the expression is false, a report is not issued, theA commands specified by the DO clause (if one was specified) are4 not executed, and program execution is continued. command@ Specifies a debugger command to be executed as part of the DOD clause when break action is taken. The debugger checks the syntaxA of the commands in a DO clause when it executes the DO clause," not when the breakpoint is set. 4 Qualifiers /ACTIVATING> Causes the debugger to break when a new process comes underD debugger control. The debugger prompt is displayed when the firstB process comes under debugger control. This enables you to enterB debugger commands before the program has started execution. See# also the /TERMINATING qualifier. /AFTER /AFTER:nB Specifies that break action not be taken until the nth time theA designated breakpoint is encountered (n is a decimal integer).A Thereafter, the breakpoint occurs every time it is encounteredA provided that conditions in the WHEN clause (if specified) areA true. The SET BREAK/AFTER:1 command has the same effect as SET BREAK. /BRANCH; Causes the debugger to break on every branch instruction? encountered during program execution. See also the /INTO and /OVER qualifiers. /CALL9  Causes the debugger to break on every call instruction: encountered during program execution, including the RET8 instruction. See also the /INTO and /OVER qualifiers. /EVENT /EVENT=event-name? Causes the debugger to break on the specified event (if that@ event is defined and detected by the current event facility).? If you specify an address expression with /EVENT, causes theA debugger to break whenever the specified event occurs for thatD address expression. You cannot specify an address expression with certain event names.D Event facilities are available for programs that call Ada or SCANC routines or that use POSIX Threads services. Use the SHOW EVENT_B FACILITY command to identify the current event facility and the associated event names. /EXCEPTIONB Causes the debugger to break whenever an exception is signaled.D The break action occurs before any application-declared exception handlers are invoked.> As a result of a SET BREAK/EXCEPTION command, whenever your@ program generates an exception, the debugger suspends programB execution, reports the exception, and displays its prompt. WhenB you resume execution from an exception breakpoint, the behavior is as follows:= o If you enter a GO command without an address-expression? parameter, the exception is resignaled, thus allowing any8 application-declared exception handler to execute.: o If you enter a GO command wi th an address-expression= parameter, program execution continues at the specifiedA location, thus inhibiting the execution of any application-! declared exception handler.B o On VAX, if you enter a STEP command, the debugger steps into@ any application-declared exception handler. If there is noC application-declared handler for that exception, the debugger resignals the exception.; On Alpha, you must explicitly set a breakpoint in theA exce ption handler before entering a STEP or a GO command to? get the debugger to suspend execution within the handler.; o If you enter a CALL command, the routine specified is executed.? On Alpha processors, an exception might not be delivered (toB the program or debugger) immediately after the execution of theA instruction that caused the exception. Therefore, the debugger@ might suspend execution on an instruction beyond the one that! actually caused the exception. /HANDLER@ Causes the debugger to scan the call stack and attempt to setA a breakpoint on every established frame-based handler wheneverA the program being debugged has an exception. The debugger doesB not discriminate between standard RTL handlers and user-defined handlers.B On Alpha systems, many RTLs establish a jacket RTL handler on aA frame where the user program has defined its own handler. This> RTL jacket does some setup and argument manipulation befo reD actually calling the handler defined by the user. When processingD the exception, the debugger sets the breakpoint on the jacket RTLD jacket handler, because that is the address on the call stack. IfC the debugger suspends program execution at a jacket RTL handler,? you can usually reach the user-defined handler by entering a@ STEP/CALL command followed by a STEP/INTO command. Some casesA might require that you enter additional sequences of STEP/CALLD and STEP/INTO commands. See the OpenVMS Calling Standard for more' information on frame-based handlers.A If the jacket RTL handler is part of an installed shared imageD such as ALPHA LIBOTS, the debugger cannot set a breakpoint on it.D In this case, activate the RTL as a private image by defining the& RTL as a logical name. For example:) $DEFINE LIBOTS SYS$SHARE:LIBOTS.EXE;4 Note that the trailing semicolon (;) is required. /INSTRUCTION /INSTRUCTION' /INSTRUCTION[=(o pcode[, . . . ])]B When you do not specify an opcode, causes the debugger to break= on every instruction encountered during program execution.A On VAX processors only, you can optionally specify one or moreB opcodes. This causes the debugger to break on every instruction& with an opcode that is on the list.A If you specify a vector instruction (VAX only), do not includeB an instruction qualifier (/UNALIGNED_DATA, /VECTOR_INSTRUCTION,5 /MODIFY, /0, or /1) with the instruction mnemonic.+ See also the /INTO and /OVER qualifiers. /INTO? (Default) Applies only to breakpoints set with the followingD qualifiers (that is, when an address expression is not explicitly specified): /BRANCH /CALL /INSTRUCTION0 /INSTRUCTION=(opcode[, . . . ]) (VAX only) /LINE$ /VECTOR_INSTRUCTION (VAX only)@ When used with those qualifiers, /INTO causes the debugger toC break at the specified points within called routines (as well asA within the routine in which execution is currently suspended).C The /INTO qualifier is the default and is the opposite of /OVER.B When using /INTO, you can further qualify the break action with) /[NO]JSB, /[NO]SHARE, and /[NO]SYSTEM. /JSB /JSB /NOJSB< (VAX only) Qualifies /INTO. Use with /INTO and one of the following qualifiers: /BRANCH /CALL /INSTRUCTION% /INSTRUCTION=(opcode[, . . . ]) /LINE /VECTOR_INSTRUCTIOND The /JSB qualifier is the default for all languages except DIBOL.D It lets the debugger break within routines that are called by theD JSB or CALL instruction. The /NOJSB qualifier (the DIBOL default)? specifies that breakpoints not be set within routines called? by JSB instructions. In DIBOL, application-declared routines@ are called by the CALL instruction and DIBOL Run-Time Library. routines are called by the JSB instruction. /LINE?  Causes the debugger to break on the beginning of each sourceD line encountered during program execution. See also the /INTO and /OVER qualifiers. /MODIFYC Causes the debugger to break on every instruction that writes toB and modifies the value of the location indicated by the addressC expression. The address expression is typically a variable name.= The SET BREAK/MODIFY command acts exactly like a SET WATCH4 command and operates under the same restrictions.A! If you specify an absolute address for the address expression,? the debugger might not be able to associate the address with> a particular data object. In this case, the debugger uses aB default length of 4 bytes. You can change this length, however,C by setting the type to either WORD (SET TYPE WORD, which changes? the default length to 2 bytes) or BYTE (SET TYPE BYTE, whichD changes the default length to 1 byte). SET TYPE LONGWORD restores! the default length of 4 bytes." /OVER@ Applies only to breakpoints set with the following qualifiers9 (that is, when an address expression is not explicitly specified): /BRANCH /CALL /INSTRUCTION0 /INSTRUCTION=(opcode[, . . . ]) (VAX only) /LINE$ /VECTOR_INSTRUCTION (VAX only)@ When used with those qualifiers, /OVER causes the debugger toA break at the specified points only within the routine in whichA execution is currently suspended (not within called r#outines).= The /OVER qualifier is the opposite of /INTO (which is the default). /RETURN@ Causes the debugger to break on the return instruction of theB routine associated with the specified address expression (whichB can be a routine name, line number, and so on). Breaking on theB return instruction enables you to inspect the local environment< (for example, obtain the values of local variables) while= the routine is still active. Note that the view of a local9 $ environment may differ depending on your architecture.D On VAX processors, this qualifier can only be applied to routinesC called with a CALLS or CALLG instruction; it cannot be used withC JSB routines. On Alpha processors, this qualifier can be applied to any routine.D The address-expression parameter is an instruction address within? a routine. It can simply be a routine name, in which case it= specifies the routine start address. However, you can alsoC specify ano%ther location in a routine, so you can see only those@ returns that are taken after a certain code path is followed.A A SET BREAK/RETURN command cancels a previous SET BREAK if you' specify the same address expression. /SHARE /SHARE (default) /NOSHARE; Qualifies /INTO. Use with /INTO and one of the following qualifiers: /BRANCH /CALL /INSTRUCTION0 /INSTRUCTION=(opcode[, . . . ]) (VAX only) /LINE$ /VECTOR_INSTRU&CTION (VAX only)< The /SHARE qualifier permits the debugger to break withinC shareable image routines as well as other routines. The /NOSHAREC qualifier specifies that breakpoints not be set within shareable images. /SILENT /SILENT /NOSILENT (default)B Controls whether the "break . . . " message and the source line@ for the current location are displayed at the breakpoint. TheC /NOSILENT qualifier specifies that the message is displayed. TheC /'SILENT qualifier specifies that the message and the source lineB are not displayed. The /SILENT qualifier overrides /SOURCE. See( also the SET STEP [NO]SOURCE command. /SOURCE /SOURCE (default) /NOSOURCE? Controls whether the source line for the current location isD displayed at the breakpoint. The /SOURCE qualifier specifies thatB the source line is displayed. The /NOSOURCE qualifier specifiesD that no source line is displayed. The /SILENT qualifier ove(rrides5 /SOURCE. See also the SET STEP [NO]SOURCE command. /SYSEMULATE /SYSEMULATE[=mask]B (Alpha only) Stops program execution and returns control to the? debugger after the operating system emulates an instruction.? The optional argument mask is an unsigned quadword with bits? set to specify which emulated instruction groups shall cause= breakpoints. The only emulated instruction group currentlyB defined consists of the BYTE and WORD instructions. Select )this3 instruction group by setting bit 0 of mask to 1.> If mask is not specified or if mask = FFFFFFFFFFFFFFFF, the= debugger stops program execution when the operating system emulates any instruction. /SYSTEM /SYSTEM (default) /NOSYSTEM; Qualifies /INTO. Use with /INTO and one of the following qualifiers: /BRANCH /CALL /INSTRUCTION0 /INSTRUCTION=(opcode[, . . . ]) (VAX only) /LINE$ /VECTOR_INSTRUCTION (V*AX only)D The /SYSTEM qualifier permits the debugger to break within system? routines (P1 space) as well as other routines. The /NOSYSTEM@ qualifier specifies that breakpoints not be set within system routines. /TEMPORARY@ Causes the breakpoint to disappear after it is triggered (the/ breakpoint does not remain permanently set). /TERMINATINGB Causes the debugger to break when a process does an image exit.> The debugger gains control and displays its promp+t when the? last image of a one-process or multiprocess program exits. A> process is terminated when the image has executed the $EXITA system service and all of its exit handlers have executed. See" also the /ACTIVATING qualifier. /UNALIGNED_DATA? (Alpha only) Causes the debugger to break directly after anyA instruction that accesses unaligned data (for example, after aA load word instruction that accesses data that is not on a word boundary). /VECTOR_IN,STRUCTION: (VAX only) Causes the debugger to break on every vectorA instruction encountered during program execution. See also the /INTO and /OVER qualifiers. 4 DescriptionC When a breakpoint is triggered, the debugger takes the following actions:< 1. Suspends program execution at the breakpoint location.A 2. If you specified /AFTER when you set the breakpoint, checks@ the AFTER count. If the specified number of counts has notB been reached, execut -ion resumes and the debugger does not do the remaining steps.A 3. Evaluates the expression in a WHEN clause, if you specified: one when you set the breakpoint. If the value of theB expression is false, execution resumes and the debugger does! not do the remaining steps.C 4. Reports that execution has reached the breakpoint location byE issuing a "break . . . " message, unless you specified /SILENT.< 5. Displays the line of source code at which executio.n is? suspended, unless you specified /NOSOURCE or /SILENT whenA you set the breakpoint or unless you previously entered SET STEP NOSOURCE.@ 6. Executes the commands in a DO clause, if you specified oneA when you set the breakpoint. If the DO clause contains a GOD command, execution continues and the debugger does not perform the next step. 7. Issues the prompt.@ You set a breakpoint at a particular location in your programB by specifying an /address expression with the SET BREAK command.? You set a breakpoint on consecutive source lines, classes ofA instructions, or events by specifying a qualifier with the SET? BREAK command. Generally, you must specify either an addressA expression or a qualifier, but not both. Exceptions are /EVENT and /RETURN.? The /LINE qualifier sets a breakpoint on each line of source code.9 The following qualifiers set breakpoints on classes of= instructions. Using these qua0lifiers with /LINE causes the< debugger to trace every instruction of your program as it8 executes and thus significantly slows down execution: /BRANCH /CALL /INSTRUCTION0 /INSTRUCTION=(opcode[, . . . ]) (VAX only) /RETURN$ /VECTOR_INSTRUCTION (VAX only)A The following qualifiers set breakpoints on classes of events: /ACTIVATING /EVENT=event-name /EXCEPTION /SYSEMULATE (Alpha only) /TERMINATING" /UNA1LIGNED_DATA (Alpha only)B The following qualifiers affect what happens at a routine call: /INTO /[NO]JSB (VAX only) /OVER /[NO]SHARE /[NO]SYSTEM 4 Description,_Continued...B The following qualifiers affect what output is displayed when a breakpoint is reached: /[NO]SILENT /[NO]SOURCE= The following qualifiers affect the timing and duration of breakpoints: /AFTER:n /TEMPORARYD Use the /MODI 2FY qualifier to monitor changes at program locations2 (typically changes in the values of variables).: If you set a breakpoint at a location currently used as; a tracepoint, the tracepoint is canceled in favor of the breakpoint, and vice versa.A On OpenVMS Alpha systems, the SET BREAK/UNALIGNED_DATA commandA calls the $START_ALIGN_FAULT_REPORT system service routine. DoC not issue this command if the program you are debugging includes? a call to the same $START_ALIGN_F 3AULT_REPORT routine. If you> issue the command before the program call, the program callB fails. If the program call occurs before you issue the command, unaligned breaks are not set.> Breakpoints can be user defined or predefined. User-defined= breakpoints are set explicitly with the SET BREAK command.B Predefined breakpoints, which depend on the type of program youD are debugging (for example, Ada or multiprocess), are established@ automatically when you start the debugg4er. Use the SHOW BREAKB command to identify all breakpoints that are currently set. Any1 predefined breakpoints are identified as such.? User-defined and predefined breakpoints are set and canceled@ independently. For example, a location or event can have bothB a user-defined and a predefined breakpoint. Canceling the user-D defined breakpoint does not affect the predefined breakpoint, and conversely. Related commands:- (ACTIVATE,DEACTIVATE,SHOW,CANCEL) BREAK5 CANCEL ALL GO (SET,SHOW) EVENT_FACILITY SET STEP [NO]SOURCE SET TRACE SET WATCH STEP 4 Examples! 1.DBG> SET BREAK SWAP\%LINE 12C This command causes the debugger to break on line 12 of module SWAP. 2.DBG> SET BREAK/AFTER:3 SUB2? This command causes the debugger to break on the third and8 subsequent times that SUB2 (a routine) is executed.@ 3.DBG> SET BREAK/NOSOURCE LOOP1 DO (EXAM D; STEP; EXAM Y; G 6O)D This command causes the debugger to break at location LOOP1. AtD the breakpoint, the following commands are issued, in the orderB given: (1) EXAMINE D, (2) STEP, (3) EXAMINE Y, and (4) GO.B The /NOSOURCE qualifier suppresses the display of source code at the breakpoint.5 4.DBG> SET BREAK ROUT3 WHEN (X > 4) DO (EXAMINE Y)D This command causes the debugger to break on routine ROUT3 whenB X is greater than 4. At the breakpoint, the EXAMINE Y commandD7 is issued. The syntax of the conditional expression in the WHEN" clause is language-dependent." 5.DBG> SET BREAK/TEMPORARY 1440 DBG> SHOW BREAK# breakpoint at 1440 [temporary] DBG>? This command sets a temporary breakpoint at memory address= 1440. After that breakpoint is triggered, it disappears. 6.DBG> SET BREAK/LINEB This command causes the debugger to break on the beginning of< every source line encountered during program execution.8( 7.DBG> SET BREAK/LINE WHEN (X .NE. 0)/ DBG> SET BREAK/INSTRUCTION WHEN (X .NE. 0)A These two commands cause the debugger to break when X is notA equal to 0. The first command tests for the condition at theA beginning of every source line encountered during execution.D The second command tests for the condition at each instruction.C The syntax of the conditional expression in the WHEN clause is language-dependent. 8.DBG> SET BREAK/RETURN ROUT4B 9 This command causes the debugger to break whenever the return: instruction of routine ROUT4 is about to be executed.? 9.DBG> SET BREAK/EXCEPTION DO (SET MODULE/CALLS; SHOW CALLS)D This command causes the debugger to break whenever an exceptionB is signaled. At the breakpoint, the SET MODULE/CALLS and SHOW CALLS commands are issued. 10all> SET BREAK/ACTIVATINGD This command causes the debugger to break whenever a process of> a multiprocess program is: brought under debugger control. 3 DEFINEA Establishes a default qualifier (/ADDRESS, /COMMAND, /PROCESS_, GROUP, or /VALUE) for the DEFINE command. Format SET DEFINE define-default 4 Parameters define-defaultB Specifies the default to be established for the DEFINE command.A Valid keywords (which correspond to DEFINE command qualifiers) are as follows:= ADDRESS Subsequent DEFINE commands are treated as8 DE ;FINE/ADDRESS. This is the default.= COMMAND Subsequent DEFINE commands are treated as# DEFINE/COMMAND.= PROCESS_SET Subsequent DEFINE commands are treated as' DEFINE/PROCESS_SET.= VALUE Subsequent DEFINE commands are treated as! DEFINE/VALUE. 4 Description= The SET DEFINE command establishes a default qualifier forA subsequent DEFINE commands. The parameters that you specify inC the S<ET DEFINE command have the same names as the qualifiers forB the DEFINE command. The qualifiers determine whether the DEFINED command binds a symbol to an address, a command string, a list of processes, or a value.B You can override the current DEFINE default for the duration ofC a single DEFINE command by specifying another qualifier. Use the? SHOW DEFINE command to identify the current DEFINE defaults. Related commands: DEFINE DEFINE/PROCESS_SET =DELETE SHOW DEFINE SHOW SYMBOL/DEFINED 4 Example DBG> SET DEFINE VALUEB The SET DEFINE VALUE command specifies that subsequent DEFINE* commands are treated as DEFINE/VALUE. 3 EDITOR> Establishes the editor that is started by the EDIT command. Format SET EDITOR [command-line] 4 Parameters command-line@ Specifies a command line to start a particular editor on your( system when you use the EDIT command.@ You> need not specify a command line if you use /CALLABLE_EDT,? /CALLABLE_LSEDIT, or /CALLABLE_TPU. If you do not use one ofC these qualifiers, the editor specified in the SET EDITOR commandC line is spawned to a subprocess when you enter the EDIT command.: You can specify a command line with /CALLABLE_LSEDIT or, /CALLABLE_TPU but not with /CALLABLE_EDT. 4 Qualifiers /CALLABLE_EDTC Specifies that the callable version of the EDT editor is startedD when you use ?the EDIT command. Do not specify a command line with4 this qualifier (a command line of "EDT" is used). /CALLABLE_LSEDIT< (VAX only) Specifies that the callable version of the DECA Language-Sensitive Editor (LSEDIT) is started when you use theA EDIT command. If you also specify a command line, it is passed@ to callable LSEDIT. If you do not specify a command line, the" default command line is LSEDIT. /CALLABLE_TPUA Specifies that the callable version of the DE@C Text ProcessingD Utility (DECTPU) is started when you use the EDIT command. If youC also specify a command line, it is passed to callable DECTPU. IfA you do not specify a command line, the default command line is TPU. /START_POSITION /START_POSITION! /NOSTART_POSITION (default)= Controls whether the /START_POSITION qualifier is appended> to the specified or default command line when you enter the= EDIT command. Currently, only DECTPU and the DEC ALanguage-B Sensitive Editor (specified as TPU or /CALLABLE_TPU, and LSEDIT= or /CALLABLE_LSEDIT, respectively) support this qualifier.@ The /START_POSITION qualifier affects the initial position ofD the editor's cursor. By default (/NOSTART_POSITION), the editor'sA cursor is placed at the beginning of source line 1, regardless@ of which line is centered in the debugger's source display or@ whether you specify a line number in the EDIT command. If you> specify /START_POSITI BON, the cursor is placed either on the@ line whose number you specify in the EDIT command, or (if youD do not specify a line number) on the line that is centered in the current source display. 4 DescriptionC The SET EDITOR command enables you to specify any editor that isC installed on your system. In general, the command line specifiedD as parameter to the SET EDITOR command is spawned and executed in a subprocess.@ On VAX processors, if you use EDT, LSEDIT, or DCECTPU, you can? start these editors in a more efficient way. You can specifyB /CALLABLE_EDT, /CALLABLE_LSEDIT, or /CALLABLE_TPU, which causesB the callable versions of EDT, LSEDIT, and DECTPU, respectively,? to be invoked by the EDIT command. In the case of LSEDIT andB DECTPU, you can also specify a command line that is executed by the callable editor.C On Alpha processors, you can use /CALLABLE_EDT or /CALLABLE_TPU, but not /CALLABLE_LSEDIT. Related commands: D EDIT (SET,SHOW,CANCEL) SOURCE SHOW DEFINE 4 Examples$ 1.DBG> SET EDITOR '@MAIL$EDIT ""'C This command causes the EDIT command to spawn the command line@ '@MAIL$EDIT ""', which starts the same editor as you use in MAIL.! 2.DBG> SET EDITOR/CALLABLE_TPUB This command causes the EDIT command to start callable DECTPU* with the default command line of TPU.B 3.DBG> SET EDITOR/CALLABLE_TPU TPU/SECTION=MYSECINI.TPU$SECTIONB Thi Es command causes the EDIT command to start callable DECTPU< with the command line TPU/SECTION=MYSECINI.TPU$SECTION.0 4.DBG> SET EDITOR/CALLABLE_EDT/START_POSITION? This command causes the EDIT command to start callable EDTC with the default command line of EDT. Also the /START_POSITIONC qualifier is appended to the command line, so that the editing> session starts on the source line that is centered in the' debugger's current source display. 3 EVENT_FACFILITY* Establishes the current event facility.D Event facilities are available for programs that call Ada or SCAN/ routines or that use POSIX Threads services. Format& SET EVENT_FACILITY facility-name 4 Parameters facility-nameC Specifies an event facility. Valid facility-name keywords are as follows:C ADA If the event facility is set to ADA, the (SET,CANCEL)B BREAK and (SET,CANCEL) TRACE commands recognize Ada-@ G specific events as well as generic, low-level task? events. (Ada events consist of task and exception events.)D You can set the event facility to ADA only if the mainB program is written in Ada or if the program calls an Ada routine.: THREADS If the event facility is set to THREADS, the@ (SET,CANCEL) BREAK and (SET,CANCEL) TRACE commandsB recognize POSIX Threads-specific as well as gene Hric,A low-level task events. All POSIX Threads events are# task (thread) events.? You can set the event facility to THREADS only ifB the shareable image CMA$RTL is currently part of theB program's process (if that image is listed in a SHOW IMAGE display).B SCAN (VAX only) If the event facility is set to SCAN, the@ (SET,CANCEL) BREAK and (SET,CANCEL) TRACE commands7 recognize ISCAN (pattern-matching) events.E You can set the event facility to SCAN only if the mainB program is written in SCAN or if the program calls a SCAN routine. 4 DescriptionA The current event facility (ADA, THREADS, or SCAN) defines the@ eventpoints that you can set with the SET BREAK/EVENT and SET TRACE/EVENT commands.; When started with a program that is linked with an event> facility, the debugger automatically sets the facil Jity in aB manner appropriate for the type of program. For example, if theD main program is written in Ada or SCAN, the event facility is set to ADA or SCAN, respectively.A The SET EVENT_FACILITY command enables you to change the event> facility and thereby change your debugging context. This is? useful if you have a multilanguage program and want to debug? a routine that is associated with an event facility but that! facility is not currently set.? On VAX processors K, you cannot use both Ada and POSIX ThreadsB tasking services in the same program. This implies that you can@ change the event facility only from ADA to SCAN or from POSIX" Threads to SCAN, or conversely.< Use the SHOW EVENT_FACILITY command to identify the eventB names associated with the current event facility. These are theB keywords that you can specify with the (SET,CANCEL) BREAK/EVENT) and (SET,CANCEL) TRACE/EVENT commands. Related commands: (SET,CANCEL) BLREAK/EVENT (SET,CANCEL) TRACE/EVENT SHOW BREAK SHOW EVENT_FACILITY SHOW IMAGE SHOW TASK SHOW TRACE 4 Example DBG> SET EVENT_FACILITY THREADSD This command establishes THREADS (POSIX Threads) as the current event facility. 3 IMAGE@ Loads symbol information for one or more shareable images and! establishes the current image. Format& SET IMAGE [image-name[, . . . ]] 4 Parameters image-nameMA Specifies a shareable image to be set. Do not use the asteriskC (*) wildcard character. Instead, use the /ALL qualifier. Do not# specify an image name with /ALL. 4 Qualifiers /ALL/ Specifies that all shareable images are set. 4 Description? The SET IMAGE command builds data structures for one or moreB specified images but does not set any modules within the images specified.? The current image is the current debugging context: you haveB N access to symbols in the current image. If you specify only oneC image with the SET IMAGE command, that image becomes the currentC image. If you specify a list of images, the last one in the listD becomes the current image. If you specify /ALL, the current image is unchanged.A Before an image can be set with the SET IMAGE command, it mustB have been linked with the /DEBUG or /TRACEBACK qualifier on theC DCL command LINK. If an image was linked /NOTRACEBACK, no symbolD i Onformation is available for that image and you cannot specify it with the SET IMAGE command.? Definitions created with the DEFINE/ADDRESS and DEFINE/VALUEC commands are available only when the image in whose context they@ were created is the current image. When you use the SET IMAGEB command to establish a new current image, these definitions areA temporarily unavailable. However, definitions created with the? DEFINE/COMMAND and DEFINE/KEY commands are available for all P images. Related commands: SET MODE [NO]DYNAMIC (SET,SHOW,CANCEL) MODULE (SHOW,CANCEL) IMAGE 4 Example DBG> SET IMAGE SHARE1 DBG> SET MODULE SUBR DBG> SET BREAK SUBR? This sequence of commands shows how to set a breakpoint onC routine SUBR in module SUBR of shareable image SHARE1. The SET@ IMAGE command sets the debugging context to SHARE1. The SET@ MODULE command loads the symbol records of module SUBR intoB the run-time symbQol table (RST). The SET BREAK command sets a breakpoint on routine SUBR. 3 KEY% Establishes the current key state.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format SET KEY 4 Qualifiers /LOG /LOG (default) /NOLOGB Controls whether a message is displayed indicating that the keyC state has been set. The /LOG qualRifier displays the message. The+ /NOLOG qualifier suppresses the message. /STATE /STATE[=state-name] /NOSTATE (default)@ Specifies a key state to be established as the current state.; You can specify a predefined key state, such as GOLD, or< a user-defined state. A state name can be any appropriateA alphanumeric string. The /NOSTATE qualifier leaves the current state unchanged. 4 DescriptionC Keypad mode must be enabled (SET MODE KEYPAD) bef Sore you can use3 this command. Keypad mode is enabled by default.? By default, the current key state is the DEFAULT state. WhenA you define function keys, you can use the DEFINE/KEY /IF_STATEA command to assign a specific state name to the key definition.B If that state is not set when you press the key, the definitionD is not processed. The SET KEY/STATE command enables you to change. the current state to the appropriate state.: You can also change the current state bTy pressing a key: that causes a state change (a key that was defined with$ DEFINE/KEY/LOCK_STATE/SET_STATE). Related commands: DELETE/KEY DEFINE/KEY SHOW KEY 4 Example DBG> SET KEY/STATE=PROG3? This command changes the key state to the PROG3 state. YouB can now use the key definitions that are associated with this state. 3 LANGUAGE$ Establishes the current language. Format SET LANGUAGE language-name U4 Parameters language-name Specifies a language.) On VAX processors, valid keywords are:& ADA BASIC BLISS C, C_PLUS_PLUS COBOL DIBOL FORTRAN( MACRO PASCAL PLI RPG SCAN UNKNOWN+ On Alpha processors, valid keywords are:* ADA AMACRO BASIC BLISS, C C_PLUS_PLUS COBOL FORTRAN( MACRO MACRO64 PASCAL PLI UNKNOWN 4 DescriptionC When you start the Vdebugger, the current language is set to thatC in which the module containing the main program is written. ThisB is usually the module containing the image transfer address. ToB debug a module written in a different source language from that@ of the main program, you can change the language with the SET LANGUAGE command.B The current language setting determines how the debugger parsesC and interprets the names, operators, and expressions you specify< in debugger commands, W including things like the typing of@ variables, array and record syntax, the default radix for theB entry and display of integer data, case sensitivity, and so on.D The language setting also determines how the debugger formats and. displays data associated with your program.C The default radix for both data entry and display is decimal forB most languages. On VAX processors, the exceptions are BLISS and@ MACRO-32, which have a default radix of hexadecimal. On Alpha@ process Xors, the exceptions are BLISS, MACRO-32, and MACRO-64,- which have a default radix of hexadecimal.< The default type for program locations that do not have aC compiler-generated type is longword integer. This is appropriate> for debugging 32-bit applications. It might be advisable toA change the default type to quadword for debugging applications? that use the 64-bit address space. Use the SET TYPE QUADWORD command.@ Use the SET LANGUAGE UNKNOWN command when debugging Y a program@ written in an unsupported language. To maximize the usabilityC of the debugger with unsupported languages, SET LANGUAGE UNKNOWN@ causes the debugger to accept a large set of data formats andA operators, including some that might be specific to only a few supported languages.B Note that SET LANGUAGE UNKNOWN can be an easy, quick workaroundB for language-related problems because it uses the "loosest" set of rules.? For information about debugger support foZr language-specificA operators and constructs, see the Language_Support help topic. Related commands: EVALUATE EXAMINE DEPOSIT SET MODE SET RADIX SET TYPE SHOW LANGUAGE 4 Examples 1.DBG> SET LANGUAGE COBOL< This command establishes COBOL as the current language. 2.DBG> SET LANGUAGE PASCAL= This command establishes Pascal as the current language. 4 /DYNAMIC3 Toggles the state of automatic [language setting. Format SET LANGUAGE/DYNAMIC 5 DescriptionC When you start the debugger, the current language is set to thatC in which the module containing the main program is written. ThisB is usually the module containing the image transfer address. ByC default, when the scope of the program being executed changes toA a module written in a different language, the debugger changes. the current language to that of the module.? You can prevent the d\ebugger from automatically changing the< current language with the SET LANGUAGE/NODYNAMIC command. Related commands: SET LANGUAGE SHOW LANGUAGE 5 Examples 1.DBG> SET LANGUAGE/NODYNAMICA This command prevents the debugger from changing the currentD language until you enter a SET LANGUAGE or SET LANGUAGE/DYNAMIC command. 3 LOG@ Specifies a log file to which the debugger writes after a SET' OUTPUT LOG command has been entered.] Format SET LOG file-spec 4 Parameters file-spec< Denotes the file specification of the log file. If you do= not supply a full file specification, the debugger assumesA SYS$DISK:[]DEBUG.LOG as the default file specification for any missing field.? If you specify a version number and that version of the file= already exists, the debugger writes to the file specified,B appending the log of the debugging session onto the end of that file. ^ 4 DescriptionA The SET LOG command determines only the name of a log file; itB does not cause the debugger to create or write to the specified6 file. The SET OUTPUT LOG command accomplishes that.B If you entered a SET OUTPUT LOG command but no SET LOG command,C the debugger writes to the file SYS$DISK:[]DEBUG.LOG by default.C If the debugger is writing to a log file and you specify anotherD log file with the SET LOG command, the debugger closes the former? file _and begins writing to the file specified in the SET LOG command. Related commands: SET OUTPUT LOG SET OUTPUT SCREEN_LOG SHOW LOG 4 Examples 1.DBG> SET LOG CALC DBG> SET OUTPUT LOG@ In this example, the SET LOG command specifies the debuggerC log file to be SYS$DISK:[]CALC.LOG. The SET OUTPUT LOG command? causes user input and debugger output to be logged to that file.% 2.DBG> SET LOG [CODEPROJ]FEB29.TMP DBG> `SET OUTPUT LOG@ In this example, the SET LOG command specifies the debuggerC log file to be [CODEPROJ]FEB29.TMP. The SET OUTPUT LOG command? causes user input and debugger output to be logged to that file. 3 MARGINS= Specifies the leftmost and rightmost source-line character? position at which to begin and end display of a source line.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenaVMS user interface to the debugger. Format SET MARGINS rm lm:rm lm: :rm 4 Parameters lmB The source-line character position at which to begin display of- the line of source code (the left margin). rmD The source-line character position at which to end display of the* line of source code (the right margin). 4 DescriptionD The SET MARGINS command affects only the display bof source lines.C It does not affect the display of other debugger output, as from an EXAMINE command.@ The SET MARGINS command is useful for controlling the display@ of source code when, for example, the code is deeply indentedA or long lines wrap at the right margin. In such cases, you can@ set the left margin to eliminate indented space in the sourceC display, and you can decrease the right margin setting (from its@ default value of 255) to truncate lines and prevent t chem from wrapping.D The SET MARGINS command is useful mostly in line (noscreen) mode.? In line mode, the SET MARGINS command affects the display ofA source lines resulting from a TYPE, EXAMINE/SOURCE, SEARCH, orC STEP command, or when a breakpoint, tracepoint, or watchpoint is triggered.; In screen mode, the SET MARGINS command has no effect on? the display of source lines in a source display, such as theB predefined display SRC. Therefore it does not affect the doutput< of a TYPE or EXAMINE/SOURCE command, since that output is@ directed at a source display. The SET MARGINS command affects> only the display of any source code that might appear in an> output or DO display (for example, after a STEP command has@ been executed). However, such source-code display is normallyD suppressed if you enable screen mode by pressing PF1-PF3, becauseD that sequence issues the SET STEP NOSOURCE command as well as SET5 MODE SCREEN to eliminate redundan et source display.> By default, the debugger displays a source line starting at< character position 1 of the source line. This is actually@ character position 9 on your terminal screen. The first eight> character positions on the screen are reserved for the line? number and cannot be manipulated by the SET MARGINS command.D If you specify a single number, the debugger sets the left margin5 to 1 and the right margin to the number specified.C If you specify two numbers, sfeparated with a colon, the debuggerB sets the left margin to the number on the left of the colon and/ the right margin to the number on the right.C If you specify a single number followed by a colon, the debuggerB sets the left margin to that number and leaves the right margin unchanged.C If you specify a colon followed by a single number, the debuggerB sets the right margin to that number and leaves the left margin unchanged. Related commands: SET STgEP [NO]SOURCE SHOW MARGINS 4 Examples 1.DBG> SHOW MARGINS' left margin: 1 , right margin: 255 DBG> TYPE 14 module FORARRAYB 14: DIMENSION IARRAY(4:5,5), VECTOR(10), I3D(3,3,4) DBG>D This example displays the default margin settings for a line of source code (1 and 255). 2.DBG> SET MARGINS 39 DBG> SHOW MARGINS& left margin: 1 , right margin: 39 DBG> TYPE 14 module FORARRAY2 14: DIMhENSION IARRAY(4:5,5), VECTOR DBG>@ This example shows how the display of a line of source codeA changes when you change the right margin setting from 255 to 39. 3.DBG> SET MARGINS 10:45 DBG> SHOW MARGINS' left margin: 10 , right margin: 45 DBG> TYPE 14 module FORARRAY/ 14: IMENSION IARRAY(4:5,5), VECTOR(10), DBG>C This example shows the display of the same line of source code$ after both margins are changed. 4i.DBG> SET MARGINS :100 DBG> SHOW MARGINS( left margin: 10 , right margin: 100 DBG>D This example shows how to change the right margin setting while0 retaining the previous left margin setting. 5.DBG> SET MARGINS 5: DBG> SHOW MARGINS' left margin: 5 , right margin: 100 DBG>C This example shows how to change the left margin setting while1 retaining the previous right margin setting. 3 MODE' Enables or disables a debugger mojde. Format SET MODE mode[, . . . ] 4 Parameters DYNAMIC@ (Default) Enables dynamic mode. When dynamic mode is enabled,D the debugger sets modules and images automatically during program? execution so that you typically do not have to enter the SETC MODULE or SET IMAGE command. Specifically, whenever the debuggerD interrupts execution (whenever the debugger prompt is displayed),D the debugger automatically sets the module and image that contain@ k the routine in which execution is currently suspended. If the= module or image is already set, dynamic mode has no effect@ on that module or image. The debugger issues an informational9 message when its sets a module or image automatically. NODYNAMIC@ Disables dynamic mode. Because additional memory is allocatedC when a module or image is set, you might want to disable dynamic> mode if performance becomes a problem (you can also free up@ memory by canceling modulesl and images with the CANCEL MODULEA and CANCEL IMAGE commands). When dynamic mode is disabled, youA must set modules and images explicitly with the SET MODULE and SET IMAGE commands. G_FLOATC Specifies that the debugger interpret double-precision floating-> point constants entered in expressions as G_FLOAT (does notD affect the interpretation of variables declared in your program). NOG_FLOATC (Default) Specifies that the debugger interpret double-precisionmC floating-point constants entered in expressions as D_FLOAT (does> not affect the interpretation of variables declared in your program). INTERRUPT@ Useful when debugging a multiprocess program. Specifies that,C when program execution is suspended in any process, the debuggerB interrupts execution in all other processes that were executing images and prompts for input. NOINTERRUPTD (Default) Useful when debugging a multiprocess program. Specifies@ thant, when program execution is suspended in any process, the8 debugger take no action with regard to other process. KEYPAD& NOTE> This parameter is not available in the Compaq DECwindows7 Motif for OpenVMS user interface to the debugger.> (Default) Enables keypad mode. When keypad mode is enabled,@ you can use the keys on the numeric keypad to perform certain> predefined functions. Several debugger commands, especially@ useful oin screen mode, are bound to the keypad keys. (See theC Keypad_Definitions_CI help topic; also, use the SHOW KEY commandC to determine the current key definitions.) You can also redefine1 the key functions with the DEFINE/KEY command. NOKEYPAD& NOTE> This parameter is not available in the Compaq DECwindows7 Motif for OpenVMS user interface to the debugger.B Disables keypad mode. When keypad mode is disabled, the keys onC tphe numeric keypad do not have predefined functions, nor can youD assign debugger functions to those keys with DEFINE/KEY commands. LINEB (Default) Specifies that the debugger display program locations) in terms of line numbers, if possible. NOLINED Specifies that the debugger display program locations as routine-; name + byte-offset rather than in terms of line numbers. OPERANDS[=keyword]; Specifies that the EXAMINE command, when used to examine: an qinstruction, display the address and contents of the< instruction's operands in addition to the instruction and= its operands. The level of information displayed about anyD nonregister operands depends on whether you use the keyword BRIEF* or FULL. The default is OPERANDS=BRIEF. NOOPERANDS= (Default) Specifies that the EXAMINE command, when used to? examine an instruction, display only the instruction and its operands. SCREEN& r NOTE> This parameter is not available in the Compaq DECwindows7 Motif for OpenVMS user interface to the debugger.C Enables screen mode. When screen mode is enabled, you can divideB the terminal screen into rectangular regions, so different dataD can be displayed in different regions. Screen mode enables you toB view more information more conveniently than the default, line-C oriented, noscreen mode. You can use the predefined displays, or you can define your oswn. NOSCREEN& NOTE> This parameter is not available in the Compaq DECwindows7 Motif for OpenVMS user interface to the debugger." (Default) Disables screen mode. SCROLL& NOTE> This parameter is not available in the Compaq DECwindows7 Motif for OpenVMS user interface to the debugger.B Enables scroll mode. When scroll mode is enabled, a screen-modeB output or DO display ist updated by scrolling the output line by< line, as it is generated. SET MODE SCROLL is the default. NOSCROLL& NOTE> This parameter is not available in the Compaq DECwindows7 Motif for OpenVMS user interface to the debugger.D Disables scroll mode. When scroll mode is disabled, a screen-modeA output or DO display is updated only once per command, insteadD of line by line as it is generated. Disabling scroll mode reducesC the a umount of screen updating that takes place and can be useful with slow terminals. SEPARATE? (Applies only to workstations running VWS.) Specifies that aA separate window be created for debugger input and output. This= feature is useful when debugging screen-oriented programs,@ because it moves all debugger displays out of the window thatB contains the program's input and output. The separate window isD created with a height of 24 lines and a width of 80 columns wide,v) emulating a VT-series terminal screen. NOSEPARATEA (Applies only to workstations running VWS. Default.) SpecifiesD that no separate window be created for debugger input and output. SYMBOLIC9 (Default) Enables symbolic mode. When symbolic mode isB enabled, the debugger displays the locations denoted by addressB expressions symbolically (if possible) and displays instructionA operands symbolically (if possible). EXAMINE/NOSYMBOLIC can beD used to override wSET MODE SYMBOLIC for the duration of an EXAMINE command. NOSYMBOLIC> Disables symbolic mode. When symbolic mode is disabled, the? debugger does not attempt to symbolize numeric addresses (itD does not cause the debugger to convert numbers to names). This is@ useful if you are interested in identifying numeric addresses< rather than their symbolic names (if symbolic names exist@ for those addresses). When symbolic mode is disabled, commandD processing might speed upx somewhat, because the debugger does notA need to convert numbers to names. EXAMINE/SYMBOLIC can be usedA to override SET MODE NOSYMBOLIC for the duration of an EXAMINE command. WAIT? (Default) Enables wait mode. In wait mode the debugger waits< until all processes under its control have stopped before prompting for a new command. NOWAIT> Disable wait mode. In nowait mode, the debugger immediatelyC prompts for new commands even if some or all processes yare still running. 4 Description< For details about the SET MODE command, see the parameter? descriptions. The default values of these modes are the same for all languages. Related commands: EVALUATE EXAMINE DEFINE/KEY DEPOSIT DISPLAY (SET,SHOW,CANCEL) IMAGE (SET,SHOW,CANCEL) MODULE SET PROMPT (SET,SHOW,CANCEL) RADIX (SET,SHOW) TYPE (SHOW,CANCEL) MODE SYMBOLIZE 4 Examplez DBG> SET MODE SCREEN3 This command puts the debugger in screen mode. 3 MODULEA Loads the symbol records of a module in the current image into1 the run-time symbol table (RST) of that image.& NOTE@ The current image is either the main image (by default) orB the image established as the current image by a previous SET IMAGE command. Format( SET MODULE [module-name[, . . . ]] 4 Parameters { module-name? Specifies a module of the current image whose symbol recordsA are loaded into the RST. Do not use the asterisk (*) wildcard? character. Instead, use the /ALL qualifier. Do not specify a# module name with /ALL or /CALLS. 4 Qualifiers /ALLB Specifies that the symbol records of all modules in the current image be loaded into the RST. /CALLS@ Sets all the modules that currently have routines on the callB stack. If a module is alrea|dy set, /CALLS has no effect on that module. /RELATED /RELATED (default) /NORELATEDA (Applies to Ada programs.) Controls whether the debugger loadsC into the RST the symbol records of a module that is related to aB specified module through a with-clause or subunit relationship.C Once loaded, you can reference names declared in related modulesD within debugger commands exactly as you reference them within the Ada source code. 4 DescriptionB } Symbol records must be present in the RST if the debugger is to@ recognize and properly interpret the symbols declared in yourC program. The process by which the symbol records of a module are2 loaded into the RST is called setting a module.? At debugger startup, the debugger sets the module containing? the transfer address (the main program). By default, dynamicC mode is enabled (SET MODE DYNAMIC). Therefore, the debugger sets@ modules (and images) automatically as the pro ~gram executes soA that you can reference symbols as you need them. Specifically,@ whenever execution is suspended, the debugger sets the moduleD and image containing the routine in which execution is suspended.C In the case of Ada programs, as a module is set dynamically, itsB related modules are also set automatically, by default, to make0 the appropriate symbols accessible (visible).C Dynamic mode makes accessible most of the symbols you might needC to reference. If you need to reference a symbol in a module that* is not already set, proceed as follows:? o If the module is in the current image, use the SET MODULE< command to set the module where the symbol is defined.B o If the module is in another image, use the SET IMAGE commandC to make that image the current image, then use the SET MODULE< command to set the module where the symbol is defined.D If dynamic mode is disabled (SET MODE NODYNAMIC), only the moduleA containin g the transfer address is set automatically. You must$ set any other modules explicitly.> If you use the SET IMAGE command to establish a new currentB image, all modules previously set remain set. However, only theB symbols in the set modules of the current image are accessible.= Symbols in the set modules of other images are temporarily inaccessible.B When dynamic mode is enabled, memory is allocated automaticallyA to accommodate the increasing size of the RST. If dynam ic modeC is disabled, the debugger automatically allocates more memory asA needed when you set a module or an image. Whether dynamic modeC is enabled or disabled, if performance becomes a problem as more? modules are set, use the CANCEL MODULE command to reduce the number of set modules.= If a parameter in a SET SCOPE command designates a program> location in a module that is not already set, the SET SCOPE command sets that module.6 For information specific to Ada programs, type Help Language_Support Ada. Related commands: (SET,SHOW,CANCEL) IMAGE SET MODE [NO]DYNAMIC (SHOW,CANCEL) MODULE 4 Examples 1.DBG> SET MODULE SUB1? This command sets module SUB1 (loads the symbol records of module SUB1 into the RST). 2.DBG> SET IMAGE SHARE3 DBG> SET MODULE MATH DBG> SET BREAK %LINE 31A In this example, the SET IMAGE command makes shareable imageA SHARE3 the current image. T he SET MODULE command sets moduleB MATH in image SHARE3. The SET BREAK command sets a breakpoint on line 31 of module MATH. 3.DBG> SHOW MODULE/SHARE4 module name symbols language size4 FOO yes MACRO 4324 MAIN no FORTRAN 280 . . .4 SHARE$DEBUG no Image 04 SHARE$LIBRTL no Image 04 SHARE$MTHRTL no Image  04 SHARE$SHARE1 no Image 04 SHARE$SHARE2 no Image 0= total modules: 17. bytes allocated: 162280.! DBG> SET MODULE SHARE$SHARE2' DBG> SHOW SYMBOL * IN SHARE$SHARE2B In this example, the SHOW MODULE/SHARE command identifies all? modules in the current image and all shareable images (the= names of the shareable images are prefixed with SHARE$).A The SET MODULE SHARE$SHARE2 command sets the shareable image@ module SHARE$SHARE2. The SHOW SYMBOL command identifies anyA universal symbols defined in the shareable image SHARE2. For9 more information, see the SHOW MODULE/SHARE command. 3 OUTPUT0 Enables or disables a debugger output option. Format( SET OUTPUT output-option[, . . . ] 4 Parameters output-option> Specifies an output option to be enabled or disabled. Valid keywords are as follows:D LOG Specif ies that debugger input and output be recorded= in a log file. If you specify the log file by@ the SET LOG command, the debugger writes to thatB file; otherwise, by default the debugger writes to% SYS$DISK[]:DEBUG.LOG.B NOLOG (Default) Specifies that debugger input and output. not be recorded in a log file.@ SCREEN_LOG Specifies that, while in screen mode, the screenC contents be recorded i n a log file as the screen isB updated. To log the screen contents, you must alsoB specify SET OUTPUT LOG. See the description of the= LOG option regarding specifying the log file.C NOSCREEN_ (Default) Specifies that the screen contents, while> LOG in screen mode, not be recorded in a log file. TERMINAL. NOTE< This parameter is not available in the>  Compaq DECwindows Motif for OpenVMS user0 interface to the debugger.; (Default) Specifies that debugger output be* displayed at the terminal. NOTERMINAL. NOTE< This parameter is not available in the> Compaq DECwindows Motif for OpenVMS user0 interface to the debugger.A Specifies that debugger output , except diagnostic; messages, not be displayed at the terminal.@ VERIFY Specifies that the debugger echo, on the currentC output device, each input command string that it isD executing from a command procedure or DO clause. TheD current output device is by default SYS$OUTPUT (yourD terminal) but can be redefined with the logical name DBG$OUTPUT.A NOVERIFY (Default) Specifies that the debugger not displayC each input command string that it is executing from1 a command procedure or DO clause. 4 Description< Debugger output options control the way in which debugger@ responses to commands are displayed and recorded. For details@ about the SET OUTPUT command, see the parameter descriptions. Related commands: @ (Execute Procedure) (SET,SHOW) ATSIGN (SET,SHOW) LOG SET MODE SCREEN SHOW OUTPUT 4 Example& DBG> SET OUTPUT VERIFY,LOG,NOTERMINAL@ This command specifies that the debugger take the following actions:> o Output each command string that it is executing from a/ command procedure or DO clause (VERIFY)A o Record debugger output and user input in a log file (LOG)= o Not display output at the terminal, except diagnostic messages (NOTERMINAL) 3 PROCESS> Establishes the visible process or enables/disables dynamic process setting.@ Used only when debugging multiprocess programs (kept debugger only). Format* SET PROCESS [process-spec[, . . . ]] 4 Parameters process-specC Specifies a process currently under debugger control. Use any of the following forms:D [%PROCESS_NAME] process- The process name, if that name does notD name contain spaces or lowercase characters.= The process name can includ e the> asterisk (*) wildcard character.D [%PROCESS_NAME] The process name, if that name contains@ "process-name" spaces or lowercase characters. YouD can also use apostrophes (') instead of1 quotation marks (").; %PROCESS_PID process_id The process identifier (PID, a1 hexadecimal number).B [%PROCESS_NUMBER] The number assigned to a process when? process-number it comes under debugger control. AA (or %PROC process- new number is assigned sequentially,A number) starting with 1, to each process. IfB a process is terminated with the EXIT? or QUIT command, the number can be@ assigned again during the debuggingA session. Process numbers appear in a@ S HOW PROCESS display. Processes areC ordered in a circular list so they canA be indexed with the built-in symbolsA %PREVIOUS_PROCESS and %NEXT_PROCESS.6 process-set-name A symbol defined with theD DEFINE/PROCESS_SET command to represent2 a group of processes.? %NEXT_PROCESS The next process after the visible?  process in the debugger's circular* process list.@ %PREVIOUS_PROCESS The process previous to the visible? process in the debugger's circular* process list.C %VISIBLE_PROCESS The process whose stack, register set,C and images are the current context forA looking up symbols, register values,C routine calls, breakpoints, and so on.C You can also use the asterisk (*) wildcard character to specify process set all.< Do not specify a process with the /[NO]DYNAMIC qualifier. 4 Qualifiers /DYNAMIC /DYNAMIC (default) /NODYNAMICC Controls whether dynamic process setting is enabled or disabled.C When dynamic process setting is enabled (/DYNAMIC), whenever theC debugger suspends execution and displays its prompt, the processD in which ex ecution is suspended automatically becomes the visibleB process. When dynamic process setting is disabled (/NODYNAMIC),B the visible process remains unchanged until you specify another0 process with the SET PROCESS/VISIBLE command. /VISIBLEA Makes the specified process the visible process. This switchesB your debugging context to the specified process, so that symbol> lookups and the setting of breakpoints, and so on, are done@ in the context of that process. When using /VISIBLE, you must specify one process. 4 DescriptionC The SET PROCESS command establishes the visible process, defines; the current process set, or defines the visible process.B By default, commands are executed in the context of the visible@ process (the process that is your current debugging context).B Symbol lookups, the setting of breakpoints, and so on, are done) in the context of the visible process.B Dynamic process setting is enabled by default and is controlled> with /[NO]DYNAMIC. When dynamic process setting is enabled,@ whenever the debugger suspends program execution and displaysB its prompt, the process in which execution is suspended becomes% the visible process automatically. Related commands: CALL EXIT GO QUIT SHOW PROCESS STEP 4 Example all> SET PROCESS TEST_Y all> SHOW PROCESS, Number Name State Current PC/ * 2 TEST_Y break PROG\%LINE 71 all>D The SET PROCESS TEST_Y command makes process TEST_Y the visibleA process. The SHOW PROCESS command displays information about$ the visible process by default. 3 PROMPTB Changes the debugger prompt string to your personal preference. Format# SET PROMPT [prompt-parameter] 4 Parameters prompt-parameterB Specifies the new prompt string. If the string contains spaces,C semicolons (;), or lowercase characters, you must enclose it inC quotation marks (") or apostrophes ('). If you do not specify a7 string, the current prompt string remains unchanged.@ By default, the prompt string is DBG> when debugging a single process program.A By default, when debuggging a multiprocess program, the promptD string is the name of the current process set followed by a rightD angle bracket (>). You should not use the SET PROMPT command when# debugging multiprocess programs. 4 Qualifiers /POP /POP /NOPOP (default)A (Applies only to workstations running VWS.) The /POP qualifierB causes the debugger window to pop over other windows and becomeD attached to the keyboard when the debugger prompts for input. TheB /NOPOP qualifier disables this behavior (the debugger window isD not popped over other windows and is not attached to the keyboard6 automatically when the debugger prompts for input). 4 DescriptionC The SET PROMPT command enables you to tailor the debugger prompt( string to your individual preference.B If you are debugging a multiprocess program, you should not use the SET PROMPT command.C If you are using the debugger at a workstation, /[NO]POP enablesB you to control whether the debugger window is popped over other3 windows whenever the debugger prompts for input. Related commands: (SET,SHOW) PROCESS 4 Examples 1.DBG> SET PROMPT "$ " $ SET PROMPT "d b g : "  d b g : SET PROMPT "DBG> " DBG>C In this example, the successive SET PROMPT commands change theC debugger prompt from "DBG>" to "$", to "d b g :", then back to "DBG>". 3 RADIXC Establishes the radix for the entry and display of integer data.B When used with /OVERRIDE, it causes all data to be displayed as' integer data of the specified radix. Format SET RADIX radix 4 Parameters radix? Specifies the radix to be est ablished. Valid keywords are as follows:( BINARY Sets the radix to binary.A DECIMAL Sets the radix to decimal. This is the default forA all languages except BLISS, MACRO-32, and MACRO-64 (Alpha only).6 DEFAULT Sets the radix to the language default.' OCTAL Sets the radix to octal.A HEXADECIMAL Sets the default radix to hexadecimal. This is the? default for BLISS, MACRO-32, and MACRO-64 (Alpha only). 4 Qualifiers /INPUTB Sets only the input radix (the radix for entering integer data) to the specified radix. /OUTPUT? Sets only the output radix (the radix for displaying integer data) to the specified radix. /OVERRIDEC Causes all data to be displayed as integer data of the specified radix. 4 DescriptionC The current radix setting influences how the debugger interprets7 and displays integer data in the following contex ts:= o Integer data that you specify in address expressions or language expressions.@ o Integer data that is displayed by the EXAMINE and EVALUATE commands.C The default radix for both data entry and display is decimal forB most languages. On VAX processors, the exceptions are BLISS and@ MACRO-32, which have a default radix of hexadecimal. On Alpha@ processors, the exceptions are BLISS, MACRO-32, and MACRO-64,- which have a default radix of hexadecimal. ; The SET RADIX command enables you to specify a new radix? for data entry or display (the input radix and output radix, respectively).; If you do not specify a qualifier, the SET RADIX commandA changes both the input and output radix. If you specify /INPUT= or /OUTPUT, the command changes the input or output radix, respectively.D Using SET RADIX/OVERRIDE changes only the output radix but causesD all data (not just data that has an integer type) to be displayed * as integer data of the specified radix.B Except when used with /OVERRIDE, the SET RADIX command does notB affect the interpretation or display of noninteger values (such' as real or enumeration type values).9 The EVALUATE, EXAMINE, and DEPOSIT commands have radixD qualifiers (/BINARY, /HEXADECIMAL, and so on) which enable you toC override, for the duration of that command, any radix previously4 established with SET RADIX or SET RADIX/OVERRIDE.C You can also use the built-in symbols %BIN, %DEC, %HEX, and %OCTB in address expressions and language expressions to specify that? an integer literal should be interpreted in binary, decimal, hexadecimal, or octal radix. Related commands: DEPOSIT EVALUATE EXAMINE (SET,SHOW,CANCEL) MODE (SHOW,CANCEL) RADIX 4 Examples 1.DBG> SET RADIX HEXA This command sets the radix to hexadecimal. This means that,= by default, integer data is interpreted and displayed in hexadecimal radix. 2.DBG> SET RADIX/INPUT OCT? This command sets the radix for input to octal. This meansB that, by default, integer data that is entered is interpreted in octal radix. 3.DBG> SET RADIX/OUTPUT BINA This command sets the radix for output to binary. This meansA that, by default, integer data is displayed in binary radix.$ 4.DBG> SET RADIX/OVERRIDE DECIMAL@ This command sets the override radix to decimal. This meansB that, by default, all data (not just data that has an integer0 type) is displayed as decimal integer data. 3 SCOPEA Establishes how the debugger looks up symbols (variable names,B routine names, line numbers, and so on) when a path-name prefix is not specified. Format" SET SCOPE location[, . . . ] 4 Parameters location6 Denotes a program region (scope) to be used for theA interpretation of symbols that you specify with out a path-name= prefix. A location can be any of the following, unless you specify /CURRENT or /MODULE.> path-name Specifies the scope denoted by the path-name< prefix prefix. A path-name prefix consists of the? names of one or more nesting program elements@ (module, routine, block, and so on), with each> name separated by a backslash character (\).? When a path-name prefix consists of more thanA  one name, list a nesting element to the left ofD the backslash and a nested element to the right ofD the backslash. A common path-name prefix format is( module\routine\block\.D If you specify only a module name and that name isA the same as the name of a routine, use /MODULE;> otherwise, the debugger assumes that you are) specifying the routine.B n  Specifies the scope denoted by the routine whichA is n levels down the call stack (n is a decimalC integer). A scope specified by an integer changesB dynamically as the program executes. The value 0B denotes the routine that is currently executing,A the value 1 denotes the caller of that routine,B and so on down the call stack. The default scope@ search list is 0,1 ,2, . . . ,n, where n is the4 number of calls in the call stack.@ \ Specifies the global scope-that is, the set ofC (backslash) all program locations in which a global symbol isB known. The definition of a global symbol and the= way it is declared depends on the language.C When you specify more than one location parameter, you establishC a scope search list. If the debugger cannot interpret the symbol= using the first parameter, it uses the next parameter, andC continues using parameters in order of their specification untilA it successfully interprets the symbol or until it exhausts the parameters specified. 4 Qualifiers /CURRENTB Establishes a scope search list that is like the default searchA list (0,1,2, . . . ,n), numeric scope specified as the commandC parameter. Scope 0 is the PC scope, and n is the number of calls in the call stack.C When using SET SCOPE/CURRENT, note the following conventions and behavior:> o The default scope search list must be in effect when theC command is entered. To restore the default scope search list,% enter the CANCEL SCOPE command.@ o The command parameter specified must be one (and only one)" decimal integer from 0 to n.@ o In screen mode, the command updates the predefined source,< instruction, and register displays SRC, INST, and REG,B respectively, to show the routine on the call stack in which# symbol searches are to start.< o The default scope search list is restored when program execution is resumed. /MODULEB Indicates that the name specified as the command parameter is aC module name and not a routine name. You need to use /MODULE onlyA if you specify a module name as the command parameter and that4 module name is the same as the name of a routine. 4 DescriptionA By default, the debugger looks up  a symbol specified without aC path-name prefix according to the scope search list 0,1,2, . . .= ,n, where n is the number of calls in the call stack. ThisA scope search list is based on the current PC value and changes@ dynamically as the program executes. The default scope searchD list specifies that a symbol lookup such as EXAMINE X first looksB for X in the routine that is currently executing (scope 0, alsoA known as the PC scope); if no X is visible there, the debuggerD  looks in the caller of that routine (scope 1), and so on down theB 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.< In most cases, this default scope search list enables you? to resolve ambiguities in a predictable, natural way that isD consistent with language rules. But if you cannot access a symbol> that is defined multiple times, use either of the following techniques:? o Specify the symbol with a path-name prefix. The path-name@ prefix consists of any nesting program units (for example,D module\routine\block) that are necessary to specify the symbol uniquely. For example: DBG> EXAMINE MOD4\ROUT3\X DBG> TYPE MOD4\27@ o Establish a new default scope (or a scope search list) for@ symbol lookup by using the SET SCOPE command. You can then> specify the symbol without using a path-name prefix. For example: DBG> SET SCOPE MOD4\ROUT3 DBG> EXAMINE X DBG> TYPE 27 4 Description,_Continued...A The SET SCOPE command is useful in those cases where otherwiseC you would need to use a path name repeatedly to specify symbols.A To restore the default scope search list, use the CANCEL SCOPE command.C When the default scope search list is in effect, you can use theB SET SCOPE/CURRENT command to specify that symbol searches startD at a numeric scope other than scope 0, relative to the call stack (for example, scope 2).A When you use the SET SCOPE command, the debugger searches onlyC the program locations you specify explicitly, unless you specifyD /CURRENT. Also, the scope or scope search list established with aD SET SCOPE command remains in effect until you restore the defaultD scope search list or enter another SET SCOPE command. However, ifB you specify /CURRENT, the default scope  search list is restored) whenever program execution is resumed.D The SET SCOPE command updates a screen-mode source or instruction( display only if you specify /CURRENT.> If a name you specify in a SET SCOPE command is the name ofB both a module and a routine, the debugger sets the scope to theB routine. In such cases, use the SET SCOPE/MODULE command if you' want to set the scope to the module.D If you specify a module name in a SET SCOPE command, the debuggerB sets that module if it is not already set. However, if you wantC only to set a module, use the SET MODULE command rather than the@ SET SCOPE command, to avoid the possibility of disturbing the current scope search list.@ For information specific to Ada programs, type Help Language_ Support Ada. Related commands: CANCEL ALL SEARCH SET MODULE (SHOW,CANCEL) SCOPE SHOW SYMBOL SYMBOLIZE TYPE 4 Examples 1.DBG> EXAMINE Y0 %DEBUG-W-NOUNIQUE, symbol 'Y' is not unique DBG> SHOW SYMBOL Y data CHECK_IN\Y data INVENTORY\COUNT\Y# DBG> SET SCOPE INVENTORY\COUNT DBG> EXAMINE Y INVENTORY\COUNT\Y: 347.15 DBG>@ In this example, the first EXAMINE Y command indicates thatC symbol Y is defined multiple times and cannot be resolved fromD the current scope search list. The SHOW SYMBOL command displaysB the different declarations of symbol Y. The SET SCOPE command? directs the debugger to look for symbols without path-nameB prefixes in routine COUNT of module INVENTORY. The subsequent7 EXAMINE command can now interpret Y unambiguously. 3 SEARCH@ Establishes default qualifiers (/ALL or /NEXT, /IDENTIFIER or# /STRING) for the SEARCH command. Format) SET SEARCH search-default[, . . . ] 4 Parameters search-default@ Specifies a default to be established for the SEARCH command.A  Valid keywords (which correspond to SEARCH command qualifiers) are as follows:C ALL Subsequent SEARCH commands are treated as SEARCH/ALL,& rather than SEARCH/NEXT.7 IDENTIFIER Subsequent SEARCH commands are treated as; SEARCH/IDENTIFIER, rather than SEARCH/STRING.A NEXT (Default) Subsequent SEARCH commands are treated as2 SEARCH/NEXT, rather than SEARCH/ALL.A STRING (Default) Subsequent SEARCH commands are treated as;  SEARCH/STRING, rather than SEARCH/IDENTIFIER. 4 Description< The SET SEARCH command establishes default qualifiers forC subsequent SEARCH commands. The parameters that you specify withB SET SEARCH have the same names as the qualifiers for the SEARCH@ command. The qualifiers determine whether the SEARCH command:B (1) searches for all occurrences of a string (ALL) or only theB next occurrence (NEXT); and (2) displays any occurrence of theC string (STRING) or only those occurrences in which the string isC not bounded on either side by a character that can be part of an3 identifier in the current language (IDENTIFIER).B You can override the current SEARCH default for the duration ofB a single SEARCH command by specifying other qualifiers. Use the? SHOW SEARCH command to identify the current SEARCH defaults. Related commands: SEARCH (SET,SHOW) LANGUAGE SHOW SEARCH 4 Example DBG> SHOW SEARCH9 search settings: search for next occurrence, as a string DBG> SET SEARCH IDENTIFIER 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 SET SEARCH IDENTIFIER command directs> the debugger to search for an occurrence of the string inA the specified range but display the string only if it is notA bounded on either side by a character that can be part of an( identifier in the current language.B The SET SEARCH ALL command directs the debugger to search forA (and display) all occurrences of the string in the specified range. 3 SOURCEC Specifies a directory search list, a directory search method, or- both a list and a method for source files. Format) SET SOURCE directory-spec[, . . . ] 4 Parameters directory-specA Specifies any  part of an OpenVMS file specification (typically= a device/directory) that the debugger is to use by default@ when searching for a source file. For any part of a full fileC specification that you do not supply, the debugger uses the fileC specification stored in the module's symbol record (that is, the@ file specification that the source file had at compile time).@ If you specify more than one directory in a single SET SOURCE> command, you create a source directory search list (you canB also specify a search list logical name that is defined at your@ process level). In this case, the debugger locates the sourceD file by searching the first directory specified, then the second,A and so on, until it either locates the source file or exhausts the list of directories. 4 Qualifiers /DISPLAY= Specifies the directory search list used when the debugger@ displays source code. The default display search directory is the compilation directory. /EDITC Specifies the directory search list used during execution of theD debugger's EDIT command. The default edit search directory is the compilation directory. /EXACT /EXACT (default)@ Specifies the directory search method used. In this case, theA debugger searches for the exact version of the source file, as* indicated in the debugger symbol table. /LATEST@ Specifies the directory search method used. In this case, theD debugger searches for the latest version of the source file, that6 is, the highest-numbered version in your directory. /MODULE /MODULE=module-nameC Specifies the directory search list used only for the designatedD module. You can append one or more of the qualifiers listed above$ to the SET SOURCE/MODULE command. /ORIGINAL? (Applies to STDL programs only. Requires installation of theC Correlation Facility (a separate layered product) and invocationA o f the kept debugger.) Specifies that the debugger display the@ original STDL source file, rather than the intermediate files$ produced during STDL compilation. 4 DescriptionC By default, the debugger expects a source file to be in the sameA directory it was in at compile time. If a source file has beenA moved to a different directory since compile time, use the SET? SOURCE command to specify a directory search list and search method to locate the file.' Specifying the Directory Search List< On OpenVMS Version 6.1 and later, a complete OpenVMS file* specification has the following format:= node::device:[directory]file-name.file-type;version-number? This format reflects the DECnet node name functionality used< in the default version of DECnet shipped with the OpenVMS= operating system. For more information, see the DECnet for OpenVMS Networking Manual.> On OpenVMS systems running Version 6.1 or later and DECnet-> Plu s for OpenVMS, a complete file specification can include@ expanded node designations, called full names. Full names areD hierarchically structured DECnet-Plus for OpenVMS node names that@ can be stored in a DECdns naming service. Full names can be a6 maximum of 255 bytes long, in the following format:0 namespace:.directory ... .directory.node-nameC In this syntax statement, namespace identifies the global naming= service, directory ... .directory defines the hierarchicalA  directory path within the naming service, and node-name is the, specific object defining the DECnet node.A For information on full names and suggestions for setting up a@ system of names, see the OpenVMS System Manager's Manual. ForB information on DECnet-Plus for OpenVMS, see the DECnet-Plus for) OpenVMS Introduction and User's Guide.> If the full file specification of a source file exceeds 255@ characters, the debugger cannot locate the file. You can workC around this  problem by first defining a logical name "X" (at DCLC level) to expand to your long file specification, and then using the SET SOURCE X command.? A SET SOURCE command with neither the /DISPLAY nor the /EDITB qualifier changes both the display and edit search directories.A When compiling a program with the /DEBUG qualifier, if you useA a rooted-directory logical name to specify the location of theA source file, make sure that it is a concealed rooted-directoryD logical name. If it is not concealed and you move the source fileB to another directory after compilation, you cannot then use theA debugger SET SOURCE command to specify the new location of the source file.C To create a concealed rooted-directory logical name, use the DCLA command DEFINE with the /TRANSLATION_ATTR=CONCEALED qualifier. 4 Description,_Continued...) Specifying the Directory Search Method@ When you issue a SET SOURCE command, be aware that one of theA two qualifiers -/LATEST or /EXACT-will always be active. These< qualifiers affect the debugger search method. The /LATEST@ qualifier directs the debugger to search for the version last@ created (the highest-numbered version in your directory). TheB /EXACT qualifier directs the debugger to search for the versionC last compiled (the version recorded in the debugger symbol table= created at compile time). For example, a SET SOURCE/LATEST? command might search for SORT.FOR;3 whi le a SET SOURCE/EXACT' command might search for SORT.FOR;1.B If the debugger locates this version using the directory search? list, it checks that the creation or revision date and time,B file size, record format, and file organization are the same asB the original compile-time source file. If these characteristicsB match, the debugger concludes that the original source file has% been located in its new directory.A If the debugger cannot locate this version using the di rectoryD search list, it identifies the file that has the closest revision> date and time (if such a file exists in that directory) and@ issues a NOTORIGSRC message ("original version of source file5 not found") when first displaying the source code.! Specifying the /EDIT QualifierD The /EDIT qualifier is needed when the files used for the display> of source code are different from the files to be edited byB using the EDIT command. This is the case with Ada programs. For? Ada programs, the (SET, SHOW, CANCEL) SOURCE commands affect< the search of files used for source display (the "copied"@ source files in Ada program libraries); the (SET,SHOW,CANCEL)A SOURCE/EDIT commands affect the search of the source files youC edit when using the EDIT command. If you use /MODULE with /EDIT,7 the effect of /EDIT is further qualified by /MODULE.4 For information specific to Ada programs, see the# Language_Support Ada help topic.% Specifying the /ORIGINAL Qualifier= Before you can use the /ORIGINAL qualifier in a SET SOURCEA command, the Correlation Facility (a separate layered product)B must be installed on your system. Refer to Correlation FacilityB documentation for information on creating a correlation library before debugging.C Then, invoke the kept debugger and issue the SET SOURCE/ORIGINAL command as follows: $ DEBUG/KEEP DBG> SET SOURCE/ORIGINAL DBG> RUN filename.EXEB After issuing these commands, you can debug STDL source code in? the same way you debug any other supported language program. Related commands: (SHOW,CANCEL) SOURCE 4 Examples 1.DBG> SHOW SOURCE) no directory search list in effect2 DBG> SET SOURCE [PROJA],[PROJB],[PETER.PROJC] DBG> SHOW SOURCE/ source directory list for all modules,. match the latest source file version: [PROJA] [PROJB] [PETER.PROJC]? In this example, the SET SOURCE command specifies that the= debugger should search directories [PROJA], [PROJB], andC [PETER.PROJC], in that order, for the latest version of source files. 2.DBG> SET SOURCE /EXACT DBG> SHOW SOURCE, no directory search list in effect,% match the exact source file DBG> SET SOURCE [JONES] DBG> SHOW SOURCE/ source directory list for all modules,. match the exact source fil e version: [JONES] DBG> CANCEL SOURCE /EXACT DBG> SHOW SOURCE0 source directory list for all modules,/ match the latest source file version: [JONES]@ In this example, the SET SOURCE/EXACT command establishes aA search method (exact version) that remains in effect for theD SET SOURCE [JONES] command. The CANCEL SOURCE/EXACT command notD only cancels SET SOURCE/EXACT command, but also affects the SET SOURCE [JONES] command. 3 STEPC Establishes default qualifiers (/LINE, /INTO, and so on) for the STEP command. Format% SET STEP step-default[, . . . ] 4 Parameters BRANCHC Subsequent STEP commands are treated as STEP/BRANCH (step to the next branch instruction). CALLA Subsequent STEP commands are treated as STEP/CALL (step to the next call instruction). EXCEPTIONB Subsequent STEP commands are treated as STEP/EXCEPTION (step to the next exception). INSTRUCTIOND Subsequent STEP commands are treated as STEP/INSTRUCTION (step to the next instruction).C On VAX processors, you can also specify one or more instructions: (opcode[, . . . ]). The debugger then steps to the next% instruction in the specified list.A On VAX processors, if you specify a vector instruction, do not> include an instruction qualifier (/UNALIGNED_DATA, /VECTOR_C INSTRUCTION, /MODIFY, /0, or /1)) with the instruction mnemonic. INTO? Subsequent STEP commands are treated as STEP/INTO (step into; called routines) rather than STEP/OVER (step over called? routines). When INTO is in effect, you can qualify the types< of routines to step into by using the [NO]JSB, [NO]SHARE,; and [NO]SYSTEM parameters, or by using the STEP/[NO]JSB,8 STEP/[NO]SHARE, and STEP/[NO]SYSTEM command/qualifierD combinations (the latter three take effect only for the immediate STEP command). JSB@ (VAX only) If INTO is in effect, subsequent STEP commands are? treated as STEP/INTO/JSB (step into routines called by a JSBC instruction as well as those called by a CALL instruction). This1 is the default for all languages except DIBOL. NOJSB= (VAX only; Default.) If INTO is in effect, subsequent STEP> commands are treated as STEP/INTO/NOJSB (step over routines@ called by a JSB instruction, but step into routines called by6 a CALL instruction). This is the default for DIBOL. LINED (Default) Subsequent STEP commands are treated as STEP/LINE (step to the next line). OVERD (Default) Subsequent STEP commands are treated as STEP/OVER (stepD over all called routines) rather than STEP/INTO (step into called routines). RETURNC Subsequent STEP commands are treated as STEP/RETURN (step to theA return instruction of the routine that is currently executing-C that is, up to the point just prior to transferring control back to the calling routine). SEMANTIC_EVENT7 (Alpha only) Subsequent STEP commands are treated as9 STEP/SEMANTIC_EVENT (step to the next semantic event). SHARE; (Default) If INTO is in effect, subsequent STEP commands? are treated as STEP/INTO/SHARE (step into called routines in; shareable images as well as into other called routines). NOSHARE@ If INTO is in effect, subsequent STEP commands are treated asD STEP/INTO/NOSHARE (step over called routines in shareable images,! but step into other routines). SILENT? Subsequent STEP commands are treated as STEP/SILENT (after aE step, do not display the "stepped to . . . " message or the source" line for the current location). NOSILENTB (Default) Subsequent STEP commands are treated as STEP/NOSILENT; (after a step, display the "stepped to . . . " message). SOURCE@ (Default) Subsequent STEP commands are treated as STEP/SOURCED ( after a step, display the source line for the current location).@ Also, subsequent SET BREAK, SET TRACE, and SET WATCH commands= are treated as SET BREAK/SOURCE, SET TRACE/SOURCE, and SET> WATCH/SOURCE, respectively (at a breakpoint, tracepoint, orA watchpoint, display the source line for the current location). NOSOURCEA Subsequent STEP commands are treated as STEP/NOSOURCE (after aB step, do not display the source line for the current location).@ Also, subsequent SET BREAK, SET TRACE, and SET WATCH commands= are treated as SET BREAK/NOSOURCE, SET TRACE/NOSOURCE, andA SET WATCH/NOSOURCE, respectively (at a breakpoint, tracepoint,@ or watchpoint, do not display the source line for the current location). SYSTEM? (Default) If INTO is in effect, subsequent STEP commands areC treated as STEP/INTO/SYSTEM (step into called routines in system; space (P1 space) as well as into other called routines). NOSYSTEM@ If INTO is in effect, subsequent STEP commands are treated asA STEP/INTO/NOSYSTEM (step over called routines in system space,! but step into other routines). VECTOR_INSTRUCTION= (VAX only) On VAX processors, subsequent STEP commands are> treated as STEP/VECTOR_INSTRUCTION (step to the next vector instruction). 4 Description: The SET STEP command establishes default qualifiers for? subsequent STEP commands. The parameters that you specify inA the SET STEP command have the same names as the qualifiers forC the STEP command. The following parameters affect where the STEP+ command suspends execution after a step: BRANCH CALL EXCEPTION INSTRUCTION/ INSTRUCTION=(opcode[, . . . ]) (VAX only) LINE RETURN! SEMANTIC_EVENT (Alpha only)# VECTOR_INSTRUCTION (VAX only)B The following parameters affect what output is seen when a STEP command is executed: [NO]SILENT [NO]SOURCEB  The following parameters affect what happens at a routine call: INTO [NO]JSB (VAX only) OVER [NO]SHARE [NO]SYSTEMC You can override the current STEP defaults for the duration of aC single STEP command by specifying other qualifiers. Use the SHOW6 STEP command to identify the current STEP defaults.? Enabling screen mode by pressing PF1-PF3 enters the SET STEP; NOSOURCE command as well as the SET MODE SCREEN command.B Therefore, any display of source code in output and DO displays> that would result from a STEP command or from a breakpoint,> tracepoint, or watchpoint being triggered is suppressed, to0 eliminate redundancy with the source display.@ On VAX systems, the STEP/OVER command may sometimes result inB stepping into, not over, Fortran Run-Time Library routines. For5 more information, see the OpenVMS Debugger Manual.  Related commands: SHOW STEP STEP 4 Examples' 1.DBG> SET STEP INSTRUCTION,NOSOURCEC This command causes the debugger to execute the program to the@ next instruction when a STEP command is entered, and not to9 display lines of source code with each STEP command.- 2.DBG> SET STEP LINE,INTO,NOSYSTEM,NOSHARE? This command causes the debugger to execute the program toC the next line when a STEP command is entered, and to step into@ called routines in user space only. The debugger steps over6 routines in system space and in shareable images. 3 TASKD Changes characteristics of one or more tasks of a tasking program' (also called a multithread program).& NOTE; SET TASK and SET THREAD are synonymous commands. They perform identically. Format$ SET TASK [task-spec[, . . . ]] 4 Parameters task-spec: Specifies a task value. Use any of the following forms:) o When the event facility is THREADS:C - A task (thread) ID number as declared in the program, or a: language expression that yields a task ID number.B - A task ID number (for example, 2), as indicated in a SHOW TASK display.% o When the event facility is ADA:> - A task (thread) name as declared in the program, or aD language expression that yields a task value. You can use a path name.A - A task ID (for example, %TASK 2), as indicated in a SHOW TASK disp lay.1 o One of the following task built-in symbols:B %ACTIVE_TASK The task that runs when a GO, STEP, CALL, or, EXIT command executes.D %CALLER_TASK (Applies only to Ada programs.) When an acceptB statement executes, the task that called theA entry associated with the accept statement.< %NEXT_TASK The task after the visible task in theA debugger's task list. The ordering of ta sksA is arbitrary but consistent within a single' run of a program.B %PREVIOUS_ The task previous to the visible task in the+ TASK debugger's task list.D %VISIBLE_TASK The task whose call stack and register set areA the current context for looking up symbols,B register values, routine calls, breakpoints, and so on.D Do not use the asterisk (*) wildcard character. Instead, use theB /ALL qualifier. Do not specify a task with /ALL or /TIME_SLICE.? If you do not specify a task or /ALL with /ABORT, /[NO]HOLD,8 /PRIORITY, or /RESTORE, the visible task is selected. 4 Qualifiers /ABORT@ Marks the specified tasks for termination. Termination occurs= at the next allowable point after a specified task resumes execution.D For Compaq Ada tasks, the effect is identical to executing an AdaA abort statement for the tasks specified and causes these tasksD to be marked as abnormal. Any dependent tasks are also marked for termination.8 For POSIX Threads threads, use the following command: PTHREAD tset -c thread-number@ You can get help on POSIX Threads debugger commands by typing PTHREAD HELP.D See the Guide to POSIX Threads Library for more information about$ using the POSIX Threads debugger. /ACTIVEC Makes the specified task the active task, which is the task  thatD runs when a STEP, GO, CALL, or EXIT command executes. This causes? a task switch to the new active task and makes that task theD visible task. The specified task must be in either the RUNNING or> READY state. When using /ACTIVE, you must specify one task.A The SET TASK/ACTIVE command is supported for Compaq Ada on VAXD only. For POSIX Threads programs or Compaq Ada on Alpha programs,) use one of the following alternatives:? o For query-type actions, use the SET TASK/VISIBLE command.@ o To gain control of execution, use a strategic placement of breakpoints.4 o Use the PTHREAD tset -a thread-number command.@ You can get help on POSIX Threads debugger commands by typing PTHREAD HELP.D See the Guide to POSIX Threads Library for more information about$ using the POSIX Threads debugger. /ALL- Applies the SET TASK command to all tasks. /HOLD /HOLD /NOHOLD (default) When the event@  facility is THREADS, use the PTHREAD tset -h thread-number or- the PTHREAD tset -n thread-number command.> Controls whether a specified task is put on hold. The /HOLD+ qualifier puts a specified task on hold.C Putting a task on hold prevents a task from entering the RUNNING; state. A task put on hold is allowed to make other state? transitions; in particular, it can change from the SUSPENDED to the READY state.< A task already in the RUNNING state (the active task)  canB continue to execute as long as it remains in the RUNNING state,@ even though it is put on hold. If the task leaves the RUNNINGA state for any reason (including expiration of a time slice, ifD time slicing is enabled), it will not return to the RUNNING state* until released from the hold condition.@ You can override the hold condition and force a task into theB RUNNING state with the SET TASK/ACTIVE command even if the task is on hold.= The /NOHOLD qualifier releases a specified task from hold.@ You can get help on POSIX Threads debugger commands by typing PTHREAD HELP.D See the Guide to POSIX Threads Library for more information about$ using the POSIX Threads debugger. /PRIORITY /PRIORITY=n6 When the event facility is THREADS, use the PTHREAD! tset -s thread-number command.C Sets the priority of a specified task to n, where n is a decimal@ integer from 0 to 15. This does not prevent the priority from@ later changing in the course of execution, for example, while? executing an Ada rendezvous or POSIX Threads synchronizationD event. This qualifier does not affect a task's scheduling policy.@ You can get help on POSIX Threads debugger commands by typing PTHREAD HELP.D See the Guide to POSIX Threads Library for more information about$ using the POSIX Threads debugger. /RESTORE@ (Compaq Ada on VAX only) Restores the priority of a specifiedC task to the priority it had when it was created. Does not affect' the scheduling priority of the task. /TIME_SLICE /TIME_SLICE=t< Supported for Compaq Ada on VAX only. Sets the time-slice@ duration to the value t, where t is a decimal integer or real@ value representing seconds. The set value overrides the time-@ slice value specified in the program, if any. To disable timeC slicing, use /TIME_SLICE=0.0. /TIME_SLICE is valid only when the event facility is ADA. /VISIBLE?  Makes the specified task the visible task, which is the task@ whose call stack and register set are the current context forC looking up symbols, register values, routine calls, breakpoints,B and so on. Commands such as EXAMINE are directed at the visible@ task. The /VISIBLE qualifier does not affect the active task.2 When using /VISIBLE, you must specify one task. 4 DescriptionA The SET TASK command enables you to establish the visible taskA and the active task, control the execution of tasks, and cause2 task state transitions, directly or indirectly.> To determine the current state of a task, use the SHOW TASKB command. The possible states are RUNNING, READY, SUSPENDED, and TERMINATED. Related commands: DEPOSIT/TASK EXAMINE/TASK SET BREAK/EVENT SET TRACE/EVENT (SET, SHOW) EVENT_FACILITY SHOW TASK|THREAD 4 Examples! 1.DBG> SET TASK/ACTIVE %TASK 3C (Event facility = ADA) This command makes task 3 (task ID = 3) the active task. 2.DBG> PTHREAD tset -a 3D (Event facility = THREADS) This command makes task 3 (task ID = 3) the active task. 3.DBG> SET TASK %NEXT_TASKA This command makes the next task in the debugger's task listC the visible task. (The /VISIBLE qualifier is a default for the SET TASK command.) 4.DBG> SET TASK/HOLD/ALL! DBG> SET TASK/ACTIVE %TASK 1 DBG> GO . . .! DBG> SET TASK/ACTIVE %TASK 3 DBG> STEP . . .; In this example, the SET TASK/HOLD/ALL command freezes= the state of all tasks except the active task. Then, SET@ TASK/ACTIVE is used selectively (along with the GO and STEP? commands) to observe the behavior of one or more specified tasks in isolation. 3 TERMINALB Sets the terminal-screen height or width that the debugger uses+ when it formats screen and other output.&  NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format SET TERMINAL 4 Qualifiers /PAGE /PAGE:n? Specifies that the terminal screen height should be set to n/ lines. You can use any value from 18 to 100. /WIDTH /WIDTH:n> Specifies that the terminal screen width should be set to n? columns. You can use any value from 20 to 255. For a VT100-,@ VT200-, or VT300 series terminal, n is typically either 80 or 132. /WRAP? Tells the debugger to wrap output text in predefined displayA OUT at the column specified by the /WIDTH qualifier. If you doC not specify /WIDTH in the current command, /WRAP defaults to the %WIDTH setting. 4 Description@ The SET TERMINAL command enables you to define the portion ofC the screen that the debugger has available for formatting screen output.> This command is useful with VT100-, VT200-, or VT300-seriesC terminals, where you can set the screen width to typically 80 orB 132 columns. It is also useful with workstations, where you canD modify the size of the terminal-emulator window that the debugger uses.D You must specify at least one qualifier. You can specify all. The4 /PAGE and /WIDTH qualifiers each require a value.> When you enter the SET TERMINAL command, all display windowC definitions are automatically adjusted to ref lect the new screenD dimensions. For example, RH1 changes dimensions proportionally to. remain in the top right half of the screen.= Similarly, all "dynamic" display windows are automatically= adjusted to maintain their relative proportions. Note that= all display windows are dynamic unless referenced with the> DISPLAY/NODYNAMIC command. In that case, the display window? retains its current dimensions after subsequent SET TERMINALD commands. However, you can use the DISPLAY command to reconfigure@ the display window (you can also use keypad-key combinations,= such as BLUE-MINUS, to enter predefined DISPLAY commands). Related commands: DISPLAY/[NO]DYNAMIC EXPAND (SET,SHOW,CANCEL) WINDOW SHOW TERMINAL 4 Example DBG> SET TERMINAL/WIDTH:132D This command specifies that the terminal screen width be set to 132 columns. 3 THREADD Changes characteristics of one or more tasks of a tasking program' (also called a multithread program).& NOTE; SET TASK and SET THREAD are synonymous commands. They perform identically. Format$ SET TASK [task-spec[, . . . ]] 4 Parameters task-spec: Specifies a task value. Use any of the following forms:) o When the event facility is THREADS:C - A task (thread) ID number as declared in the program, or a: language expression that yields a task ID number.B - A task ID number (for example, 2), as indicated in a SHOW TASK display.% o When the event facility is ADA:> - A task (thread) name as declared in the program, or aD language expression that yields a task value. You can use a path name.A - A task ID (for example, %TASK 2), as indicated in a SHOW TASK display.1 o One of the following task built-in symbols:B %ACTIVE_TASK The task that runs when a GO, ST EP, CALL, or, EXIT command executes.D %CALLER_TASK (Applies only to Ada programs.) When an acceptB statement executes, the task that called theA entry associated with the accept statement.< %NEXT_TASK The task after the visible task in theA debugger's task list. The ordering of tasksA is arbitrary but consistent within a single' run of a program.B  %PREVIOUS_ The task previous to the visible task in the+ TASK debugger's task list.D %VISIBLE_TASK The task whose call stack and register set areA the current context for looking up symbols,B register values, routine calls, breakpoints, and so on.D Do not use the asterisk (*) wildcard character. Instead, use theB /ALL qualifier. Do not specify a task with /ALL or /TIME_SLICE.? If you do not specify a task or /ALL with /ABORT, /[NO]HOLD,8 /PRIORITY, or /RESTORE, the visible task is selected. 4 Qualifiers /ABORT@ Marks the specified tasks for termination. Termination occurs= at the next allowable point after a specified task resumes execution.D For Compaq Ada tasks, the effect is identical to executing an AdaA abort statement for the tasks specified and causes these tasksD to be marked as abnormal. Any dependent tasks are also marked for termination.8 For POSIX Threads threads, use the following command: PTHREAD tset -c thread-number@ You can get help on POSIX Threads debugger commands by typing PTHREAD HELP.D See the Guide to POSIX Threads Library for more information about$ using the POSIX Threads debugger. /ACTIVEC Makes the specified task the active task, which is the task thatD runs when a STEP, GO, CALL, or EXIT command executes. This causes? a task switch to the new active task and makes that task theD visible task. The specified task must be in either the RUNNING or> READY state. When using /ACTIVE, you must specify one task.A The SET TASK/ACTIVE command is supported for Compaq Ada on VAXD only. For POSIX Threads programs or Compaq Ada on Alpha programs,) use one of the following alternatives:? o For query-type actions, use the SET TASK/VISIBLE command.@ o To gain control of execution, use a strategic placement of breakpoints.4  o Use the PTHREAD tset -a thread-number command.@ You can get help on POSIX Threads debugger commands by typing PTHREAD HELP.D See the Guide to POSIX Threads Library for more information about$ using the POSIX Threads debugger. /ALL- Applies the SET TASK command to all tasks. /HOLD /HOLD /NOHOLD (default) When the event@ facility is THREADS, use the PTHREAD tset -h thread-number or- the PTHREAD tset -n thread-number command.>  Controls whether a specified task is put on hold. The /HOLD+ qualifier puts a specified task on hold.C Putting a task on hold prevents a task from entering the RUNNING; state. A task put on hold is allowed to make other state? transitions; in particular, it can change from the SUSPENDED to the READY state.< A task already in the RUNNING state (the active task) canB continue to execute as long as it remains in the RUNNING state,@ even though it is put on hold. If the t ask leaves the RUNNINGA state for any reason (including expiration of a time slice, ifD time slicing is enabled), it will not return to the RUNNING state* until released from the hold condition.@ You can override the hold condition and force a task into theB RUNNING state with the SET TASK/ACTIVE command even if the task is on hold.= The /NOHOLD qualifier releases a specified task from hold.@ You can get help on POSIX Threads debugger commands by typing PTHREAD HELP.D See the Guide to POSIX Threads Library for more information about$ using the POSIX Threads debugger. /PRIORITY /PRIORITY=n6 When the event facility is THREADS, use the PTHREAD! tset -s thread-number command.C Sets the priority of a specified task to n, where n is a decimal@ integer from 0 to 15. This does not prevent the priority from@ later changing in the course of execution, for example, while? executing an Ada rendezvous or POSIX Threads synchronizationD event. This qualifier does not affect a task's scheduling policy.@ You can get help on POSIX Threads debugger commands by typing PTHREAD HELP.D See the Guide to POSIX Threads Library for more information about$ using the POSIX Threads debugger. /RESTORE@ (Compaq Ada on VAX only) Restores the priority of a specifiedC task to the priority it had when it was created. Does not affect' the scheduling priority of the task. /TIME_SLICE /TIME_SLICE=t< Supported for Compaq Ada on VAX only. Sets the time-slice@ duration to the value t, where t is a decimal integer or real@ value representing seconds. The set value overrides the time-@ slice value specified in the program, if any. To disable timeC slicing, use /TIME_SLICE=0.0. /TIME_SLICE is valid only when the event facility is ADA. /VISIBLE? Makes the specified task the visible task, which is the task@ whose call stack and register set are the current context forC looking up symbols, register values, routine calls, breakpoints,B and so on. Commands such as EXAMINE are directed at the visible@ task. The /VISIBLE qualifier does not affect the active task.2 When using /VISIBLE, you must specify one task. 4 DescriptionA The SET TASK command enables you to establish the visible taskA and the active task, control the execution of tasks, and cause2 task state transitions, directly or indirectly.> To determine the current state of a task, use the SHOW TASKB command. The possible states are RUNNING, READY, SUSPENDED, and TERMINATED. Related commands: DEPOSIT/TASK EXAMINE/TASK SET BREAK/EVENT SET TRACE/EVENT (SET, SHOW) EVENT_FACILITY SHOW TASK|THREAD 4 Examples! 1.DBG> SET TASK/ACTIVE %TASK 3C (Event facility = ADA) This command makes task 3 (task ID = 3) the active task. 2.DBG> PTHREAD tset -a 3D (Event facility = THREADS) This command makes task 3 (task ID = 3) the active task. 3.DBG> SET TASK %NEXT_TASKA This command makes the next task in the debugger's task listC the visible task. (The /VISIBLE qualifier is a default for the SET TASK command.) 4.DBG> SET TASK/HOLD/ALL! DBG> SET TASK/ACTIVE %TASK 1 DBG> GO . . .! DBG> SET TASK/ACTIVE %TASK 3 DBG> STEP . . .; In this example, the SET TASK/HOLD/ALL command freezes= the state of all tasks except the active task. Then, SET@ TASK/ACTIVE is used selectively (along with the GO and STEP? commands) to observe the behavior of one or more specified tasks in isolation. 3 TRACEA Establishes a tracepoint at the location denoted by an address? expression, at instructions of a particular class, or at the" occurrence of specified events. Format. SET TRACE [address-expression[, . . . ]]. [WHEN(conditional-expression)]' [DO(command[; . . . ])] 4 Parameters address-expression@ Specifies an address expression (a program location) at which= a tracepoint is to be set. With high-level languages, this> is typically a line number, a routine name, or a label, and? can include a path name to specify the entity uniquely. MoreC generally, an address expression can also be a memory address orC a register and can be composed of numbers (offsets) and symbols,A as well as one or more operators, operands, or delimiters. For> information about the operators that you can use in address. expressions, type Help Address_Expressions.> Do not specify the asterisk (*) wildcard character. Do not? specify an address expression with the following qualifiers: /ACTIVATING /BRANCH /CALL /EXCEPTION /INSTRUCTION0 /INSTRUCTION=(opcode[, . . . ]) (VAX only) /INTO /[NO]JSB (VAX only)  /LINE /OVER /[NO]SHARE /[NO]SYSTEM /TERMINATING$ /VECTOR_INSTRUCTION (VAX only)B The /MODIFY and /RETURN qualifiers are used with specific kinds of address expressions.A If you specify a memory address or an address expression whose< value is not a symbolic location, check (with the EXAMINE> command) that an instruction actually begins at the byte of@ memory so indicated. If an instruction does not begin at thisA byte, a run-time error can occur when an instruction includingA that byte is executed. When you set a tracepoint by specifyingD an address expression whose value is not a symbolic location, theA debugger does not verify that the location specified marks the beginning of an instruction.B On VAX processors, CALLS and CALLG routines start with an entry mask. conditional-expression: Specifies a conditional expression in the currently setB language that is to be evaluated whenever execu tion reaches theD tracepoint. (The debugger checks the syntax of the expressions inB the WHEN clause when execution reaches the tracepoint, not whenB the tracepoint is set.) If the expression is true, the debuggerA reports that a tracepoint has been triggered. If an action (DOC clause) is associated with the tracepoint, it will occur at this@ time. If the expression is false, a report is not issued, theA commands specified by the DO clause (if one was specified) are4 not executed, and program execution is continued. command@ Specifies a debugger command to be executed as part of the DOD clause when trace action is taken. The debugger checks the syntaxA of the commands in a DO clause when it executes the DO clause," not when the tracepoint is set. 4 Qualifiers /ACTIVATING> Causes the debugger to trace when a new process comes under9 debugger control. See also the /TERMINATING qualifier. /AFTER /AFTER:nB  Specifies that trace action not be taken until the nth time theA designated tracepoint is encountered (n is a decimal integer).A Thereafter, the tracepoint occurs every time it is encounteredA provided that conditions in the WHEN clause (if specified) areA true. The SET TRACE/AFTER:1 command has the same effect as SET TRACE. /BRANCHD Causes the debugger to trace every branch instruction encountered9 during program execution. See also the /INTO and /OVER qualifiers. /CALLB Causes the debugger to trace every call instruction encounteredB during program execution, including the return instruction. See' also the /INTO and /OVER qualifiers. /EVENT /EVENT=event-nameB Causes the debugger to trace the specified event (if that eventA is defined and detected by the current event facility). If youA specify an address expression with /EVENT, causes the debugger@ to trace whenever the specified event occurs for that addressD expression. You cannot specify an address expression with certain event names.? Event facilities are available for programs that call Ada orD SCAN routines or that use POSIX Threads services. To identify theA current event facility and the associated event names, use the SHOW EVENT_FACILITY command. /EXCEPTIONA Causes the debugger to trace every exception that is signaled.D The trace action occurs before any application-declared exception handlers are invoked.> As a result of a SET TRACE/EXCEPTION command, whenever your; program generates an exception, the debugger reports the; exception and resignals the exception, thus allowing any5 application-declared exception handler to execute. /INSTRUCTION /INSTRUCTION2 /INSTRUCTION[=(opcode[, . . . ])] (VAX only)B When you do not specify an opcode, causes the debugger to trace: every instruction encountered during program execution.< (VAX only) If you specify one or more opcodes, causes theC debugger to trace every instruction whose opcode is in the list.9 If you specify a vector instruction, do not include an? instruction qualifier (/UNALIGNED_DATA, /VECTOR_INSTRUCTION,5 /MODIFY, /0, or /1) with the instruction mnemonic.+ See also the /INTO and /OVER qualifiers. /INTO? (Default) Applies only to tracepoints set with the followingD qualifiers (that is, when an address expression is not explicitly speci fied): /BRANCH /CALL /INSTRUCTION0 /INSTRUCTION=(opcode[, . . . ]) (VAX only) /LINE$ /VECTOR_INSTRUCTION (VAX only)@ When used with those qualifiers, /INTO causes the debugger to@ trace the specified points within called routines (as well asA within the routine in which execution is currently suspended).C The /INTO qualifier is the default and is the opposite of /OVER.B When using /INTO, you can further qualify the trace action with8   the /[NO]JSB, /[NO]SHARE, and /[NO]SYSTEM qualifiers. /JSB /JSB /NOJSB< (VAX only) Qualifies /INTO. Use with /INTO and one of the following qualifiers: /BRANCH /CALL /INSTRUCTION% /INSTRUCTION=(opcode[, . . . ]) /LINE /VECTOR_INSTRUCTIOND The /JSB qualifier is the default for all languages except DIBOL.@ It lets the debugger set tracepoints within routines that areC called by the JSB or CALL instruction. The /N OJSB qualifier (the> DIBOL default) specifies that tracepoints not be set within> routines called by JSB instructions. In DIBOL, application-A declared routines are called by the CALL instruction and DIBOL? Run-Time Library routines are called by the JSB instruction. /LINEA Causes the debugger to trace the beginning of each source line? encountered during program execution. See also the /INTO and /OVER qualifiers. /MODIFYA Causes the debugger to trace when an instruction writes to andC changes the value of a location indicated by a specified addressC expression. The address expression is typically a variable name.> The SET TRACE/MODIFY X command is equivalent to SET WATCH X? DO(GO). The SET TRACE/MODIFY command operates under the same restrictions as SET WATCH.A If you specify an absolute address for the address expression,? the debugger might not be able to associate the address with> a particular data object. I n this case, the debugger uses aB default length of 4 bytes. You can change this length, however,C by setting the type to either WORD (SET TYPE WORD, which changes? the default length to 2 bytes) or BYTE (SET TYPE BYTE, which? changes the default length to 1 byte). The SET TYPE LONGWORD2 command restores the default length of 4 bytes. /OVER@ Applies only to tracepoints set with the following qualifiers9 (that is, when an address expression is not explicitly specified): /BRANCH /CALL /INSTRUCTION0 /INSTRUCTION=(opcode[, . . . ]) (VAX only) /LINE$ /VECTOR_INSTRUCTION (VAX only)@ When used with those qualifiers, /OVER causes the debugger to> trace the specified points only within the routine in whichA execution is currently suspended (not within called routines).= The /OVER qualifier is the opposite of /INTO (which is the default). /RETURN@ Causes the debugger to break on the return in struction of theB routine associated with the specified address expression (whichB can be a routine name, line number, and so on). Breaking on theB return instruction enables you to inspect the local environment< (for example, obtain the values of local variables) while= the routine is still active. Note that the view of a local@ environment may differ depending on your architecture. On VAXD processors, this qualifier can only be applied to routines called@ with a CALLS or CAL LG instruction; it cannot be used with JSBB routines. On Alpha processors, this qualifier can be applied to any routine.D The address-expression parameter is an instruction address within? a routine. It can simply be a routine name, in which case it= specifies the routine start address. However, you can alsoC specify another location in a routine, so you can see only those@ returns that are taken after a certain code path is followed.A A SET TRACE/RETURN command cancels a previous SET TRACE if you' specify the same address expression. /SHARE /SHARE (default) /NOSHARE; Qualifies /INTO. Use with /INTO and one of the following qualifiers: /BRANCH /CALL /INSTRUCTION0 /INSTRUCTION=(opcode[, . . . ]) (VAX only) /LINE$ /VECTOR_INSTRUCTION (VAX only)? The /SHARE qualifier permits the debugger to set tracepointsA within shareable image routines as well as other routines. TheB /NOSHARE qualifier specifies that tracepoints not be set within shareable images. /SILENT /SILENT /NOSILENT (default)B Controls whether the "trace . . . " message and the source line@ for the current location are displayed at the tracepoint. TheC /NOSILENT qualifier specifies that the message is displayed. TheC /SILENT qualifier specifies that the message and source line are: not displayed. The /SILENT qualifier overrides /SOURCE. /SOURCE /SOURCE /NOSOURCE (default)? Controls whether the source line for the current location isD displayed at the tracepoint. The /SOURCE qualifier specifies thatB the source line is displayed. The /NOSOURCE qualifier specifies? that the source line is not displayed. The /SILENT qualifier? overrides /SOURCE. See also the SET STEP [NO]SOURCE command. /SYSTEM /SYSTEM (default) /NOSYSTEM; Qualifies /INTO. Use with /INTO and one of the following qualifiers: /BRANCH /CALL /INSTRUCTION0 /INSTRUCTION=(opcode[, . . . ]) (VAX only) /LINE$ /VECTOR_INSTRUCTION (VAX only)@ The /SYSTEM qualifier permits the debugger to set tracepointsC within system routines (P1 space) as well as other routines. TheC /NOSYSTEM qualifier specifies that tracepoints not be set within system routines. /TEMPORARY@ Causes the tracepoint to disappear after it is triggered (the/ tracepoint does not remain permanently set). /TERMINATING@ (Default) Causes the debugger to trace when a process does anA image exit. The debugger gains control and displays its prompt? when the last image of a one-process or multiprocess program- exits. See also the /ACTIVATING qualifier. /VECTOR_INSTRUCTIONC (VAX only) Causes the debugger to trace every vector instruction= encountered during execution. See also the /INTO and /OVER qualifiers. 4 DescriptionC When a tracepoint is triggered, the debugger takes the following actions:< 1. Suspends program execution at the tracepoint location.A 2. If you specified /AFTER when you set the tracepoint, checks@ the AFTER count. If the specified number of counts has notB been reached, execution is resumed and the debugger does not" perform the remaining steps.A 3. Evaluates the expression in a WHEN clause, if you specified: one when you set the tracepoint. If the value of t he@ expression is false, execution is resumed and the debugger+ does not perform the remaining steps.C 4. Reports that execution has reached the tracepoint location byE issuing a "trace . . . " message, unless you specified /SILENT.; 5. Displays the line of source code corresponding to the@ tracepoint, unless you specified /NOSOURCE or /SILENT whenD you set the tracepoint or entered a previous SET STEP NOSOURCE command.@ 6. Executes the commands in a DO clause, if you specified one" when you set the tracepoint. 7. Resumes execution.@ You set a tracepoint at a particular location in your programB by specifying an address expression with the SET TRACE command.? You set a tracepoint on consecutive source lines, classes ofA instructions, or events by specifying a qualifier with the SET? TRACE command. Generally, you must specify either an addressA expression or a qualifier, but not both. Exceptions are /EVENT and /RETURN.? The /LINE qualifier sets a tracepoint on each line of source code.9 The following qualifiers set tracepoints on classes of< instructions. Using these qualifiers and /LINE causes the< debugger to trace every instruction of your program as it8 executes and thus significantly slows down execution. /BRANCH /CALL /INSTRUCTION0 /INSTRUCTION=(opcode[, . . . ]) (VAX only) /RETURN /SYSEMULATE (Alpha only)$ /VECTOR_INSTRUCTION (VAX only)A The following qualifiers set tracepoints on classes of events: /ACTIVATING /EVENT=event-name /EXCEPTION /TERMINATING 4 Description_(Continued...)B The following qualifiers affect what happens at a routine call: /INTO /[NO]JSB (VAX only) /OVER /[NO]SHARE /[NO]SYSTEM?The following qualifiers affect what output is displayed when atracepoint is reached: /[NO]SILENT /[NO]SOURCE= The following qualifiers affect the timing and duration of tracepoints: /AFTER:n /TEMPORARYD Use the /MODIFY qualifier to monitor changes at program locations2 (typically changes in the values of variables).: If you set a tracepoint at a location currently used as; a breakpoint, the breakpoint is canceled in favor of the tracepoint, and conversely.> Tracepoints can be user defined or predefined. User-defined= tracepoints are set explici tly with the SET TRACE command.B Predefined tracepoints, which depend on the type of program youD are debugging (for example, Ada or multiprocess), are established@ automatically when you start the debugger. Use the SHOW TRACEB command to identify all tracepoints that are currently set. Any1 predefined tracepoints are identified as such.? User-defined and predefined tracepoints are set and canceled@ independently. For example, a location or event can have bothB a user-defined and a predefined tracepoint. Canceling the user-D defined tracepoint does not affect the predefined tracepoint, and conversely. Related commands:- (ACTIVATE,DEACTIVATE,SHOW,CANCEL) TRACE CANCEL ALL GO SET BREAK (SET,SHOW) EVENT_FACILITY SET STEP [NO]SOURCE SET WATCH 4 Examples 1.DBG> SET TRACE SUB3? This command causes the debugger to trace the beginning of0 routine SUB3 when that routine is executed. 2.DBG> SET TRACE/BRANCH/CALL; This command causes the debugger to trace every BRANCH> instruction and every CALL instruction encountered during program execution.. 3.DBG> SET TRACE/LINE/INTO/NOSHARE/NOSYSTEM? This command causes the debugger to trace the beginning ofB every source line, including lines in called routines (/INTO)= but not in shareable image routines (/NOSHARE) or system routines (/NOSYSTEM).J 4.DBG> SET TRACE/NOSOURCE TEST5\% LINE 14 WHEN (X .NE. 2) DO (EXAMINE Y)@ This command causes the debugger to trace line 14 of moduleC TEST5 when X is not equal to 2. At the tracepoint, the EXAMINE@ Y command is issued. The /NOSOURCE qualifier suppresses the< display of source code at the tracepoint. The syntax of? the conditional expression in the WHEN clause is language- dependent./ 5.DBG> SET TRACE/INSTRUCTION WHEN (X .NE. 0)B This command causes the debugger to trace when X is not e qualB to 0. The condition is tested at each instruction encounteredB during execution. The syntax of the conditional expression in+ the WHEN clause is language-dependent.0 6.DBG> SET TRACE/SILENT SUB2 DO (SET WATCH K)? This command causes the debugger to trace the beginning of= routine SUB2 during execution. At the tracepoint, the DOB clause sets a watchpoint on variable K. The /SILENT qualifierD suppresses the "trace . . . " message and the display of sour !ce@ code at the tracepoint. This example shows a convenient way? of setting a watchpoint on a nonstatic (stack or register)< variable. A nonstatic variable is defined only when itsA defining routine (SUB2, in this case) is active (on the call stack)./ 7.DBG> SET TRACE/RETURN ROUT4 DO (EXAMINE X)9 This command causes the debugger to trace the returnA instruction of routine ROUT4 (that is, just before execution? returns to the calling routine). At the" tracepoint, the DO> clause issues the EXAMINE X command. This example shows aB convenient way of obtaining the value of a nonstatic variableC just before execution leaves that variable's defining routine.$ 8.DBG> SET TRACE/EVENT=TERMINATEDA This command causes the debugger to trace the point at which9 any task makes a transition to the TERMINATED state. 3 TYPE= Establishes the default type to be associated with programA locations that do not have a #symbolic name (and, therefore, doB not have an associated compiler-generated type). When used withC /OVERRIDE, it establishes the default type to be associated with: all locations, overriding any compiler-generated types. Format SET TYPE type-keyword 4 Parameters ASCICD Sets the default type to counted ASCII string with a 1-byte countB field that precedes the string and gives its length. AC is also accepted as a keyword. ASCIDB Set $s the default type to ASCII string descriptor. The CLASS andA DTYPE fields of the descriptor are not checked, but the LENGTH> and POINTER fields provide the character length and address@ of the ASCII string. The string is then displayed. AD is also accepted as a keyword. ASCII:nD Sets the default type to ASCII character string (length n bytes).@ The length indicates both the number of bytes of memory to beB examined and the number of ASCII characters to be displayed. %IfB you do not specify a value for n, the debugger uses the defaultA value of 4 bytes. The value n is interpreted in decimal radix. ASCIWD Sets the default type to counted ASCII string with a 2-byte countA field that precedes the string and gives its length. This dataD type occurs in PASCAL and PL/I. AW is also accepted as a keyword. ASCIZD Sets the default type to zero-terminated ASCII string. The endingD zero byte indicates the end of the string. AZ is also& accepted as a keyword. BYTE9 Sets the default type to byte integer (length 1 byte). D_FLOAT8 Sets the default type to D_floating (length 8 bytes). DATE_TIME= Sets the default type to date and time. This is a quadwordB integer (length 8 bytes) containing the internal representationC of date and time. Values are displayed in the format dd-mmm-yyyy= hh:mm:ss.cc. Specify an absolute date and time as follows:! [dd-mmm-yyyy[:]] [hh:mm:ss.cc] 'EXTENDED_FLOATC (Alpha only) Sets the default type to IEEE X_floating (length 16 bytes). FLOAT@ On VAX systems, sets the default type to F_floating (length 4 bytes).= On Alpha systems, sets the default type to IEEE T_floating& (double precision, length 8 bytes). G_FLOAT8 Sets the default type to G_floating (length 8 bytes). H_FLOATD (VAX only) Sets the default type to H_floating (length 16 bytes). INSTRUCTIONC Sets the defa(ult type to instruction (variable length, dependingC on the number of instruction operands and the kind of addressing modes used). LONG_FLOAT= (Alpha only) Sets the default type to IEEE S_Floating type& (single precision, length 4 bytes). LONG_LONG_FLOAT= (Alpha only) Sets the default type to IEEE T_Floating type& (double precision, length 8 bytes). LONGWORDC Sets the default type to longword integer (length 4 bytes). This? is the default type) for program locations that do not have a9 symbolic name (do not have a compiler-generated type). OCTAWORD? Sets the default type to octaword integer (length 16 bytes). PACKED:nA Sets the default type to packed decimal. The value of n is the> number of decimal digits. Each digit occupies one nibble (4 bits). QUADWORD> Sets the default type to quadword integer (length 8 bytes). TYPE=expressionD Sets the default type to the type denoted by *expression (the nameD of a variable or data type declared in the program). This enables/ you to specify an application-declared type. S_FLOAT= (Alpha only) Sets the default type to IEEE S_Floating type& (single precision, length 4 bytes). T_FLOATB On Alpha systems, sets the default type to IEEE T_Floating type& (double precision, length 8 bytes). X_FLOATB On Alpha systems, sets the default type to IEEE X_floating type (length 16 bytes). +WORD: Sets the default type to word integer (length 2 bytes). 4 Qualifiers /OVERRIDED Associates the type specified with all program locations, whether@ or not they have a symbolic name (whether or not they have an' associated compiler-generated type). 4 DescriptionC When you use EXAMINE, DEPOSIT, or EVALUATE commands, the defaultD types associated with address expressions affect how the debugger, interprets and displays program entities.B The d ,ebugger recognizes the compiler-generated types associated@ with symbolic address expressions (symbolic names declared in@ your program), and it interprets and displays the contents ofA these locations accordingly. For program locations that do not? have a symbolic name and, therefore, no associated compiler-@ generated type, the default type in all languages is longwordC integer, which is appropriate for debugging 32-bit applications.D On Alpha systems, when debugging applic -ations that use the 64-bit? address space, you should use the SET TYPE QUADWORD command.> The SET TYPE command enables you to change the default type> associated with locations that do not have a symbolic name.B The SET TYPE/OVERRIDE command enables you to set a default typeB for all program locations, both those that do and do not have a symbolic name.A The EXAMINE and DEPOSIT commands have type qualifiers (/ASCII,D /BYTE, /G_FLOAT, and so on) which enable you to overr.ide, for theD duration of a single command, the type previously associated with any program location. Related commands: CANCEL TYPE/OVERRIDE DEPOSIT EXAMINE (SET,SHOW,CANCEL) RADIX (SET,SHOW,CANCEL) MODE SHOW TYPE 4 Examples 1.DBG> SET TYPE ASCII:8A This command establishes an 8-byte ASCII character string as@ the default type associated with untyped program locations.$ 2.DBG> SET TYPE/OVERRIDE LONGWORDB / This command establishes longword integer as the default type? associated with both untyped program locations and program2 locations that have compiler-generated types. 3.DBG> SET TYPE D_FLOAT< This command establishes D_Floating as the default type/ associated with untyped program locations.! 4.DBG> SET TYPE TYPE=(S_ARRAY)A This command establishes the type of the variable S_ARRAY as@ the default type associated with untyped program locations. 03 VECTOR_MODE5 Enables or disables a debugger vector mode option.+ Applies only to VAX vectorized programs. Format( SET VECTOR_MODE vector-mode-option 4 Parameters vector-mode-optionC Specifies the vector mode option. Valid keywords are as follows:> SYNCHRONIZED Specifies that the debugger force automatic@ synchronization between the scalar and vector> processors whenever a vector instruction is@ 1 executed. Specifically, the debugger issues aB SYNC instruction after every vector instruction? and, in addition, an MSYNC instruction after? any vector instruction that accesses memory.? This forces the completion of all activitiesA associated with the vector instruction that is& being synchronized:? o Any exception that was caused by a vector> 2 instruction is delivered before the nextA scalar instruction is executed. Forcing theA delivery of a pending exception triggers anD exception breakpoint or tracepoint (if one wasB set) or invokes an exception handler (if oneD is available at that location in the program).@ o Any read or write operation between vector@ registers and ei 3ther the general registersC or memory is completed before the next scalar. instruction is executed.@ The SET VECTOR_MODE SYNCHRONIZED command doesC not issue an immediate SYNC or MSYNC instruction? at the time it is issued. To force immediateC synchronization, use the SYNCHRONIZE VECTOR_MODE command.B NOSYNCHRONIZED (Default) Specifies that the debugger 4 not force@ synchronization between the scalar and vectorD processors except for internal debugger purposes.A As a result, any synchronization is controlledC entirely by the program, and the program runs as9 if it were not under debugger control. 4 Description< Vector mode options control the way in which the debuggerA interacts with the vector processor. For details about the SET7 VECTO5R_MODE command, see the parameter descriptions. Related commands:$ (SHOW,SYNCHRONIZE) VECTOR_MODE 4 Examples& 1.DBG> SET VECTOR_MODE SYNCHRONIZED> This command causes the debugger to force synchronization? between the scalar and vector processors after each vector instruction is executed. 2.DBG> SHOW VECTOR_MODE# Vector mode is nonsynchronized* DBG> SET VECTOR_MODE SYNCHRONIZED 1 DBG> SHOW VECTOR_MODE Vector mode is sync6hronized DBG> STEP 2# stepped to .MAIN.\SUB\%LINE 99% 99: VVDIVD V1,V0,V2 DBG> STEP 3A %SYSTEM-F-VARITH, vector arithmetic fault, summary=00000002,? mask=00000004, PC=000002E1, PSL=03C00010@ break on unhandled exception preceding .MAIN.\SUB\%LINE 100 100: CLRL R0 DBG>C The comments that follow refer to the callouts in the previous example:D 1 The SET VECTOR_MODE SYNCHRONIZED c 7ommand causes the debuggerA to force automatic synchronization between the scalar andD vector processors whenever a vector instruction is executed.@ 2 This STEP command suspends program execution on line 99,B just before a VVDIVD instruction is executed. Assume that,A in this example, the instruction will trigger a floating-' point divide-by-zero exception.@ 3 This STEP command executes the VVDIVD instruction, whichA triggers the excep8tion. The vector exception is delivered= immediately because the debugger is being operated in! synchronized vector mode. 3 WATCHA Establishes a watchpoint at the location denoted by an address expression. Format, SET WATCH address-expression[, . . . ]. [WHEN(conditional-expression)]' [DO(command[; . . . ])] 4 Parameters address-expression@ Specifies an address expression (a program location) at 9 which@ a watchpoint is to be set. With high-level languages, this isB typically the name of a program variable and can include a pathD name to uniquely specify the variable. More generally, an address@ expression can also be a memory address or a register and canB be composed of numbers (offsets) and symbols, as well as one orA more operators, operands, or delimiters. For information aboutA the operators that you can use in address expressions, see the) Address_Expressions o :nline help topic.7 Do not specify the asterisk (*) wildcard character. conditional-expressionD Specifies a conditional expression in the currently set language;C the expression is to be evaluated whenever execution reaches theD watchpoint. (The debugger checks the syntax of the expressions inB the WHEN clause when execution reaches the watchpoint, not whenB the watchpoint is set.) If the expression is true, the debuggerA reports that a watchpoint has been triggered. ; If an action (DOC clause) is associated with the watchpoint, it will occur at this@ time. If the expression is false, a report is not issued, theA commands specified by the DO clause (if one was specified) are4 not executed, and program execution is continued. command@ Specifies a debugger command to be executed as part of the DOD clause when watch action is taken. The debugger checks the syntaxA of the commands in a DO clause when it executes the DO clause," not< when the watchpoint is set. 4 Qualifiers /AFTER /AFTER:nB Specifies that watch action not be taken until the nth time theA designated watchpoint is encountered (n is a decimal integer).A Thereafter, the watchpoint occurs every time it is encountered@ provided that conditions in the WHEN clause are true. The SET: WATCH/AFTER:1 command has the same effect as SET WATCH. /INTOA Specifies that the debugger is to monitor a nonstatic variableD by =tracing instructions not only within the defining routine, butA also within a routine that is called from the defining routine@ (and any other such nested calls). The SET WATCH/INTO commandD enables you to monitor nonstatic variables within called routinesA more precisely than SET WATCH/OVER; but the speed of execution8 within called routines is faster with SET WATCH/OVER. /OVERA Specifies that the debugger is to monitor a nonstatic variable@ by tracing instructions o>nly within the defining routine, not@ within a routine that is called by the defining routine. As aA result, the debugger executes a called routine at normal speed? and resumes tracing instructions only when execution returns? to the defining routine. The SET WATCH/OVER command provides@ faster execution than SET WATCH/INTO; but if a called routineD modifies the watched variable, execution is interrupted only uponA returning to the defining routine. When you set watchpoints on?6 nonstatic variables, SET WATCH/OVER is the default. /SILENT /SILENT /NOSILENT (default)B Controls whether the "watch . . . " message and the source line@ for the current location are displayed at the watchpoint. TheC /NOSILENT qualifier specifies that the message is displayed. TheC /SILENT qualifier specifies that the message and source line are: not displayed. The /SILENT qualifier overrides /SOURCE. /SOURCE /SOURCE (default) @/NOSOURCE? Controls whether the source line for the current location isD displayed at the watchpoint. The /SOURCE qualifier specifies thatB the source line is displayed. The /NOSOURCE qualifier specifies? that the source line is not displayed. The /SILENT qualifier? overrides /SOURCE. See also the SET STEP [NO]SOURCE command. /STATIC /STATIC /NOSTATICB Enables you to override the debugger's default determination ofB whether a specified variable (w Aatchpoint location) is static or? nonstatic. The /STATIC qualifier specifies that the debugger> should treat the variable as a static variable, even though> it might be allocated in P1 space. This causes the debugger? to monitor the location by using the faster write-protectionA method rather than by tracing every instruction. The /NOSTATICB qualifier specifies that the debugger should treat the variableC as a nonstatic variable, even though it might be allocated in P0D spaBce, and causes the debugger to monitor the location by tracing= every instruction. Be careful when using these qualifiers. /TEMPORARY@ Causes the watchpoint to disappear after it is triggered (the/ watchpoint does not remain permanently set). 4 Description> When an instruction causes the modification of a watchpoint6 location, the debugger takes the following actions:; 1. Suspends program execution after that instruction has completed execution.A 2. CIf you specified /AFTER when you set the watchpoint, checks@ the AFTER count. If the specified number of counts has notA been reached, execution continues and the debugger does not" perform the remaining steps.A 3. Evaluates the expression in a WHEN clause, if you specified: one when you set the watchpoint. If the value of the? expression is false, execution continues and the debugger+ does not perform the remaining steps.@ 4. Reports that execution h Das reached the watchpoint location7 ("watch of . . . ") unless you specified /SILENT.D 5. Reports the old (unmodified) value at the watchpoint location.B 6. Reports the new (modified) value at the watchpoint location.< 7. Displays the line of source code at which execution is? suspended, unless you specified /NOSOURCE or /SILENT whenD you set the watchpoint or entered a previous SET STEP NOSOURCE command.@ 8. Executes the commands in a DO clause, if you s Epecified oneA when you set the watchpoint. If the DO clause contains a GOD command, execution continues and the debugger does not perform the next step. 9. Issues the prompt.@ For high-level language programs, the address expressions youC specify with the SET WATCH command are typically variable names.? If you specify an absolute memory address that is associated> with a compiler-generated type, the debugger symbolizes theA address and uses the length in byFtes associated with that typeB to determine the length in bytes of the watchpoint location. IfB you specify an absolute memory address that the debugger cannotC associate with a compiler-generated type, the debugger watches 4C bytes of memory, by default, beginning at the byte identified byB the address expression. You can change this length, however, byD setting the type to either WORD (SET TYPE WORD, which changes theC default length to 2 bytes) or BYTE (SET TYPE BYTE, which Gchanges@ the default length to 1 byte). SET TYPE LONGWORD restores the default length of 4 bytes.@ You can set watchpoints on aggregates (that is, entire arrays? or records). A watchpoint set on an array or record triggersB if any element of the array or record changes. Thus, you do notA need to set watchpoints on individual array elements or record> components. Note, however, that you cannot set an aggregate" watchpoint on a variant record.= You can also set a watcHhpoint on a record component, on anC individual array element, or on an array slice (a range of array@ elements). A watchpoint set on an array slice triggers if anyB element within that slice changes. When setting the watchpoint,- follow the syntax of the current language. 4 Description,_Continued...= The following qualifiers affect what output is seen when a watchpoint is reached: /[NO]SILENT /[NO]SOURCE= The following qualifiers affect the timIing and duration of watchpoints: /AFTER:n /TEMPORARY> The following qualifiers apply only to nonstatic variables: /INTO /OVERD The following qualifier overrides the debugger's determination of- whether a variable is static or nonstatic: /[NO]STATIC& NOTEB On VAX systems, watchpoints set on variables whose addresses= are in global sections do not work. Attempting to set a? watchpointJ on a location in a global section results in a %DEBUG-E-BADWATCH message. Related commands:- (ACTIVATE,DEACTIVATE,SHOW,CANCEL) WATCH MONITOR SET BREAK SET STEP [NO]SOURCE SET TRACE #4 Static_and_Nonstatic_Watchpoints# Static and Nonstatic Watchpoints@ The technique for setting a watchpoint depends on whether the# variable is static or nonstatic.? A static variable is associated with the same memory address< through Kout execution of the program. You can always set a8 watchpoint on a static variable throughout execution.> A nonstatic variable is allocated on the call stack or in aD register and has a value only when its defining routine is active@ (on the call stack). Therefore, you can set a watchpoint on a@ nonstatic variable only when execution is currently suspendedB within the scope of the defining routine (including any routineC called by the defining routine). The watchpoint is cancel Led when@ execution returns from the defining routine. With a nonstatic@ variable, the debugger traces every instruction to detect any: changes in the value of a watched variable or location.? Another distinction between static and nonstatic watchpointsB is speed of execution. To watch a static variable, the debuggerC write-protects the page containing the variable. If your programA attempts to write to that page, an access violation occurs and> the debugger handles the ex Mception, determining whether theC watched variable was modified. Except when writing to that page,( the program executes at normal speed.; To watch a nonstatic variable, the debugger traces every@ instruction in the variable's defining routine and checks theB value of the variable after each instruction has been executed.B Since this significantly slows execution, the debugger issues a/ message when you set a nonstatic watchpoint.? As explained in the next paragraphs, /[ NNO]STATIC, /INTO, andD /OVER enable you to exercise some control over speed of execution- and other factors when watching variables.D The debugger determines whether a variable is static or nonstaticC by checking how it is allocated. Typically, a static variable isD in P0 space (0 to 3FFFFFFF, hexadecimal); a nonstatic variable isD in P1 space (40000000 to 7FFFFFFF) or in a register. The debugger@ issues a warning if you try to set a watchpoint on a variableC that is alloc Oated in P1 space or in a register when execution isD not currently suspended within the scope of the defining routine.A The /[NO]STATIC qualifiers enable you to override this default@ behavior. For example, if you have allocated nonstack storageC in P1 space, use /STATIC when setting a watchpoint on a variableD that is allocated in that storage area. This enables the debugger< to use the faster write-protection method of watching theA location instead of tracing every instruc Ption. Conversely, if,C for example, you have allocated your own call stack in P0 space,@ use /NOSTATIC when setting a watchpoint on a variable that isC allocated on that call stack. This enables the debugger to treat, the watchpoint as a nonstatic watchpoint.9 You can also control the execution speed for nonstatic; watchpoints in called routines by using /INTO and /OVER.> On both Alpha and VAX processors, both static and nonstaticC watchpoints are available. With stati Qc watchpoints, the debuggerB write-protects the page of memory in which the watched variableA is stored. Static watchpoints, therefore, would interfere withD the system service itself if not for the debugger's use of system service interception (SSI).C If a static watchpoint is in effect then, through system service@ interception, the debugger deactivates the static watchpoint,C asynchronous traps (ASTs), and thread switching, just before the@ system service call. The de Rbugger reactivates them just afterA the system service call completes, putting the watchpoint, AST> enabling, and thread switching back to their original state@ and, finally, checking for any watchpoint hits. This behavior@ is designed to allow the system service to run as it normally@ would (that is, without write-protected pages) and to preventC the AST code or a different thread from potentially changing the@ watchpointed location while the watchpoint is deactivated. BeD a Sware of this behavior if, for example, your application tests to see if ASTs are enabled.B An active static watchpoint can cause a system service to fail,= likely with an ACCVIO status, if the system service is not= supported by the system service interception (SSI) vehicleD (DBGSSISHR on OpenVMS VAX systems and SYS$SSISHR on OpenVMS AlphaD systems). Any system service that is not in SYS$PUBLIC_VECTORS isD unsupported by SSI, including User Written System Services (UWSS)4 T and any loadable system services, such as $MOUNT.B When a static watchpoint is active, the debugger write-protectsC the page containing the variable to be watched. A system serviceB call not supported by SSI can fail if it tries to write to that page of user memory.5 To avoid this failure, do either of the following:? o Deactivate the static watchpoint before the service call.@ When the call completes, check the watchpoint manually and reactivate it.D o U Use nonstatic watchpoints. Note that nonstatic watchpoints can slow execution.A If a watched location changes during a system service routine,@ you will be notified, as usual, that the watchpoint occurred.D Note that, on rare occasions, stack may show one or more debuggerA frames on top of the frame or frames for your program. To workA around this problem, enter one or more STEP/RETURN commands to get back to your program.= System service interception is on by deVfault, but on Alpha; processors only, you can disable interception prior to a6 debugging session by issuing the following command:" $ DEFINE SSI$AUTO_ACTIVATE OFF< To reenable system service interception, issue one of the following commands:! $ DEFINE SSI$AUTO_ACTIVATE ON $ DEASSIGN SSI$AUTO_ACTIVATE 4 Global_Section_Watchpoints? On Alpha processors, you can set watchpoints on variables orC arbitrary program locations in global sections. A global se Wction@ is a region of memory that is shared among all processes of aB multiprocess program. A watchpoint that is set on a location inC a global section (a global section watchpoint) triggers when any2 process modifies the contents of that location.> You set a global section watchpoint just as you would set aC watchpoint on a static variable. However, because of the way theC debugger monitors global section watchpoints, note the followingD point. When setting watchpoints o Xn arrays or records, performanceA is improved if you specify individual elements rather than the/ entire structure with the SET WATCH command.B If you set a watchpoint on a location that is not yet mapped to@ a global section, the watchpoint is treated as a conventional> static watchpoint. When the location is subsequently mapped? to a global section, the watchpoint is automatically treatedA as a global section watchpoint and an informational message isB issued. The watchYpoint is then visible from each process of the multiprocess program. 4 Examples 1.DBG> SET WATCH MAXCOUNTD This command establishes a watchpoint on the variable MAXCOUNT. 2.DBG> SET WATCH ARR DBG> GO . . .) watch of SUBR\ARR at SUBR\%LINE 12+8 old value: (1): 7 (2): 12 (3): 3 new value: (1): 7 (2): 12 (3): 28 bZreak at SUBR\%LINE 14 DBG>@ In this example, the SET WATCH command sets a watchpoint onD the three-element integer array, ARR. Execution is then resumedD with the GO command. The watchpoint triggers whenever any array> element changes. In this case, the third element changed. 3.DBG> SET WATCH ARR(3)= This command sets a watchpoint on element 3 of array ARR= (Fortran array syntax). The watchpoint triggers whenever element 3 changes. 4.DBG> [SET WATCH P_ARR[3:5]A This command sets a watchpoint on the array slice consistingA of elements 3 to 5 of array P_ARR (Pascal array syntax). The? watchpoint triggers whenever any of these elements change.% 5.DBG> SET WATCH P_ARR[3]:P_ARR[5]@ This command sets a separate watchpoint on each of elementsA 3 to 5 of array P_ARR (Pascal array syntax). Each watchpoint2 triggers whenever its target element changes.0 6.DBG> SET TRACE/SILENT SUB2 DO (SET WATCH K) \? In this example, variable K is a nonstatic variable and is@ defined only when its defining routine, SUB2, is active (on@ the call stack). The SET TRACE command sets a tracepoint onD SUB2. When the tracepoint is triggered during execution, the DOC clause sets a watchpoint on K. The watchpoint is then canceledD when execution returns from routine SUB2. The /SILENT qualifierD suppresses the "trace . . . " message and the display of source code at the tracepo]int. 3 WINDOW& Creates a screen window definition.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format SET WINDOW window-name* AT (start-line,line-count. [,start-column,column-count]) 4 Parameters window-nameA Specifies the name of the window you are defining. If a windowD definition with that ^name already exists, it is canceled in favor of the new definition. start-line> Specifies the starting line number of the window. This lineA displays the window title, or header line. The top line of the screen is line 1. line-countA Specifies the number of text lines in the window, not countingC the header line. The value must be at least 1. The sum of start-A line and line-count must not exceed the current screen height. start-columnB Specifi_es the starting column number of the window. This is theB column at which the first character of the window is displayed.1 The leftmost column of the screen is column 1. column-countA Specifies the number of characters per line in the window. The@ value must be at least 1. The sum of start-column and column-2 count must not exceed the current screen width. 4 DescriptionA A screen window is a rectangular region on the terminal screen? through which you can view `a display. The SET WINDOW command? establishes a window definition by associating a window nameD with a screen region. You specify the screen region in terms of aD starting line and height (line count) and, optionally, a starting= column and width (column count). If you do not specify theA starting column and column count, the starting column defaultsB to column 1 and the column count defaults to the current screen width.C You can specify a window region in terms of exparessions that use) the built-in symbols %PAGE and %WIDTH.A You can use the names of any windows you have defined with theB SET WINDOW command in a DISPLAY command to position displays on the screen.C Window definitions are dynamic-that is, window dimensions expandB and contract proportionally when a SET TERMINAL command changes the screen width or height. Related commands: DISPLAY (SHOW,CANCEL) DISPLAY (SET,SHOW) TERMINAL (SHOW,CANCbEL) WINDOW 4 Examples% 1.DBG> SET WINDOW ONELINE AT (1,1)B This command defines a window named ONELINE at the top of theC screen. The window is one line deep and, by default, spans the width of the screen.* 2.DBG> SET WINDOW MIDDLE AT (9,4,30,20)D This command defines a window named MIDDLE at the middle of theB screen. The window is 4 lines deep starting at line 9, and 20( columns wide starting at column 30.@ 3.DBG> SET WINDOW FLEX AT (%PAGcE/4,%PAGE/2,%WIDTH/4,%WIDTH/2)D This command defines a window named FLEX that occupies a regionC around the middle of the screen and is defined in terms of the6 current screen height (%PAGE) and width (%WIDTH). 2 SHOW 3 ABORT_KEY> Identifies the Ctrl-key sequence currently defined to abort> the execution of a debugger command or to interrupt program execution.& NOTEB This command is not available in the Compaq DEdCwindows Motif1 for OpenVMS user interface to the debugger. Format SHOW ABORT_KEY 4 DescriptionC By default, the Ctrl/C sequence, when entered within a debugging: session, aborts the execution of a debugger command andB interrupts program execution. The SET ABORT_KEY command enablesA you to assign the abort function to another Ctrl-key sequence.> The SHOW ABORT_KEY command identifies the Ctrl-key sequence. currently in effect for the abort function.e Related commands: Ctrl/C SET ABORT_KEY 4 Example DBG> SHOW ABORT_KEY Abort Command Key is CTRL_C DBG> SET ABORT_KEY = CTRL_P DBG> SHOW ABORT_KEY Abort Command Key is CTRL_P DBG>A In this example, the first SHOW ABORT_KEY command identifiesC the default abort command key sequence, Ctrl/C. The SET ABORT_? KEY = CTRL_P command assigns the abort-command function to? Ctrl/P, as confirmed by the second SHOW ABORT_KEY command. 3 AfSTD Indicates whether delivery of asynchronous system traps (ASTs) is enabled or disabled. Format SHOW AST 4 Description= The SHOW AST command indicates whether delivery of ASTs isB enabled or disabled. The command does not identify an AST whoseB delivery is pending. The delivery of ASTs is enabled by defaultD and with the ENABLE AST command. The delivery of ASTs is disabled with the DISABLE AST command. Related commands: (ENABLE,DISABLE)g AST 4 Example DBG> SHOW AST ASTs are enabled DBG> DISABLE AST DBG> SHOW AST ASTs are disabled DBG>C The SHOW AST command indicates whether the delivery of ASTs is enabled. 3 ATSIGN= Identifies the default file specification established with; the last SET ATSIGN command. The debugger uses this fileC specification when processing the execute procedure (@) command. Format SHOW ATSIGN 4 Description Related commands:h @ (Execute Procedure) SET ATSIGN 4 Examples 1.DBG> SHOW ATSIGN@ No indirect command file default in effect, using DEBUG.COM DBG>> This example shows that if you did not use the SET ATSIGN> command, the debugger assumes command procedures have the5 default file specification SYS$DISK:[]DEBUG.COM.+ 2.DBG> SET ATSIGN USER:[JONES.DEBUG].DBG DBG> SHOW ATSIGN< Indirect command file default is USER:[JONES.DEBUG].DBG DBG>iC In this example, the SHOW ATSIGN command indicates the default= file specification for command procedures, as previously- established with the SET ATSIGN command. 3 BREAK* Displays information about breakpoints. Format SHOW BREAK 4 Qualifiers /PREDEFINED5 Displays information about predefined breakpoints. /USER7 Displays information about user-defined breakpoints. 4 Description@ The SHOW BREAK command displa jys information about breakpointsC that are currently set, including any options such as WHEN or DOA clauses, /AFTER counts, and so on, and whether the breakpoints are deactivated.? By default, SHOW BREAK displays information about both user-B defined and predefined breakpoints (if any). This is equivalentC to entering the SHOW BREAK/USER/PREDEFINED command. User-defined= breakpoints are set with the SET BREAK command. PredefinedA breakpoints are set automatically when kyou start the debugger,< and they depend on the type of program you are debugging.D If you established a breakpoint using SET BREAK/AFTER:n, the SHOWB BREAK command displays the current value of the decimal integerA n, that is, the originally specified integer value minus 1 for? each time the breakpoint location was reached. (The debuggerB decrements n each time the breakpoint location is reached until> the value of n is 0, at which time the debugger takes break action.)l< On Alpha systems, the SHOW BREAK command does not displayB individual instructions when the break is on a particular class? of instruction (as with SET BREAK/CALL or SET BREAK/RETURN). Related commands:, (ACTIVATE,CANCEL,DEACTIVATE,SET) BREAK 4 Examples 1.DBG> SHOW BREAK breakpoint at SUB1\LOOP breakpoint at MAIN\MAIN+1F, do (EX SUB1\D ; EX/SYMBOLIC PSL; GO)$ breakpoint at routine SUB2\SUB2 /after: 2 DBG>? The m SHOW BREAK command identifies all breakpoints that areC currently set. This example indicates user-defined breakpoints= that are triggered whenever execution reaches SUB1\LOOP,, MAIN\MAIN, and SUB2\SUB2, respectively. 2.DBG> SHOW BREAK/PREDEFINED> predefined breakpoint on Ada event "DEPENDENTS_EXCEPTION" for any value> predefined breakpoint on Ada event "EXCEPTION_TERMINATED" for any value DBG>@ This command identifies the predefinend breakpoints that areA currently set. The example shows two predefined breakpoints,B which are associated with Ada tasking exception events. TheseB breakpoints are set automatically by the debugger for all AdaD programs and for any mixed language program that is linked with an Ada module. 3 CALLS1 Identifies the currently active routine calls. Format SHOW CALLS [integer] 4 Parameters integerB A decimal integer that specifieos the number of routine calls toD be identified. If you omit the parameter, the debugger identifies2 all routine calls for which it has information. 4 Qualifiers /IMAGEB Displays the image name for each active call on the call stack. 4 DescriptionC The SHOW CALLS command shows a traceback that lists the sequence< of active routine calls that lead to the routine in which@ execution is currently suspended. Any recursive routine callsB are shown in the disp play, so you can use the SHOW CALLS command% to examine the chain of recursion.B SHOW CALLS displays one line of information for each call frameA on the call stack, starting with the most recent call. The topA line identifies the currently executing routine, the next lineB identifies its caller, the following line identifies the caller of the caller, and so on.A Even if your program contains no routine calls, the SHOW CALLS? command displays an active call. The reason f qor this is that? your program has a stack frame built for it when it is firstD activated. Thus, if the SHOW CALLS display shows no active calls,@ either your program has terminated or the call stack has been corrupted.B On VAX processors, the sequence of routine calls corresponds toD the sequence of call frames on the call stack. Whenever a call isC made to a routine as your program executes, the operating systemC creates a separate call frame on the call stack. Each cal rl frameD stores information about the calling routine, for example, the PCD value that enables the SHOW CALLS command to symbolize module and routine information.B On Alpha processors, a routine invocation can result in a stack? frame procedure (with a call frame on the stack), a registerB frame procedure (with a call frame stored in the register set),? or a null frame procedure (without a call frame). SHOW CALLS= provides one line of information on all three: stack framseD procedures, register frame procedures, and null frame procedures.! (See the Alpha example below.) 4 Description,_Continued...B The following information is provided for each line of the SHOW CALLS display:D o The name of the enclosing module. An asterisk (*) to the left8 of a module name indicates that the module is set.A o The name of the calling routine, provided the module is set= (the first line shows the currently executing routine).> o t The line number where the call was made in that routine,? provided the module is set (the first line shows the line. number at which execution is suspended).< o The value of the PC in the calling routine at the time@ that control was transferred to the called routine. On VAXD processors, the PC value is shown as a memory address relativeD to the nearest preceding symbol value (for example, a routine)? and also as an absolute address. On Alpha processors, th ue@ PC is shown as a memory address relative to the first code< address in the module and also as an absolute address.D When you specify the /IMAGE qualifier, the debugger first doesC a SET IMAGE command for each image that has debug information< (that is, it was linked using the /DEBUG or /TRACEBACK? qualifier). The debugger then displays the image name forA each active call on the calls stack. The output display hasD been expanded and displays thev image name in the first column.? The debugger suppresses the share$image_name module name,C because that information is provided by the /IMAGE qualifier.C The SET IMAGE command lasts only for the duration of the SHOWD CALLS/IMAGE command. The debugger restores the set image state4 when the SHOW CALLS/IMAGE command is complete. Related commands: SHOW SCOPE SHOW STACK 4 Examples 1.DBG> SHOW CALLS> module name routine name w line rel PC abs PC? SUB2 SUB2 00000002 0000085A? *SUB1 SUB1 5 00000014 00000854? *MAIN MAIN 10 0000002C 0000082C DBG>< This command displays information about the sequence of6 currently active procedure calls on a VAX system. 2.DBG> SHOW CALLS@ module name routine name line rel PC abs PCF *MAIN FFFF 31 00000000000002B x8 00000000000203C4* -the above appears to be a null frameH in the same scope as the frame belowF *MAIN MAIN 13 00000000000000A8 00000000000200A8F 0000000000000000 FFFFFFFF8255A1F8? This example has been reformatted for Help, and may appearD slightly different from the actual output display. This exampleC is on an Alpha system. Note that sections of routine prologues@ and epiloguyes appear to the debugger to be null frames. TheC portion of the prologue before the change in the frame pointerB (FP) and the portion of the epilogue after restoration of theB FP each look like a null frame, and are reported accordingly. 3 DEFINEA Identifies the default (/ADDRESS, /COMMAND, /PROCESS_GROUP, or6 /VALUE) currently in effect for the DEFINE command. Format SHOW DEFINE 4 Description? The default qualifier for the DEFINE command is tzhe one lastB established with the SET DEFINE command. If you did not enter a9 SET DEFINE command, the default qualifier is /ADDRESS.@ To identify a symbol defined with the DEFINE command, use the SHOW SYMBOL/DEFINED command. Related commands: DEFINE DEFINE/PROCESS_SET DELETE SET DEFINE SHOW SYMBOL/DEFINED 4 Example DBG> SHOW DEFINE# Current setting is: DEFINE/ADDRESS DBG>> This command indicates that the DEFINE comm{and is set for definition by address. 3 DISPLAY3 Identifies one or more existing screen displays.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format+ SHOW DISPLAY [display-name[, . . . ]] 4 Parameters display-nameA Specifies the name of a display. If you do not specify a name,D or if you specify the asterisk (*) wildcard ch|aracter by itself,? all display definitions are listed. You can use the wildcard@ within a display name. Do not specify a display name with the /ALL qualifier. 4 Qualifiers /ALL! Lists all display definitions. 4 DescriptionA The SHOW DISPLAY command lists all displays according to their? order in the display list. The most hidden display is listedB first, and the display that is on top of the display pasteboard is listed last.= For each disp}lay, the SHOW DISPLAY command lists its name,? maximum size, screen window, and display kind (including anyA debug command list). It also identifies whether the display is? removed from the pasteboard or is dynamic (a dynamic displayD automatically adjusts its window dimensions if the screen size is* changed with the SET TERMINAL command). Related commands: DISPLAY EXTRACT/SCREEN_LAYOUT (CANCEL) DISPLAY (SET,CANCEL,SHOW) WINDOW SHOW SELEC~T 4 Example DBG> SHOW DISPLAY& display SRC at H1, size = 64, dynamic6 kind = SOURCE (EXAMINE/SOURCE .%SOURCE_SCOPE\%PC)0 display INST at H1, size = 64, removed, dynamic4 kind = INSTRUCTION (EXAMINE/INSTRUCTION .0\%PC)A display REG at RH1, size = 64, removed, dynamic, kind = REGISTER7 display OUT at S45, size = 100, dynamic, kind = OUTPUTA display EXSUM at Q3, size = 64, dynamic, kind = DO (EXAMINE SUM)9 display PROMPT at S6, size = 64, dynamic, kind = PROGRAM DBG>C The SHOW DISPLAY command lists all displays currently defined.? In this example, they include the five predefined displays? (SRC, INST, REG, OUT, and PROMPT), and the user-defined DO> display EXSUM. Displays INST and REG are removed from theD display pasteboard: the DISPLAY command must be used to display them on the screen. 3 EDITORD Indicates the action taken by the EDIT command, as established by the SET EDITOR command. Format SHOW EDITOR 4 Description Related commands: EDIT SET EDITOR 4 Examples 1.DBG> SHOW EDITOR- The editor is SPAWNed, with command line# "EDT/START_POSITION=(n,1)" DBG>? In this example, the EDIT command spawns the EDT editor in@ a subprocess. The /START_POSITION qualifier appended to the@ command line indicates that the editing cursor is initiallyD positioned at the beginning of the line that is centered in the' debugger's current source display.! 2.DBG> SET EDITOR/CALLABLE_TPU DBG> SHOW EDITOR8 The editor is CALLABLE_TPU, with command line "TPU" DBG>@ In this example, the SHOW EDITOR command indicates that the> EDIT command invokes the callable version of the DEC TextA Processing Utility (DECTPU). The editing cursor is initially2 positioned at the beginning of source line 1. 3 EVENT_FACILITYA Identifies the current event facility and the associated event names.< Event facilities are available for programs that call AdaB routines or that use POSIX Threads services. On VAX processors,B event facilities are also available for programs that call SCAN routines. Format SHOW EVENT_FACILITY 4 DescriptionA The current event facility (ADA, THREADS, or SCAN) defines the@ eventpoints that you can set with the SET BREAK/EVENT and SET TRACE/EVENT commands.= The SHOW EVENT_FACILITY command identifies the event names< associated with the current event facility. These are theB keywords that you can specify with the (SET,CANCEL) BREAK/EVENT) and (SET,CANCEL) TRACE/EVENT commands. Related commands: (SET,CANCEL) BREAK/EVENT SET EVENT_FACILITY (SET,CANCEL) TRACE/EVENT SHOW BREAK SHOW TASK SHOW TRACE 4 Example DBG> SHOW EVENT_FACILITY event facility is THREADS . . .= This command identifies the current event facility to beA THREADS (POSIX Threads) and lists the associated event names= that can be used with SET BREAK/EVENT or SET TRACE/EVENT commands. 3 EXIT_HANDLERS? Identifies the exit handlers that have been declared in your program. Format SHOW EXIT_HANDLERS 4 DescriptionA The exit handler routines are displayed in the order that they@ are called (that is, last in, first out). The routine name isA displayed symbolically, if possible. Otherwise, its address is= displayed. The debugger's exit handlers are not displayed. 4 Example DBG> SHOW EXIT_HANDLERS exit handler at STACKS\CLEANUP DBG>D This command identifies the exit handler routine CLEANUP, which" is declared in module STACKS. 3 IMAGEA Displays information about one or more images that are part of your running program. Format SHOW IMAGE [image-name] 4 Parameters image-nameC Specifies the name of an image to be included in the display. If@ you do not specify a name, or if you specify the asterisk (*)C wildcard character by itself, all images are listed. You can use% the wildcard within an image name. 4 Description= The SHOW IMAGE command displays the following information: o Name of the image* o Start and end addresses of the image? o Whether the image has been set with the SET IMAGE command2 (loaded into the run-time symbol table, RST)B  o Current image that is your debugging context (marked with an asterisk (*))4 o Total number of images selected in the display> o Number of bytes allocated for the RST and other internal structuresC SHOW IMAGE does not display all of the memory ranges of an imageA installed using the /RESIDENT qualifier. Instead, this command) displays only the process data region. Related commands: (SET,CANCEL) IMAGE (SET,SHOW,CANCEL) MODULE 4 Example DBG> SHOW IMAGE SHARE*: image name set base address end address7 *SHARE yes 00000200 00000FFF7 SHARE1 no 00001000 000017FF7 SHARE2 yes 00018C00 000191FF7 SHARE3 no 00019200 000195FF7 SHARE4 no 00019600 0001B7FF. total images: 5 bytes allocated: 33032 DBG>? This SHOW IMAGE command identifies all of the images whose= names start with SHARE and which are associated with the? program. Images SHARE and SHARE2 are set. The asterisk (*)+ identifies SHARE as the current image. 3 KEY= Displays the debugger predefined key definitions and those% created by the DEFINE/KEY command.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format SHOW KEY [key-name] 4 Parameters key-nameA Specifies a function key whose definition is displayed. Do notB use the asterisk (*) wildcard character. Instead, use the /ALL@ qualifier. Do not specify a key name with /ALL or /DIRECTORY." Valid key names are as follows: Key LK2012 Name Keyboard VT100-type VT52-type- PF1 PF1 PF1 Blue, PF2 PF2 PF2 Red. PF3 PF3 PF3 Black PF4 PF4 PF43 KP0-KP9 Keypad 0-9 Keypad 0-9 Keypad 0-9! PERIOD Keypad Keypad% period (.) period (.)' COMMA Keypad comma Keypad comma (,) (,). ENTER Enter ENTER ENTER E1 Find E2 Insert Here E3 Remove E4 Select E5 Prev Screen E6 Next Screen HELP Help DO Do F6-F20 F6-F20 4 Qualifiers /ALLB Displays all key definitions for the current state, by default,+ or for the states specified with /STATE. /BRIEF@ Displays only the key definitions (by default, all qualifiersA associated with a key definition are also shown, including any specified state). /DIRECTORY@ Displays the names of all the states for which keys have been@ defined. Do not specify other qualifiers with this qualifier. /STATE$ /STATE=(state-name [, . . . ])  /NOSTATE (default); Selects one or more states for which a key definition isC displayed. The /STATE qualifier displays key definitions for theC specified states. You can specify predefined key states, such asD DEFAULT and GOLD, or user-defined states. A state name can be anyC appropriate alphanumeric string. The /NOSTATE qualifier displays. key definitions for the current state only. 4 DescriptionC Keypad mode must be enabled (SET MODE KEYPAD) before you can use3 this command. Keypad mode is enabled by default.B By default, the current key state is the DEFAULT state. You canA change the current state by using the SET KEY/STATE command orD by pressing a key that causes a state change (that is, a key that9 was defined with DEFINE/KEY/LOCK_STATE or /SET_STATE). Related commands: DEFINE/KEY DELETE/KEY SET KEY 4 Examples 1.DBG> SHOW KEY/ALLB This command displays all the key definitions for the current state.! 2.DBG> SHOW KEY/STATE=BLUE KP8 GOLD keypad definitions:3 KP8 = "Scroll/Top" (noecho,terminate,nolock) DBG>A This command displays the definition for keypad key 8 in the BLUE state. 3.DBG> SHOW KEY/BRIEF KP8 DEFAULT keypad definitions: KP8 = "Scroll/Up" DBG>A This command displays the definition for keypad key 8 in the current state. 4.DBG> SHOW KEY/DIRECTORY MOVE_GOLD MOVE_BLUE MOVE GOLD EXPAND_GOLD EXPAND_BLUE EXPAND DEFAULT CONTRACT_GOLD CONTRACT_BLUE CONTRACT BLUE DBG>A This command displays the names of the states for which keys have been defined. 3 LANGUAGE# Identifies the current language. Format SHOW LANGUAGE 4 Description= The current language is the language last established with@ the SET LANGUAGE command. If you did not enter a SET LANGUAGED command, the current language is, by default, the language of the& module containing the main program. Related command: SET LANGUAGE 4 Example DBG> SHOW LANGUAGE language: BASIC DBG>> This command displays the name of the current language as BASIC. 3 LOG> Indicates whether the debugger is writing to a log file and# identifies the current log file. Format SHOW LOG 4 DescriptionA The current log file is the log file last established by a SETC LOG command. By default, if you did not enter a SET LOG command,9 the current log file is the file SYS$DISK:[]DEBUG.LOG. Related commands: SET LOG SET OUTPUT [NO]LOG SET OUTPUT [NO]SCREEN_LOG 4 Examples 1.DBG> SHOW LOG not logging to DEBUG.LOG DBG>> This command displays the name of the current log file asC DEBUG.LOG (the default log file) and reports that the debugger is not writing to it. 2.DBG> SET LOG PROG4 DBG> SET OUTPUT LOG DBG> SHOW LOG+ logging to USER$:[JONES.WORK]PROG4.LOG DBG>> In this example, the SET LOG command establishes that the: current log file is PROG4.LOG (in the current default? directory). The SET OUTPUT LOG command causes the debuggerB to log debugger input and output into that file. The SHOW LOGB command confirms that the debugger is writing to the log file1 PROG4.COM in your current default directory. 3 MARGINSD Identifies the current source-line margin settings for displaying source code.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format SHOW MARGINS 4 Description; The current margin settings are the margin settings last? established with the SET MARGINS command. By default, if youC did not enter a SET MARGINS command, the left margin is set to 1& and the right margin is set to 255. Related command: SET MARGINS 4 Examples 1.DBG> SHOW MARGINS' left margin: 1 , right margin: 255 DBG>D This command displays the default margin settings of 1 and 255. 2.DBG> SET MARGINS 50 DBG> SHOW MARGINS& left margin: 1 , right margin: 50 DBG>C This command displays the default left margin setting of 1 and- the modified right margin setting of 50. 3.DBG> SET MARGINS 10:60 DBG> SHOW MARGINS' left margin: 10 , right margin: 60 DBG>B This command displays both margin settings modified to 10 and 60. 3 MODE> Identifies the current debugger modes (screen or no screen,8 keypad or nokeypad, and so on) and the current radix. Format SHOW MODE 4 DescriptionA The current debugger modes are the modes last established withD the SET MODE command. By default, if you did not enter a SET MODE0 command, the current modes are the following: DYNAMIC NOG_FLOAT (D_float) INTERRUPT KEYPAD LINE NOSCREEN SCROLL NOSEPARATE SYMBOLIC Related commands: (SET,CANCEL) MODE (SET,SHOW,CANCEL) RADIX 4 Example DBG> SHOW MODE8 modes: symbolic, line, d_float, screen, scroll, keypad,. dynamic, interrupt, no separate window input radix :decimal output radix:decimal DBG>A The SHOW MODE command displays the current modes and current input and output radix. 3 MODULE? Displays information about the modules in the current image. Format SHOW MODULE [module-name] 4 Parameters module-nameC Specifies the name of a module to be included in the display. If@ you do not specify a name, or if you specify the asterisk (*)@ wildcard character by itself, all modules are listed. You canC use a wildcard within a module name. Shareable image modules are' selected only if you specify /SHARE. 4 Qualifiers /RELATED /RELATED /NORELATED (default); (Applies to Ada programs.) Controls whether the debugger; includes, in the SHOW MODULE display, any module that isA related to a specified module through a with-clause or subunit relationship.> The SHOW MODULE/RELATED command displays related modules as< well as those specified. The display identifies the exact@ relationship. By default (/NORELATED), no related modules areB selected for display (only the modules specified are selected). /SHARE /SHARE /NOSHARE (default)= Controls whether the debugger includes, in the SHOW MODULE@ display, any shareable images that have been linked with your@ program. By default (/NOSHARE) no shareable image modules are selected for display.A The debugger creates dummy modules for each shareable image inB  your program. The names of these shareable "image modules" haveD the prefix SHARE$. The SHOW MODULE/SHARE command identifies theseA shareable image modules, as well as the modules in the current image.? Setting a shareable image module loads the universal symbols@ for that image into the run-time symbol table so that you can? reference these symbols from the current image. However, youA cannot reference other (local or global) symbols in that imageB from the current image. This feature overlaps the effect of the+ newer SET IMAGE and SHOW IMAGE commands. 4 DescriptionC The SHOW MODULE command displays the following information about, one or more modules selected for display: o Name of the moduleC o Programming language in which the module is coded, unless all, modules are coded in the same languageB o Whether the module has been set with the SET MODULE command.A That is, whether the symbol records of the module have been< loaded into the debugger's run-time symbol table (RST)@ o Space (in bytes) required in the RST for symbol records in that module5 o Total number of modules selected in the display> o Number of bytes allocated for the RST and other internal= structures (the amount of heap space in use in the main debugger's process)& NOTE@ The current image is either the main image (by default) orB the image established as the current image by a previous SET IMAGE command.6 For information specific to Ada programs, type Help Language_Support Ada. Related commands: (SET,SHOW,CANCEL) IMAGE SET MODE [NO]DYNAMIC (SET,CANCEL) MODULE (SET,SHOW,CANCEL) SCOPE SHOW SYMBOL 4 Examples 1.DBG> SHOW MODULE) module name symbols size( TEST yes 432( SCREEN_IO no 2807 total  PASCAL modules: 2. bytes allocated: 2740. DBG>C In this example, the SHOW MODULE command, without a parameter,A displays information about all of the modules in the currentB image, which is the main image by default. This example shows= the display format when all modules have the same sourceA language. The symbols column shows that module TEST has been' set, but module SCREEN_IO has not.# 2.DBG> SHOW MODULE FOO,MAIN,SUB*4 module name  symbols language size3 FOO yes MACRO 4323 MAIN no FORTRAN 2803 SUB1 no FORTRAN 1643 SUB2 no FORTRAN 2042 total modules: 4. bytes allocated: 60720. DBG>B In this example, the SHOW MODULE command displays information? about the modules FOO and MAIN, and all modules having the? prefix SUB. This example shows the display format when the2 modules do not have the same source language. 3.DBG> SHOW MODULE/SHARE4 module name symbols language size4 FOO yes MACRO 4324 MAIN no FORTRAN 280 . . .4 SHARE$DEBUG no Image 04 SHARE$LIBRTL no Image 04 SHARE$MTHRTL no Image 04 SHARE$SHARE1 no Image 04 SHARE$SHA RE2 no Image 04 total modules: 17. bytes allocated: 162280.! DBG> SET MODULE SHARE$SHARE2' DBG> SHOW SYMBOL * IN SHARE$SHARE2B In this example, the SHOW MODULE/SHARE command identifies allA of the modules in the current image and all of the shareable@ images (the names of the shareable images are prefixed withC SHARE$. The SET MODULE SHARE$SHARE2 command sets the shareableB image module SHARE$SHARE2. The SHOW SYMBOL command identifiesA any universal symbols defined in the shareable image SHARE2. 3 OUTPUT) Identifies the current output options. Format SHOW OUTPUT 4 DescriptionC The current output options are the options last established withA the SET OUTPUT command. By default, if you did not enter a SET? OUTPUT command, the output options are: NOLOG, NOSCREEN_LOG, TERMINAL, NOVERIFY. Related commands: SET LOG SET MODE SCREEN SET OUTPUT 4 Example DBG> SHOW OUTPUT noverify, terminal, screen_log,- logging to USER$:[JONES.WORK]DEBUG.LOG;9 DBG>= This command shows the following current output options:C o Debugger commands read from debugger command procedures are# not echoed on the terminal.; o Debugger output is being displayed on the terminal.= o The debugging session is being logged to the log file& USER$:[JONES.WORK]DEBUG.LOG;9.D o The screen contents are logged as they are updated in screen mode. 3 PROCESS@ Displays information about processes that are currently under debugger control. Format+ SHOW PROCESS [process-spec[, . . . ]] 4 Parameters process-specC Specifies a process currently under debugger control. Use any of the following forms:D [%PROCESS_NAME] process- The process name, if that name does notD name contain spaces or lowercase character s.= The process name can include the> asterisk (*) wildcard character.D [%PROCESS_NAME] The process name, if that name contains@ "process-name" spaces or lowercase characters. YouD can also use apostrophes (') instead of1 quotation marks (").; %PROCESS_PID process_id The process identifier (PID, a1 hexadecimal number).B  [%PROCESS_NUMBER] The number assigned to a process when? process-number it comes under debugger control. AA (or %PROC process- new number is assigned sequentially,A number) starting with 1, to each process. IfB a process is terminated with the EXIT? or QUIT command, the number can be@ assigned again during the debuggingA session. Process numbers appear in a@ SHOW PROCESS display. Processes areC ordered in a circular list so they canA be indexed with the built-in symbolsA %PREVIOUS_PROCESS and %NEXT_PROCESS.6 process-set-name A symbol defined with theD DEFINE/PROCESS_SET command to represent2 a group of processes.? %NEXT_PROCESS  The next process after the visible? process in the debugger's circular* process list.@ %PREVIOUS_PROCESS The process previous to the visible? process in the debugger's circular* process list.C %VISIBLE_PROCESS The process whose stack, register set,C and images are the current context forA looking up symbols, register values,C routine calls, breakpoints, and so on.D You can also use the asterisk (*) wildcard character or the /ALLD qualifier to specify all processes. Do not specify a process withA /ALL or /DYNAMIC. If you do not specify a process or /ALL with@ /BRIEF, /FULL, or /[NO]HOLD, the visible process is selected. 4 Qualifiers /ALL; Selects all processes known to the debugger for display. /BRIEFC (Default) Displays only one line of information for each process selected for display. /DYNAMIC@ Shows whether dynamic process setting is enabled or disabled.B Dynamic process setting is enabled by default and is controlled, with the SET PROCESS/[NO]DYNAMIC command. /FULL= Displays maximum information for each process selected for display. /VISIBLE6 (Default). Selects the visible process for display. 4 Description@ The SHOW PROCESS command displays inf ormation about specified7 processes and any images running in those processes.D The SHOW PROCESS/FULL command also displays information about theA availability and use of the vector processor. This information< is useful if you are debugging a program that uses vector instructions.B A process can first appear in a SHOW PROCESS display as soon asB it comes under debugger control. A process can no longer appearC in a SHOW PROCESS display if it is terminated through an EXIT  or QUIT command.@ By default (/BRIEF), one line of information is displayed for) each process, including the following:C o The process number assigned by the debugger. A process number@ is assigned sequentially, starting with process 1, to each@ process that comes under debugger control. If a process isB terminated by an EXIT or QUIT command, its process number isC not reused during that debugging session. The visible process= is marked with an asterisk (*) in the leftmost column. o The process name.3 o The current debugging state for that process.B o The location (symbolized, if possible) at which execution of- the image is suspended in that process.C The SHOW PROCESS/FULL command gives additional information about processes (see the examples). Related commands: CONNECT Ctrl/C DEFINE/PROCESS_SET EXIT QUIT SET PROCESS 4 Examples 1.all> SHOW  PROCESS4 Number Name State Current PC9 * 2 _WTA3: break SCREEN\%LINE 47 all>> By default, the SHOW PROCESS command displays one line of? information about the visible process (which is identifiedC with an asterisk (*) in the leftmost column). The process hasD the process name _WTA3:. It is the second process brought under@ debugger control (process number 2). It is on hold, and theA image's execution is suspended at a breakpoint at line 47 of module SCREEN. 2.all> SHOW PROCESS TEST_32 Number Name State Current PC7 7 TEST_3 watch of TEST_3\ROUT4\COUNT; TEST_3\%LINE 54 all>? This SHOW PROCESS command displays one line of informationD about process TEST_3. The image is suspended at a watchpoint of variable COUNT. 3.all> SHOW PROCESS/DYNAMIC' Dynamic process setting is enabled all>D This command indicates that dynamic process setting is enabled. 3 RADIXD Identifies the current radix for the entry and display of integerA data or, if you specify /OVERRIDE, the current override radix. Format SHOW RADIX 4 Qualifiers /OVERRIDE) Identifies the current override radix. 4 DescriptionA The debugger can interpret and display integer data in any one@ of four radixes: binary, decimal, hexadecimal, an d octal. TheA current radix for the entry and display of integer data is the5 radix last established with the SET RADIX command.B If you did not enter a SET RADIX command, the default radix forD both data entry and display is decimal for most languages. On VAXB processors, the exceptions are BLISS and MACRO-32, which have aD default radix of hexadecimal. On Alpha processors, the exceptionsC are BLISS, MACRO-32, and MACRO-64, 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/OVERRIDEB command. If you did not enter a SET RADIX/OVERRIDE command, the override radix is "none". Related commands: DEPOSIT EVALUATE EXAMINE (SET,CANCEL) RADIX 4 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/OVERRIDEC command indicates the override radix. This means that commandsB such as EXAMINE display all data as hexadecimal integer data. 3 SCOPE> Identifies the current scope search list for symbol lookup. Format  SHOW SCOPE 4 Description? The current scope search list designates one or more programB locations (specified by path names or other special characters)A to be used in the interpretation of symbols that are specified3 without path-name prefixes in debugger commands.> The current scope search list is the scope search list lastA established with the SET SCOPE command. By default, if you didB 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 path-name prefix, a symbol lookup such as EXAMINE X? first looks for X in the routine that is currently executingA (scope 0); if no X is visible there, the debugger looks in theC caller of that routine (scope 1), and so on down the call stack;B if X is not found in scope n, the debugger searches the rest ofC 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 commandB displays the name of the routine represented by the integer, if possible. Related commands: (SET,CANCEL) SCOPE 4 Examples 1.DBG> CANCEL SCOPE DBG> SHOW SCOPE scope:0 * 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 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 searchC list, which is displayed by the (first) SHOW SCOPE command. InA this example, execution is suspended at routine REMOVEQUEEN,B after several recursive calls to routine TRYCOL. The asteriskC (*) 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 scopeB search list to scope 2. Scope 2 is the scope of the caller ofA the routine in which execution is suspended. The asterisk inA the output of the (second) SHOW SCOPE command indicates that3 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 pat h-name prefixes according toA the following scope search list. First the debugger looks inA 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, itC then looks in module SCREEN_IO, and then finally in the globalD symbol table (denoted by the global scope (\)). The SHOW SCOPE@ command identifies the current scope search list for symbolB  lookup. No asterisk is shown in the SHOW SCOPE display unlessC the default scope search list is in effect or you have entered! a SET SCOPE/CURRENT command. 3 SEARCHC Identifies the default qualifiers (/ALL or /NEXT, /IDENTIFIER or7 /STRING) currently in effect for the SEARCH command. Format SHOW SEARCH 4 Description@ The default qualifiers for the SEARCH command are the defaultB qualifiers last established with the SET SEARCH command. If youA did not enter a SET SEARCH command, the default qualifiers are /NEXT and /STRING. Related commands: SEARCH (SET,SHOW) LANGUAGE SET SEARCH 4 Example DBG> SHOW SEARCH9 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 theA default settings for the SET SEARCH command. By default, theB debugger searches for and displays the next occurrence of the string.? The second SHOW SEARCH command indicates that the debuggerA 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 displaysA 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. 3 SELECT= Identifies the displays currently selected for each of theB display attributes: error, input, instruction, output, program, prompt, scroll, and source.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format SHOW SELECT 4 Description8 The display attributes have the following properties:> o A display that has the error attribute displays debugger diagnostic messages.A o A display that has the input attribute echoes your debugger input.? o A display that has the instruction attribute displays the? decoded instruction stream of the routine being debugged.B The display is updated when you enter an EXAMINE/INSTRUCTION command.C o A display that has the output attribute displays any debugger5 output that is not directed to another display.? o A display that has the program attribute displays programB input and output. Currently only the PROMPT display can have the program attribute.C o A display that has the prompt attribute is where the debuggerD prompts for input. Currently, only the PROMPT display can have the PROMPT attribute.D o A display that has the scroll attribute is the default display0 for the SCROLL, MOVE, and EXPAND commands.A o A display that has the source attribute displays the sourceB code of the module being debugged, if available. The displayA is updated when you enter a TYPE or EXAMINE/SOURCE command. Related commands: SELECT SHOW DISPLAY 4 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 currentlyB selected for each of the display attributes. These selections$ are the defaults for languages. 3 SOURCEB Identifies the source directory search lists and search methods currently in effect. Format SHOW SOURCE 4 Qualifiers /DISPLAYD 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. 4 DescriptionA 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 allB modules not explicitly mentioned in a SET SOURCE/MODULE=module-? name command. When you have used those commands, SHOW SOURCEC identifies the source directory search list associated with each search category.@ If a source directory search list has not been established byA using the SET SOURCE or SET SOURCE/MODULE=module-name command,B the SHOW SOURCE command indicates that no directory search listB is currently in effect. In this case, the debugger expects eachD source file to be in the same directory t hat it was in at compileA time (the debugger also checks that the version number and theC creation date and time of a source file match the information in the debugger's symbol table).D The /EDIT qualifier is needed when the files used for the displayD of source code are different from the files to be edited by using@ the EDIT command. This is the case with Ada programs. For AdaB programs, the SHOW SOURCE command identifies the search list of@ files used for source display (the copied source files in AdaB program libraries); the SHOW SOURCE/EDIT command identifies the@ search list for the source files you edit when using the EDIT command.4 For information specific to Ada programs, see the# Language_Support Ada help topic. Related commands: (SET,CANCEL) SOURCE 4 Examples 1.DBG> SHOW SOURCE( no directory search list in effect,- match the latest source file version7 DBG> SET SOURCE [PROJA],[PROJB],DISK:[PETER.PROJC] DBG> SHOW SOURCE2 source directory search list for all modules,. match the latest source file version: [PROJA] [PROJB] DISK:[PETER.PROJC] DBG>D In this example, the SET SOURCE command directs the debugger toD 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]8 source directory search list for all other modules,* match the latest source file version: [PROJA] [PROJB] DISK:[PETER.PROJC] DBG>A In this example, the SET SOURCE command directs the debugger? to search the current default directory ([]) and directoryB DISK$2:[PROJD] for source files to use with the module CTEST.? The /EXACT qualifier specifies that the search will locateC the exact version of the CTEST source files found in the debug symbol table. 3 STACK> Displays information on the currently active routine calls. Format SHOW STACK [integer] 4 Parameters integer= Specifies the number of frames to display. If you omit the> parameter, the debugger displays information about all call frames. 4 DescriptionC For each call frame, the SHOW STACK command displays information@ such as the condition handler, saved register values, and theD argument list, if any. The latter is the list of arguments passedD to the subroutine with that call. In some cases the argument listD can contain the addresses of actual arguments. In such cases, useB the EXAMINE address-expression command to display the values of these arguments.? On VAX processors , each routine invocation results in a call frame on the call stack.B On Alpha processors, a routine invocation can result in a stack? frame procedure (with a call frame on the stack), a registerB frame procedure (with a call frame stored in the register set),? or a null frame procedure (without a call frame). SHOW STACK= provides information on all three: stack frame procedures,= register frame procedures, and null frame procedures. (See Example 2 below.) Related command: SHOW CALLS 4 Examples 1.DBG> SHOW STACK stack frame 0 (2146814812) condition handler: 0 SPA: 0 S: 0" mask: ^M. PSW: 0000 (hexadecimal) saved AP: 7& saved FP: 21468148520 saved PC: EIGHTQUEENS\%LINE 69 saved R2: 02 argument list:(1) EIGHTQUEENS\%LINE 68+2  stack frame 1 (2146814852), condition handler: SHARE$PASRTL+888 SPA: 0 S: 0& mask: none saved. PSW: 0000 (hexadecimal)& saved AP: 2146814924& saved FP: 2146814904+ saved PC: SHARE$DEBUG+667 DBG>< In this example for VAX systems, the SHOW STACK commandD displays information about all call stack frames at the current PC location. 3 STEPD Identifies the default qualifiers (/INTO, /INSTRUCTION, /NOSILENT7 and so on) currently in effect for the STEP command. Format SHOW STEP 4 Description> The default qualifiers for the STEP command are the defaultB qualifiers last established by the SET STEP command. If you didB 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 (toA eliminate redundant source display in output and DO displays).D In that case, the default qualifiers are /LINE, /OVER, /NOSILENT, and /NOSOURCE. Related commands: STEP SET STEP 4 Example9 DBG> SET STEP INTO,NOSYSTEM,NOSHARE,INSTRUCTION,NOSOURCE DBG> SHOW STEPF 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:D o Steps into called routines, but not those in system space or in shareable images o Steps by instruction< o Does not display lines of source code while stepping 3 SYMBOLD 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) orB the image established as the current image by a previous SET IMAGE command. Format< SHOW SYMBOL symbol-name[, . . . ] [IN scope[, . . . ]] 4 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 (*)D wil dcard character by itself, all symbols are listed. You can use% the wildcard within a symbol name. scopeB Specifies the name of a module, routine, or lexical block, or aC numeric scope. It has the same syntax as the scope specificationB in a SET SCOPE command and can include path-name qualification.D All specified scopes must be in set modules in the current image.A 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 scopeA 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. 4 Qualifiers /ADDRESSC Displays the address specification for each selected symbol. The@ address specification is the method of computing the symbol'sD address. It can mer ely be the symbol's memory address, but it canD also involve indirection or an offset from a register value. SomeD symbols have address specifications too complicated to present inC any understandable way. These address specifications are labeled$ "complex address specifications."B 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. /DEFINEDD Displays symbols you have defined with the DEFINE command (symbol4 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 nestedD within the scope specified by the scope parameters are not shown. /FULLD Displays all information associated with the /ADDRESS, /TYPE, and /USE_CLAUSE qualifiers.D For C++ modules, if symbol-name is a class, SHOW SYMBOL/FULL also( displays information about the class. /LOCALB 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 aA specified block, subprogram, or package names in a use clause.C If the symbol specified is a package, also identifies any block,B subprogram, package, and so on, that names the specified symbol in a use clause. 4 DescriptionA The SHOW SYMBOL command displays information that the debuggerB 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 forD understanding why the debugger might act as it does when handling symbols.C If you do not specify a qualifier, the SHOW SYMBOL command listsA all of the possible declarations or definitions of a specified? symbol that exist in the RST for the current image (that is,A in all set modules and in the GST for that image). Symbols are> displayed with their path names. A path name identifies theA search scope (module, nested routines, blocks, and so on) thatB the debugger must follow to reach a particular declaration of aC symbol. When specifying symbolic address expressions in debugger@ commands, use path names only if a symbol is defined multiple7 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 display9 information about symbols defined within your program.6 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>C This command shows that symbol I is defined in module FORARRAY4 and is a variable (data) rather than a routine.' 2.DBG> SHOW SYMBOL/ADDRESS INTARRAY1 data FORARRAY\INTARRAY1& descriptor address: 0009DE8B DBG>B This command shows that symbol INTARRAY1 is defined in module3 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 bytesA 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 the1 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. 3 TASK@ Displays information about the tasks of a multithread program# (also called a tasking program).& NOTE; SET TASK and SET THREAD are synonymous commands. They perform identically. Format' SHOW THREAD [task-spec[, . . . ]] 4 Parameters task-spec: Specifies a task value. Use any of the following forms:) o When the event facility is THREADS:> - A task (thread) name as declared in the program, or a: language expression that yields a task ID number.B - A task ID number (for example, 2), as indicated in a SHOW THREAD display.% o When the event facility is ADA:> - A task (thread) name as declared in the program, or aD language expression that yields a task value. You can use a path name.B - A task ID (fo r example, 2), as indicated in a SHOW THREAD display.1 o One of the following task built-in symbols:B %ACTIVE_TASK The task that runs when a GO, STEP, CALL, or, EXIT command executes.D %CALLER_TASK (Applies only to Ada programs.) When an acceptB statement executes, the task that called theA entry associated with the accept statement.< %NEXT_TASK The task after the visible task in theA  debugger's task list. The ordering of tasksA is arbitrary but consistent within a single' run of a program.B %PREVIOUS_ The task previous to the visible task in the+ TASK debugger's task list.D %VISIBLE_TASK The task whose call stack and register set areA the current context for looking up symbols,B register values, routine calls, breakpoints,  and so on.D Do not use the asterisk (*) wildcard character. Instead, use theC /ALL qualifier. Do not specify a task with /ALL, /STATISTICS, or /TIME_SLICE. 4 Qualifiers /ALLA Selects all existing tasks for display-namely, tasks that haveC been created and (in the case of Ada tasks) whose master has not yet terminated. /CALLS /CALLS[=n]@ Does a SHOW CALLS command for each task selected for display.? This identifies the currently active routine calls (the call stack) for a task. /FULL. When the event facility is THREADS, use the$ PTHREAD thread -f thread-numbercommand.= Displays additional information for each task selected forC display. The additional information is provided if you use /FULL+ by itself or with /CALLS or /STATISTICS.@ You can get help on POSIX Threads debugger commands by typing PTHREAD HELP.D See the Guide to POSIX Threads Library for more information about$ using the POSIX Threads debugger. /HOLD /HOLD /NOHOLD (default)> When the event facility is THREADS, use the PTHREAD tset -n thread-number command.B Selects either tasks that are on hold, or tasks that are not on hold for display.D If you do not specify a task, /HOLD selects all tasks that are onC hold. If you specify a task list, /HOLD selects the tasks in the task list that are on hold.? If you do not specify a task, /NOHOLD selects all tasks thatC are not on hold. If you specify a task list, /NOHOLD selects the/ tasks in the task list that are not on hold.@ You can get help on POSIX Threads debugger commands by typing PTHREAD HELP.D See the Guide to POSIX Threads Library for more information about$ using the POSIX Threads debugger. /IMAGEB Displays the image name for each active call on the call stack.( Valid only with the /CALLS qualifier. /PRIORITY /PRIORITY=(n[, . . . ])> When the event facility is THREADS, use the PTHREAD tset -s thread-number command.@ If you do not specify a task, selects all tasks having any ofC the specified priorities, n, where n is a decimal integer from 0C to 15. If you specify a task list, selects the tasks in the task2 list that have any of the priorities specified.@ You can get help on POSIX Threads debugger commands by typing PTHREAD HELP.D See the Guide to POSIX Threads Library for more information about$ using the POSIX Threads debugger. /STATE /STATE=(state[, . . . ])B If you do not specify a task, selects all tasks that are in anyD of the specified states-RUNNING, READY, SUSPENDED, or TERMINATED.A If you specify a task list, selects the tasks in the task list+ that are in any of the states specified. /STATISTICSC (Compaq Ada on VAX only) Displays task statistics for the entire> tasking system. This information enables you to m easure the@ performance of your tasking program. The larger the number of? total schedulings (also known as context switches), the more tasking overhead there is. /TIME_SLICE@ (VAX only) Displays the current time-slice value, in seconds,@ as specified by a previous SET TASK/TIME_SLICE command. If no? SET TASK/TIME_SLICE command was previously entered, displaysC the time-slice value, if any, that was specified in the program.B If no time-slice value was previously established, the value is) 0.0-that is, time slicing is disabled.< /TIME_SLICE is valid only when the event facility is ADA. 4 DescriptionA A task can first appear in a SHOW THREAD display as soon as itC is created. A task can no longer appear in a SHOW THREAD displayA if it is terminated or (in the case of an Ada tasking program)C if its master is terminated. By default, the SHOW THREAD command; displays one line of information for each task selected.C When you specify the /IMAGE qualifier, the debugger first does aD SET IMAGE command for each image that has debug information (thatC is, it was linked using the /DEBUG or /TRACEBACK qualifier). TheD debugger then displays the image name for each active call on theA calls stack. The output display has been expanded and displays& the image name in the first column.D The debugger suppresses the share$image_name module name, because8 that information is provided by the /IMAGE qualifier.@ The SET IMAGE command lasts only for the duration of the SHOWB THREAD/CALLS/IMAGE command. The debugger restores the set image> state when the SHOW THREAD/CALLS/IMAGE command is complete. Related commands: DEPOSIT/TASK EXAMINE/TASK (SET, SHOW) EVENT_FACILITY SET TASK|THREAD 4 Examples 1.DBG> SHOW EVENT_FACILITY event facility is ADA . . . DBG> SHOW TASK/ALL= task id pri hold state substate ta sk object6 * %TASK 1 7 RUN 122624: %TASK 2 7 HOLD SUSP Accept H4.MONITOR; %TASK 3 6 READY Entry call H4.CHECK_IN DBG>@ In this example, the SHOW EVENT_FACILITY command identifiesA ADA as the current event facility. The SHOW TASK/ALL command= provides basic information about all the tasks that were? created through Ada services and currently exist. One line? is devoted to each task. The active task is marked with anD asterisk (*). In this example, it is also the active task (the$ task that is in the RUN state).* 2.DBG> SHOW TASK %ACTIVE_TASK,3,MONITORB This command selects the active task, 3, and task MONITOR for display. 3.DBG> SHOW TASK/PRIORITY=6@ This command selects all tasks with priority 6 for display.$ 4.DBG> SHOW TASK/STATE=(RUN,SUSP)> This command selects all tasks that are either running or suspended for display.% 5.DBG> SHOW TASK/STATE=SUSP/NOHOLDC This command selects all tasks that are both suspended and not on hold for display.< 6.DBG> SHOW TASK/STATE=(RUN,SUSP)/PRIO=7 %VISIBLE_TASK, 3C This command selects for display those tasks among the visibleA task and %TASK 3 that are in either the RUNNING or SUSPENDED state and have priority 7. 3 TERMINALA Identifies the current terminal screen height (page) and width being used to format output.&  NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format SHOW TERMINAL 4 DescriptionB The current terminal screen height and width are the height andB width last established by the SET TERMINAL command. By default,B if you did not enter a SET TERMINAL command, the current heightC and width are the height and width known to the terminal driver,B as displayed by the DCL command SHOW TERMINAL (usually 24 lines+ and 80 columns for VT-series terminals). Related commands: SET TERMINAL SHOW DISPLAY SHOW WINDOW 4 Example DBG> SHOW TERMINAL terminal width: 80 page: 24 wrap: 80 DBG>@ This command displays the current terminal screen width andC height (page) as 80 columns and 24 lines, and the message wrap setting at column 80. 3 THREAD@ Displays information about the tasks of a multithread program# (also called a tasking program).& NOTE; SET TASK and SET THREAD are synonymous commands. They perform identically. Format' SHOW THREAD [task-spec[, . . . ]] 4 Parameters task-spec: Specifies a task value. Use any of the following forms:) o When the event facility is THREADS:> - A task (thread) name as declared in the program, or a: language expression that yields a task ID number.B - A task ID number (for example, 2), as indicated in a SHOW THREAD display.% o When the event facility is ADA:> - A task (thread) name as declared in the program, or aD language expression that yields a task value. You can use a path name.B - A task ID (for example, 2), as indicated in a SHOW THREAD display.1 o One of the following task built-in symbols:B %ACTIVE_TASK  The task that runs when a GO, STEP, CALL, or, EXIT command executes.D %CALLER_TASK (Applies only to Ada programs.) When an acceptB statement executes, the task that called theA entry associated with the accept statement.< %NEXT_TASK The task after the visible task in theA debugger's task list. The ordering of tasksA is arbitrary but consistent within a single'  run of a program.B %PREVIOUS_ The task previous to the visible task in the+ TASK debugger's task list.D %VISIBLE_TASK The task whose call stack and register set areA the current context for looking up symbols,B register values, routine calls, breakpoints, and so on.D Do not use the asterisk (*) wildcard character. Instead, use theC /ALL qualifier. Do not specify a task with /ALL, /STATISTICS, or /TIME_SLICE. 4 Qualifiers /ALLA Selects all existing tasks for display-namely, tasks that haveC been created and (in the case of Ada tasks) whose master has not yet terminated. /CALLS /CALLS[=n]@ Does a SHOW CALLS command for each task selected for display.? This identifies the currently active routine calls (the call stack) for a task. /FULL7 When the event facility is THREADS, use the command.=  Displays additional information for each task selected forC display. The additional information is provided if you use /FULL+ by itself or with /CALLS or /STATISTICS.@ You can get help on POSIX Threads debugger commands by typing PTHREAD HELP.D See the Guide to POSIX Threads Library for more information about$ using the POSIX Threads debugger. /HOLD /HOLD /NOHOLD (default)> When the event facility is THREADS, use the PTHREAD tset -n thread-number command.B Selects either tasks that are on hold, or tasks that are not on hold for display.D If you do not specify a task, /HOLD selects all tasks that are onC hold. If you specify a task list, /HOLD selects the tasks in the task list that are on hold.? If you do not specify a task, /NOHOLD selects all tasks thatC are not on hold. If you specify a task list, /NOHOLD selects the/ tasks in the task list that are not on hold.@ You can get help on POSIX Threads debugger commands by typing PTHREAD HELP.D See the Guide to POSIX Threads Library for more information about$ using the POSIX Threads debugger. /IMAGEB Displays the image name for each active call on the call stack.( Valid only with the /CALLS qualifier. /PRIORITY /PRIORITY=(n[, . . . ])> When the event facility is THREADS, use the PTHREAD tset -s thread-number command.@ If you do not specify a task, selects all tasks having any ofC the specified priorities, n, where n is a decimal integer from 0C to 15. If you specify a task list, selects the tasks in the task2 list that have any of the priorities specified.@ You can get help on POSIX Threads debugger commands by typing PTHREAD HELP.D See the Guide to POSIX Threads Library for more information about$ using the POSIX Threads debugger. /STATE /STATE=(state[, . . . ])B If you do not specify a task, selects all tasks that are in anyD of the specified states-RUNNING, READY, SUSPENDED, or TERMINATED.A If you specify a task list, selects the tasks in the task list+ that are in any of the states specified. /STATISTICSC (Compaq Ada on VAX only) Displays task statistics for the entire> tasking system. This information enables you to measure the@ performance of your tasking program. The larger the number of? total schedulings (also known as context switches), the more tasking overhead there is. /TIME_SLICE@ (VAX only) Displays the current time-slice value, in seconds,@ as specified by a previous SET TASK/TIME_SLICE command. If no? SET TASK/TIME_SLICE command was previously entered, displaysC the time-slice value, if any, that was specified in the program.B If no time-slice value was previously established, the value is) 0.0-that is, time slicing is disabled.< /TIME_SLICE is valid only when the event facility is ADA. 4 DescriptionA A task can first appe ar in a SHOW THREAD display as soon as itC is created. A task can no longer appear in a SHOW THREAD displayA if it is terminated or (in the case of an Ada tasking program)C if its master is terminated. By default, the SHOW THREAD command; displays one line of information for each task selected.C When you specify the /IMAGE qualifier, the debugger first does aD SET IMAGE command for each image that has debug information (thatC is, it was linked using the /DEBUG or /TRACEBAC K qualifier). TheD debugger then displays the image name for each active call on theA calls stack. The output display has been expanded and displays& the image name in the first column.D The debugger suppresses the share$image_name module name, because8 that information is provided by the /IMAGE qualifier.@ The SET IMAGE command lasts only for the duration of the SHOWB THREAD/CALLS/IMAGE command. The debugger restores the set image> state when the SHOW THREAD/CALLS/IMAGE command is complete. Related commands: DEPOSIT/TASK EXAMINE/TASK (SET, SHOW) EVENT_FACILITY SET TASK|THREAD 4 Examples 1.DBG> SHOW EVENT_FACILITY event facility is ADA . . . DBG> SHOW TASK/ALL= task id pri hold state substate task object6 * %TASK 1 7 RUN 122624: %TASK 2 7 HOLD SUSP Accept H4.MONITOR; %TASK 3 6 READY Entry call H4.CHE CK_IN DBG>@ In this example, the SHOW EVENT_FACILITY command identifiesA ADA as the current event facility. The SHOW TASK/ALL command= provides basic information about all the tasks that were? created through Ada services and currently exist. One line? is devoted to each task. The active task is marked with anD asterisk (*). In this example, it is also the active task (the$ task that is in the RUN state).* 2.DBG> SHOW TASK %ACTIVE_TASK,3,MONITORB This command selects the active task, 3, and task MONITOR for display. 3.DBG> SHOW TASK/PRIORITY=6@ This command selects all tasks with priority 6 for display.$ 4.DBG> SHOW TASK/STATE=(RUN,SUSP)> This command selects all tasks that are either running or suspended for display.% 5.DBG> SHOW TASK/STATE=SUSP/NOHOLDC This command selects all tasks that are both suspended and not on hold for display.< 6.DBG> SHOW TASK/STATE=(RUN,SUSP)/PRIO=7 %VISIBLE_TASK, 3C This command selects for display those tasks among the visibleA task and %TASK 3 that are in either the RUNNING or SUSPENDED state and have priority 7. 3 TRACE* Displays information about tracepoints. Format SHOW TRACE 4 Qualifiers /PREDEFINED5 Displays information about predefined tracepoints. /USER7 Displays information about user-defined tracepoints. 4 Description@ The SHOW TRACE command displays information about tracepointsC that are currently set, including any options such as WHEN or DOA clauses, /AFTER counts, and so on, and whether the tracepoints are deactivated.? By default, SHOW TRACE displays information about both user-B defined and predefined tracepoints (if any). This is equivalentC to entering the SHOW TRACE/USER/PREDEFINED command. User-defined= tracepoints are set with the SET TRACE command. PredefinedA tracepoints are set autom atically when you start the debugger,< and they depend on the type of program you are debugging.D If you established a tracepoint using SET TRACE/AFTER:n, the SHOWB TRACE command displays the current value of the decimal integerA n, that is, the originally specified integer value minus 1 for? each time the tracepoint location was reached. (The debuggerB decrements n each time the tracepoint location is reached until> the value of n is 0, at which time the debugger takes trace action.)< On Alpha systems, the SHOW TRACE command does not displayB individual instructions when the trace is on a particular class? of instruction (as with SET TRACE/CALL or SET TRACE/RETURN). Related commands:/ (ACTIVATE, DEACTIVATE, SET, CANCEL) TRACE 4 Examples 1.DBG> SHOW TRACE$ tracepoint at routine CALC\MULT tracepoint on calls:B RET RSB BSBB JSB BSBW CALLG CALLS DBG>? In this VAX example , the SHOW TRACE command identifies all? tracepoints that are currently set. This example indicatesC user-defined tracepoints that are triggered whenever executionC reaches routine MULT in module CALC or one of the instructions0 RET, RSB, BSBB, JSB, BSBW, CALLG, or CALLS. 2.all> SHOW TRACE/PREDEFINED0 predefined tracepoint on program activation9 DO (SET DISP/DYN/REM/SIZE:64/PROC SRC_ AT H1 SOURCE. (EXAM/SOURCE .%SOURCE_SCOPE\%PC);7 SET D ISP/DYN/REM/SIZE:64/PROC INST_ AT H1 INST' (EXAM/INSTRUCTION .0\%PC))1 predefined tracepoint on program termination all>@ This command identifies the predefined tracepoints that are@ currently set. The example shows the predefined tracepointsB that are set automatically by the debugger for a multiprocessD program. The tracepoint on program activation triggers whenever> a new process comes under debugger control. The DO clause@ creates a process-specific source display named SRC_n and aA process-specific instruction display named INST_n whenever aB process activation tracepoint is triggered. The tracepoint onB program termination triggers whenever a process does an image exit. 3 TYPE@ Identifies the current type for program locations that do notC have a compiler-generated type or, if you specify /OVERRIDE, the current override type. Format SHOW TYPE 4 Qualifiers /OVERRIDE( Identifies the current override type. 4 Description< The current type for program locations that do not have aB compiler-generated type is the type last established by the SETB TYPE command. If you did not enter a SET TYPE command, the type+ for those locations is longword integer.= The current override type for all program locations is theC override type last established by the SET TYPE/OVERRIDE command.A If you did not enter a SET TYPE/OVERRIDE command,  the override type is "none". Related commands: CANCEL TYPE/OVERRIDE DEPOSIT EXAMINE (SET,SHOW,CANCEL) MODE (SET,SHOW,CANCEL) RADIX SET TYPE 4 Examples 1.DBG> SET TYPE QUADWORD DBG> SHOW TYPE type: quadword integer DBG>@ In this example, you set the type to quadword for locations> that do not have a compiler-generated type. The SHOW TYPEB command displays the current default type for those l ocationsA as quadword integer. This means that the debugger interpretsB and displays entities at those locations as quadword integersD unless you specify otherwise (for example with a type qualifier on the EXAMINE command). 2.DBG> SHOW TYPE/OVERRIDE type/override: none DBG>C This command indicates that no override type has been defined. 3 VECTOR_MODE6 Identifies the current vector mode (synchronized or nonsynchronized).& Applies to  VAX vectorized programs. Format SHOW VECTOR_MODE 4 Description? The current vector mode is the mode established with the SET> VECTOR_MODE command. If you did not enter a SET VECTOR_MODE7 command, the default vector mode is NONSYNCHRONIZED. Related commands:1 SET VECTOR_MODE [NO]SYNCHRONIZED (VAX only)( SYNCHRONIZE VECTOR_MODE (VAX only) 4 Example DBG> SHOW VECTOR_MODE Vector mode is nonsynchronized" DBG> SET VECTOR_MODE SYNCHRONIZ ED DBG> SHOW VECTOR_MODE Vector mode is synchronized DBG>A The SHOW VECTOR_MODE command indicates the effect of the SET VECTOR_MODE command. 3 WATCH* Displays information about watchpoints. Format SHOW WATCH 4 Description@ The SHOW WATCH command displays information about watchpointsC that are currently set, including any options such as WHEN or DOA clauses, /AFTER counts, and so on, and whether the watchpoints are deactivated. D If you established a watchpoint using SET WATCH/AFTER:n, the SHOWB WATCH command displays the current value of the decimal integerA n, that is, the originally specified integer value minus 1 for? each time the watchpoint location was reached. (The debuggerB decrements n each time the watchpoint location is reached until> the value of n is 0, at which time the debugger takes watch action.) Related commands:, (ACTIVATE,CANCEL,DEACTIVATE,SET) WATCH 4 Example DBG> SHOW WATCH watchpoint of MAIN\X watchpoint of SUB2\TABLE+20 DBG>? This command displays two watchpoints: one at the variable> X (defined in module MAIN), and the other at the location> SUB2\TABLE+20 (20 bytes beyond the address denoted by the address expression TABLE). 3 WINDOW< Identifies the name and screen position of predefined and$ user-defined screen-mode windows.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format) SHOW WINDOW [window-name[, . . . ]] 4 Parameters windownameB Specifies the name of a screen window definition. If you do not? specify a name, or if you specify the asterisk (*) wildcardB character by itself, all window definitions are listed. You canA use the wildcard within a window name. Do not specify a window+ definition name with the /ALL qualifier . 4 Qualifiers /ALL Lists all window definitions. 4 Description Related commands: (SHOW,CANCEL) DISPLAY (SET,SHOW) TERMINAL (SET,CANCEL) WINDOW SHOW SELECT 4 Example DBG> SHOW WINDOW LH*,RH* window LH1 at (1,11,1,40) window LH12 at (1,23,1,40) window LH2 at (13,11,1,40) window RH1 at (1,11,42,39) window RH12 at (1,23,42,39) window RH2 at (13,11,42,39) DBG>> This command displays the name and screen position of all? screen window definitions whose names start with LH or RH. 2 SPAWN= Creates a subprocess, enabling you to execute DCL commandsC without terminating a debugging session or losing your debugging context.& NOTEB This command is not available in the Compaq DECwindows Motif1 for OpenVMS user interface to the debugger. Format SPAWN [DCL-command] 3 Parameters DCL-commandB S pecifies a DCL command which is then executed in a subprocess.D Control is returned to the debugging session when the DCL command terminates.? If you do not specify a DCL command, a subprocess is createdA and you can then enter DCL commands. Either logging out of theC spawned process or attaching to the parent process (with the DCL9 command ATTACH) returns you to your debugging session.@ If the DCL command contains a semicolon, you must enclose the> command in quotation marks ("). Otherwise the semicolon is< interpreted as a debugger command separator. To include a@ quotation mark in the string, enter two consecutive quotation marks (""). 3 Qualifiers /INPUT /INPUT=file-specB Specifies an input DCL command procedure containing one or more= DCL commands to be executed by the spawned subprocess. TheA default file type is .COM. If you specify a DCL command stringD with the SPAWN command and an input file with /INPUT, the command> string is processed before the input file. After processing? of the input file is complete, the subprocess is terminated.> Do not use the asterisk (*) wildcard character in the file specification. /OUTPUT /OUTPUT=file-spec> Writes the output from the SPAWN operation to the specified? file. The default file type is .LOG. Do not use the asterisk5 (*) wildcard character in the file specification. /WAIT /WAIT (default) /NOWAITA Controls whether the debugging session (the parent process) isA suspended while the subprocess is running. The /WAIT qualifier@ (default) suspends the debugging session until the subprocessB is terminated. You cannot enter debugger commands until control! returns to the parent process.A The /NOWAIT qualifier executes the subprocess in parallel withC the debugging session. You can enter debugger commands while the@ subprocess is running. If you use /NOWAIT, yo u should specify@ a DCL command with the SPAWN command; the DCL command is thenC executed in the subprocess. A message indicates when the spawned subprocess completes.@ The kept debugger (that is, the debugger invoked with the DCLB command DEBUG/KEEP) shares I/O channels with the parent process> when it is run by a SPAWN/NOWAIT command. Therefore, in the? Compaq DECwindows Motif for OpenVMS user interface, you mustD press the Return key twice on the DECterm from which the debugger@ was run after the debugger version number has appeared in the command view.A Optionally, you can execute the kept debugger in the following manner: $ DEFINE DBG$INPUT NL:! $ SPAWN/NOWAIT RUN DEBUG/KEEP 3 DescriptionA The SPAWN command acts exactly like the DCL command SPAWN. YouA can edit files, compile programs, read mail, and so on withoutA ending your debugging session or losing your current debugging context.D In addition, you can spawn a DCL command SPAWN. DCL processes theD second SPAWN command, including any qualifier specified with that command. Related command: ATTACH 3 Examples 1.DBG> SPAWN $D This example shows that the SPAWN command, without a parameter,= creates a subprocess at DCL level. You can now enter DCL8 commands. Log out to return to the debugger prompt.8 2.DBG> SPAWN/NOWAIT/INPUT=READ_NOTES/OUTPUT=0428NOTESC This command creates a su bprocess that is executed in parallelA with the debugging session. This subprocess executes the DCLB command procedure READ_NOTES.COM. The output from the spawned4 operation is written to the file 0428NOTES.LOG.1 3.DBG> SPAWN/NOWAIT SPAWN/OUT=MYCOM.LOG @MYCOMC This command creates a subprocess that is executed in parallel@ with the debugging session. This subprocess creates anotherC subprocess to execute the DCL command procedure MYCOM.COM. TheA output from that operation is written to the file MYCOM.LOG. 2 STEPB Executes the program up to the next line, instruction, or other specified location. Format STEP [integer] 3 Parameters integer< A decimal integer that specifies the number of step units? (lines, instructions, and so on) to be executed. If you omit6 the parameter, the debugger executes one step unit. 3 Qualifiers /BRANCHC Executes the program to the next branch instruction. STEP/BRANCH8 has the same effect as SET BREAK/TEMPORARY/BRANCH;GO. /CALL? Executes the program to the next call or return instruction.@ STEP/CALL has the same effect as SET BREAK/TEMPORARY/CALL;GO. /EXCEPTION1 Executes the program to the next exception, if1 any. STEP/EXCEPTION has the same effect as SET8 BREAK/TEMPORARY/EXCEPTION;GO. If no exception occurs,, STEP/EXCEPTION has the same effect as GO. /INSTRUCTION /INSTRUCTION%  /INSTRUCTION=(opcode[, . . . ])A When you do not specify an opcode, executes the program to the@ next instruction. STEP/INSTRUCTION has the same effect as SET" BREAK/TEMPORARY/INSTRUCTION;GO.> On VAX processors, you can specify one or more opcodes; the> debugger executes the program to the next instruction whose@ opcode is in the list. The following commands are equivalent:+ DBG> STEP/INSTRUCTION=(opcode[, . . . ])= DBG> SET BREAK/TEMPORARY/INSTRUCTION=(opcode[, . . . ]);GOA On VAX processors, you can specify vector instructions; do not> include an instruction qualifier (/UNALIGNED_DATA, /VECTOR_B INSTRUCTION, /MODIFY, /0, or /1) with the instruction mnemonic. /INTOC If execution is currently suspended at a routine call, STEP/INTOB executes the program up to the beginning of that routine (stepsB into that routine). Otherwise, STEP/INTO has the same effect asC STEP without a qualifier. The /INTO qualifier is the opposite of  /OVER (the default behavior).& NOTE: On Alpha processors, when execution is stopped at an? exception break, STEP/INTO does not transfer control to aB user exception handler. Stop execution within the handler by* setting a breakpoint in the handler.D The STEP/INTO behavior can be changed by also using the /[NO]JSB,* /[NO]SHARE, and /[NO]SYSTEM qualifiers. /JSB /JSB /NOJSB= (VAX only) Qualifies a previo us SET STEP INTO command or a current STEP/INTO command.@ If execution is currently suspended at a routine call and theB routine is called by a JSB instruction, STEP/INTO/NOJSB has theD same effect as STEP/OVER. Otherwise, STEP/INTO/NOJSB has the same effect as STEP/INTO.C Use STEP/INTO/JSB to override a previous SET STEP NOJSB command.? STEP/INTO/JSB enables STEP/INTO to step into routines calledB by a JSB instruction, as well as into routines called by a CALL i nstruction.= The /JSB qualifier is the default for all languages exceptB DIBOL. The /NOJSB qualifier is the default for DIBOL. In DIBOL,C application-declared routines are called by the CALL instruction< and DIBOL Run-Time Library routines are called by the JSB instruction. /LINEA Executes the program to the next line of source code. However,> the debugger skips over any source lines that do not resultA in executable code when compiled (for example, comment li!nes).@ STEP/LINE has the same effect as SET BREAK/TEMPORARY/LINE;GO.2 This is the default behavior for all languages. /OVERC If execution is currently suspended at a routine call, STEP/OVER@ executes the routine up to and including the routine's returnD instruction (steps over that routine). The /OVER qualifier is the1 default behavior and is the opposite of /INTO.& NOTEB On Alpha processors, when execution is suspended at a so "urce> line that contains a loop with a routine call, STEP/OVER@ steps into the called routine. To step to the next program@ statement, set a temporary breakpoint at the statement and enter GO. /RETURND Executes the routine in which execution is currently suspended upD to its return instruction (that is, up to the point just prior toB transferring control back to the calling routine). This enables@ you to inspect the local environment (for example, obtain# theC values of local variables) before the return instruction deletesD the routine's call frame from the call stack. STEP/RETURN has the0 same effect as SET BREAK/TEMPORARY/RETURN;GO.D STEP/RETURN n executes the program up n levels of the call stack. /SEMANTIC_EVENT@ (Alpha only) Executes the program to the next semantic event.D STEP/SEMANTIC_EVENT simplifies debugging optimized code. (See the Description section.) /SHARE /SHARE (default) /N$OSHARED Qualifies a previous SET STEP INTO command or a current STEP/INTO command.? If execution is currently suspended at a call to a shareable: image routine, STEP/INTO/NOSHARE has the same effect asA STEP/OVER. Otherwise, STEP/INTO/NOSHARE has the same effect as STEP/INTO.> Use STEP/INTO/SHARE to override a previous SET STEP NOSHARED command. STEP/INTO/SHARE enables STEP/INTO to step into shareable; image routines, as well as into other kinds of routines. %/SILENT /SILENT /NOSILENT (default)B Controls whether the "stepped to . . . " message and the sourceA line for the current location are displayed after the STEP hasC completed. The /NOSILENT qualifier specifies that the message isB displayed. The /SILENT qualifier specifies that the message andA source line are not displayed. The /SILENT qualifier overrides /SOURCE. /SOURCE /SOURCE (default) /NOSOURCE? Controls whether the &source line for the current location is@ displayed after the STEP has completed. The /SOURCE qualifier= specifies that the source line is displayed. The /NOSOURCE= qualifier specifies that the source line is not displayed.A The /SILENT qualifier overrides /SOURCE. See also the SET STEP [NO]SOURCE command. /SYSTEM /SYSTEM (default) /NOSYSTEMD Qualifies a previous SET STEP INTO command or a current STEP/INTO command.< If execution is currently' suspended at a call to a system@ routine (in P1 space), STEP/INTO/NOSYSTEM has the same effectB as STEP/OVER. Otherwise, STEP/INTO/NOSYSTEM has the same effect as STEP/INTO.@ Use STEP/INTO/SYSTEM to override a previous SET STEP NOSYSTEMB command. STEP/INTO/SYSTEM enables STEP/INTO to step into system5 routines, as well as into other kinds of routines. /VECTOR_INSTRUCTION5 (VAX only) Executes the program to the next vectorB instruction. STEP/VECTOR_INSTRUCTION ha(s the same effect as SET) BREAK/TEMPORARY/VECTOR_INSTRUCTION;GO. 3 DescriptionD The STEP command is one of the four debugger commands that can beD used to execute your program (the others are CALL, EXIT, and GO).< The behavior of the STEP command depends on the following factors:B o The default STEP mode previously established with a SET STEP command, if any; o The qualifier specified with the STEP command, if any@ o The number of step units speci)fied as the parameter to the STEP command, if any> If no SET STEP command was previously entered, the debuggerD takes the following default actions when you enter a STEP command/ without specifying a qualifier or parameter:@ 1. Executes a line of source code (the default is STEP/LINE).@ 2. Reports that execution has completed by issuing a "stepped8 to . . . " message (the default is STEP/NOSILENT).< 3. Displays the line of source code at which execution is- * suspended (the default is STEP/SOURCE). 4. Issues the prompt.B The following qualifiers affect the location to which you step: /BRANCH /CALL /EXCEPTION /INSTRUCTION0 /INSTRUCTION=(opcode[, . . . ]) (VAX only) /LINE /RETURN" /SEMANTIC_EVENT (Alpha only)$ /VECTOR_INSTRUCTION (VAX only); The following qualifiers affect what output is seen upon completion of a step: /[NO]SILENT /[NO]SOURCEB The+ following qualifiers affect what happens at a routine call: /INTO /[NO]JSB (VAX only) /OVER /[NO]SHARE /[NO]SYSTEM; If you plan to enter several STEP commands with the sameB qualifiers, you can first use the SET STEP command to establish? new default qualifiers (for example, SET STEP INTO, NOSYSTEMC makes the STEP command behave like STEP/INTO/NOSYSTEM). Then youA do not have to use those qualifiers with the STEP command. YouD can overr ,ide the current default qualifiers for the duration of aC single STEP command by specifying other qualifiers. Use the SHOW6 STEP command to identify the current STEP defaults. 3 Description,_Continued...@ If an exception breakpoint is triggered (resulting from a SET= BREAK/EXCEPTION or a STEP/EXCEPTION command), execution isA suspended before any application-declared condition handler isC started. If you then resume execution with the STEP command, theC debugger resi -gnals the exception and the program executes to the; beginning of (steps into) the condition handler, if any.? On Alpha systems, if your program has been compiled with theA /OPTIMIZE qualifier, semantic stepping mode is available, with@ the STEP/SEMANTIC_EVENT and SET STEP SEMANTIC_EVENT commands.= When you are debugging optimized code, the apparent sourceA program location tends to bounce back and forth, with the sameD line appearing repeatedly. In semantic stepping mode,. the program@ executes to the next point in the program where a significant" effect (semantic event) occurs., A semantic event is one of the following:3 o Data event - An assignment to a user variableD o Control event - A control flow decision, with a conditional or: unconditional transfer of control, other than a callD o Call event - A call (to a routine that is not stepped over) or a return from a callC Not every assignment, transfer of control, or cal /l is a semantic. event. The major exceptions are as follows:B o When two instructions are required to assign to a complex orB X_floating value, only the first instruction is treated as a semantic event.@ o When there are multiple branches that are part of a singleA higher-level construct, such as a decision tree of branchesD that implement a case or select construct, then only the first% is treated as a semantic event.B o When a call is made to a 0 routine that is a compiler-specific? helper routine, such as a call to OTS$MOVE, which handlesB certain kinds of string or storage copy operations, the callB is not considered a semantic event. Control will not stop at the call.< To step into such a routine, you must do either of the following:5 - Set a breakpoint at the routine entry point.D - Use a series of STEP/INSTRUCTION commands to reach the callD of interest and then use ST 1EP/INSTRUCTION/INTO to enter the called routine.? o When there is more than one potential semantic event in aC row with the same line number, only the first is treated as a semantic event.C The STEP/SEMANTIC_EVENT command causes a breakpoint to be set atB the next semantic event. Execution proceeds to that next event.? Parts of any number of different lines and statements may beB executed along the way, without interfering with progress. When? the sem 2antic event is reached (that is, when the instruction? associated with that event is reached but not yet executed),A execution is suspended (similar to reaching the next line when STEP/LINE is used).C If you are debugging a multiprocess program, the STEP command isC executed in the context of the current process set. In addition,D when debugging a multiprocess program, the way in which executionA continues in your process depends on whether you entered a SET@ MODE [NO] 3INTERRUPT command or a SET MODE [NO]WAIT command. By> default (SET MODE NOINTERRUPT), when one process stops, the? debugger takes no action with regard to the other processes.@ Also by default (SET MODE WAIT), the debugger waits until allC process in the current process set have stopped before prompting for a new command.< On VAX systems, the STEP/OVER command results in stepping> into, not over, Fortran Run-Time Library routines. For more0 information, see the OpenVMS De4bugger Manual. Related commands: CALL EXIT GO SET BREAK/EXCEPTION SET MODE [NO]INTERRUPT SET PROCESS (SET,SHOW) STEP 3 Examples 1.DBG> SHOW STEP* step type: source, nosilent, by line," over routine calls DBG> STEP$ stepped to SQUARES$MAIN\%LINE 4D 4: OPEN(UNIT=8, FILE='DATAFILE.DAT', STATUS='OLD') DBG>B In this example, the SHOW STEP command identifies the default 5A qualifiers currently in effect for the STEP command. In thisB case, the STEP command, without any parameters or qualifiers,B executes the next line of source code. After the STEP commandC has completed, execution is suspended at the beginning of line 4. 2.DBG> STEP 5 stepped to MAIN\%LINE 47 47: SWAP(X,Y); DBG>A This command executes the next 5 lines of source code. AfterB the STEP command has completed, execution is su6spended at the beginning of line 47. 3.DBG> STEP/INTO stepped to routine SWAP4 23: procedure SWAP (A,B: in out integer) is DBG> STEP" stepped to MAIN\SWAP\%LINE 24# 24: TEMP: integer := 0; DBG> STEP/RETURND stepped on return from MAIN\SWAP\%LINE 24 to MAIN\SWAP\%LINE 29 29: end SWAP; DBG>> In this example, execution is paused at a call to routine? SWAP, and the STEP/INTO command executes the program up toC 7 the beginning of the called routine. The STEP command executesC the next line of source code. The STEP/RETURN command executesA the rest of routine SWAP up to its RET instruction (that is,C up to the point just prior to transferring control back to the calling routine). 2 STOP7 Interrupts all specified processes that are running. Format" STOP [process-spec[, . . . ] 3 Parameters process-spec> This parameter specifies the proc 8ess set to be stopped. The? default is the current process set. Use any of the following forms:D [%PROCESS_NAME] process- The process name, if that name does notD name contain spaces or lowercase characters.= The process name can include the> asterisk (*) wildcard character.D [%PROCESS_NAME] The process name, if that name contains@ "process-name" spaces or lowercase characters. 9 YouD can also use apostrophes (') instead of1 quotation marks (").; %PROCESS_PID process_id The process identifier (PID, a1 hexadecimal number).B [%PROCESS_NUMBER] The number assigned to a process when? process-number it comes under debugger control. AA (or %PROC process- new number is assigned sequentially,A number) starting with 1, to each process. : IfB a process is terminated with the EXIT? or QUIT command, the number can be@ assigned again during the debuggingA session. Process numbers appear in a@ SHOW PROCESS display. Processes areC ordered in a circular list so they canA be indexed with the built-in symbolsA ; %PREVIOUS_PROCESS and %NEXT_PROCESS.6 process-set-name A symbol defined with theD DEFINE/PROCESS_SET command to represent2 a group of processes.? %NEXT_PROCESS The next process after the visible? process in the debugger's circular* process list.@ %PREVIOUS_PROCESS The process previous to the visible? process in the de <bugger's circular* process list.C %VISIBLE_PROCESS The process whose stack, register set,C and images are the current context forA looking up symbols, register values,C routine calls, breakpoints, and so on.C You can also use the asterisk (*) wildcard character to specify all processes. 3 DescriptionC The STOP command interrupts the specified proce=sses. You can useC the STOP command in nowait mode to stop processes that are still running. 3 Examples 1.all> SHOW PROCESS7 Number Name State Current PC< 1 DBGK$$2727282C break SERVER\main\%LINE 18834: 2 USER1_2 running not available: * 3 USER1_3 running not available all> CLIENTS> STOP all> show process7 Number Name State Current PC< > 1 DBGK$$2727282C break SERVER\main\%LINE 18834; 2 USER1_2 interrupted 0FFFFFFFF800F7A20; * 3 USER1_3 interrupted 0FFFFFFFF800F7A20 all>D This command sequence first shows all processes, then stops theD processes in process set clients. The last SHOW PROCESS command" shows the new process states. 2 SYMBOLIZE= Converts a memory address to a symbolic representation, if possible. Format, SYMBOLIZE address-?expression[, . . . ] 3 Parameters address-expressionC Specifies an address expression to be symbolized. Do not use the$ asterisk (*) wildcard character. 3 Description> If the address is a static address, it is symbolized as the@ nearest preceding symbol name, plus an offset. If the addressD is also a code address and a line number can be found that coversA the address, the line number is included in the symbolization.B If the address is a register ad @dress, the debugger displays allB symbols in all set modules that are bound to that register. The@ full path name of each such symbol is displayed. The register6 name itself ("%R5", for example) is also displayed.A If the address is a call stack location in the call frame of aA routine in a set module, the debugger searches for all symbolsD in that routine whose addresses are relative to the frame pointerD (FP) or the stack pointer (SP). The closest preceding symbol nameC pAlus an offset is displayed as the symbolization of the address.B A symbol whose address specification is too complex is ignored.$ On Alpha processors, the commands' SYMBOLIZE procedure-code-address and? SYMBOLIZE procedure-descriptor-address both display the path@ name of the routine, entry point, or Ada package specified by these addresses.= If the debugger cannot symbolize the address, a message is displayed. Related commands: EVALUATE/ADDRESS B SET MODE [NO]LINE SET MODE [NO]SYMBOLIC (SET,SHOW,CANCEL) MODULE SHOW SYMBOL 3 Examples 1.DBG> SYMBOLIZE %R5 address PROG\%R5: PROG\X DBG>D This example shows that the local variable X in routine PROG is located in register R5. 2.DBG> SYMBOLIZE %HEX 27C9E3 address 0027C9E3: MOD5\X DBG>C This command directs the debugger to treat the integer literal@ 27C9E3 as a hexadecimal value aCnd convert that address to aB symbolic representation, if possible. The address converts to! the symbol X in module MOD5. 2 SYNCHRONIZE 3 VECTOR_MODEA Forces immediate synchronization between the scalar and vector processors.& Applies to VAX vectorized programs. Format SYNCHRONIZE VECTOR_MODE 4 Description7 The SYNCHRONIZE VECTOR_MODE command forces immediate> synchronization between the scalar and vector processors byA issuing S DYNC and MSYNC instructions. The effect is as follows:? o Any exception that was caused by a vector instruction andB was still pending delivery is immediately delivered. Forcing? the delivery of a pending exception triggers an exception= breakpoint or tracepoint (if one was set) or invokes an@ exception handler (if one is available at that location in the program).: o Any read or write operation between vector registers= and either the general regis Eters or memory is completedB immediately. That is, any vector memory instruction that was/ still being executed completes execution.= Entering the SYNCHRONIZE VECTOR_MODE command is equivalent@ to issuing SYNC and MSYNC instructions at the location in the+ program at which execution is suspended.B By default, the debugger does not force synchronization betweenA the scalar and vector processors during program execution (SETB VECTOR_MODE NOSYNCHRONIZED). To force sFuch synchronization, use, the SET VECTOR_MODE SYNCHRONIZED command. Related commands:1 SET VECTOR_MODE [NO]SYNCHRONIZED (VAX only)! SHOW VECTOR_MODE (VAX only) 4 Examples! 1.DBG> SYNCHRONIZE VECTOR_MODE8 %DEBUG-I-SYNCREPCOM, Synchronize reporting complete> This command forces immediate synchronization between theB scalar and vector processors. In this example, the diagnostic= message indicates that the synchronization operation has? cGompleted and that all pending vector exceptions have been delivered and reported. 2.DBG> STEP 1# stepped to .MAIN.\SUB\%LINE 99% 99: VVDIVD V1,V0,V2 DBG> STEP 2$ stepped to .MAIN.\SUB\%LINE 100 100: CLRL R0 DBG> EXAMINE/FLOAT %V2 3 0\%V2 [0]: 13.53400C [1]: Reserved operand, encoded as floating divide by zero [2]: 247.2450 . . .% DBG> SYNCHRONIZE VECTOR_MODE 4 HA %SYSTEM-F-VARITH, vector arithmetic fault, summary=00000002,? mask=00000004, PC=000002E1, PSL=03C00010@ break on unhandled exception preceding .MAIN.\SUB\%LINE 100 100: CLRL R0) DBG>C The comments that follow refer to the callouts in the previous example:@ 1 This STEP command suspends program execution on line 99,B just before a VVDIVD instruction is executed. Assume that,A in this example, the instr Iuction will trigger a floating-' point divide-by-zero exception.@ 2 This STEP command executes the VVDIVD instruction. Note,B however, that the exception is not delivered at this point( in the execution of the program.> 3 The EXAMINE/FLOAT command displays a decoded exceptionB message in element 1 of the destination register, V2. ThisC confirms that a floating-point divide-by-zero exception was* triggered and is pending delivery.@ J 4 The SYNCHRONIZE VECTOR_MODE command forces the immediate1 delivery of the pending vector exception. 2 TYPE! Displays lines of source code. Format3 TYPE [[module-name\]line-number[:line-number]@ [,[module-name\]line-number[:line-number][, . . . ]]] 3 Parameters module-name< Specifies the module that contains the source lines to be> displayed. If you specify a module name along with the lineB numbers, use standard pathn Kame notation: insert a backslash (\)0 between the module name and the line numbers.= If you do not specify a module name, the debugger uses theA current scope (as established by a previous SET SCOPE command,D or the PC scope if you did not enter a SET SCOPE command) to findD source lines for display. If you specify a scope search list with@ the SET SCOPE command, the debugger searches for source lines< only in the module associated with the first named scope. line-numbeLr? Specifies a compiler-generated line number (a number used to4 label a source language statement or statements).A If you specify a single line number, the debugger displays the1 source code corresponding to that line number.@ If you specify a list of line numbers, separating each with a@ comma, the debugger displays the source code corresponding to each of the line numbers.C If you specify a range of line numbers, separating the beginning> and ending line num Mbers in the range with a colon (:), the@ debugger displays the source code corresponding to that range of line numbers.A You can display all the source lines of a module by specifyingA a range of line numbers starting from 1 and ending at a numberB equal to or greater than the largest line number in the module.A After displaying a single line of source code, you can displayB the next line of that module by entering a TYPE command withoutA a line number (that is, by en Ntering TYPE and then pressing theA Return key). You can then display the next line and successiveD lines by repeating this sequence, in effect, reading through your% source program one line at a time. 3 Description: The TYPE command displays the lines of source code thatB correspond to the specified line numbers. The line numbers usedD by the debugger to identify lines of source code are generated byC the compiler. They appear in a compiler-generated listing and in O a screen-mode source display.A If you specify a module name with the TYPE command, the module@ must be set. Use the SHOW MODULE command to determine whetherB a particular module is set. Then use the SET MODULE command, if necessary.B In screen mode, the output of a TYPE command is directed at the> current source display, not at an output or DO display. The? source display shows the lines specified and any surrounding( lines that fit in the display window. RelatedP commands: EXAMINE/SOURCE( SET (BREAK,TRACE,WATCH)/[NO]SOURCE SET MODE [NO]SCREEN (SET,SHOW,CANCEL) SCOPE SET STEP [NO]SOURCE STEP/[NO]SOURCE 3 Examples 1.DBG> TYPE 160 module COBOLTEST 160: START-IT-PARA. DBG> TYPE module COBOLTEST% 161: MOVE SC1 TO ES0. DBG>? In this example, the first TYPE command displays line 160,< using the current scope to locate the module containingQ? that line number. The second TYPE command, entered without= specifying a line number, displays the next line in that module. 2.DBG> TYPE 160:163 module COBOLTEST 160: START-IT-PARA.% 161: MOVE SC1 TO ES0.! 162: DISPLAY ES0.% 163: MOVE SC1 TO ES1. DBG>D This command displays lines 160 to 163, using the current scope to locate the module. 3.DBG> TYPE SCREEN_IO\7,22:24> This commRand displays line 7 and lines 22 to 24 in module SCREEN_IO. 2 WAIT> Causes the debugger to wait until the target processes have1 stopped before prompting for the next command. Format WAIT 3 Description@ When debugging multiprocess programs, the WAIT command causesB the debugger to complete executing all process specified by theD previous command before displaying a prompt to accept and execute another command. Related commands: S STOP SET MODE [NO]INTERRUPT SET MODE [NO]WAIT 3 Example all> 2,3> GO;WAIT processes 2,3# break at CLIENT\main\%LINE 18814: 18814: status = sys$qiow (EFN$C_ENF, mbxchan,> IO$_READVBLKIO$M_WRITERCHECK, myiosb) process 1# break at SERVER\main\%LINE 188346 18834: if ((myiosb.iosb$w_status === SS$_NOREADER) && (pos_status != -1)) all>A This command sequence executes the targTet processes (in this@ case, 2 and 3), and the debugger waits until both processes= reach breakpoints before prompting for the next command. 2 WHILE@ Executes a sequence of commands while the language expression= (Boolean expression) you have specified evaluates as true. Format5 WHILE Boolean-expression DO (command[; . . . ]) 3 Parameters Boolean-expressionD Specifies a language expression that evaluates as a Boolean value1 (true or faUlse) in the currently set language. command= Specifies a debugger command. If you specify more than one? command, separate the commands with semicolons (;). At eachB execution, the debugger checks the syntax of any expressions in( the commands and then evaluates them. 3 DescriptionB The WHILE command evaluates a Boolean expression in the currentD language. If the value is true, the command list in the DO clauseC is executed. The command then repeats the sequence, reevaluatingB the Boolean expression and executing the command list until the$ expression is evaluated as false.D If the Boolean expression is false, the WHILE command terminates. Related commands: EXITLOOP FOR REPEAT 3 Example' DBG> WHILE (X .EQ. 0) DO (STEP/SILENT)C This command directs the debugger to keep stepping through the: program until X no longer equals 0 (Fortran example).ww