  | 
		
OpenVMS Debugger Manual
 
 
 
  
    
       
      
xyzzy_type foo () 
{ 
xyzzy_type     z; 
z = get_z (); 
return (z); 
} 
 |   
If you try to enter the following command, the debugger issues a 
message that it cannot find the type "xyzzy_type":
 
 
  
    
       
      
DBG> DEPOSIT/TYPE=(xyzzy_type) z="whatever"
 
 |   
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 for most 
languages. The exceptions are BLISS and MACRO, 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 symbols %CURLOC 
and period (.) to the location denoted by the address expression 
specified. Logical predecessors (%PREVLOC or the 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
 
 
Examples
 
This command deposits the value 7 into the integer variable I.
  
  
    | #2 | 
   
    
       
      
DBG> DEPOSIT WIDTH = CURRENT_WIDTH + 24.80
      
      
     | 
   
 
This command deposits the value of the expression CURRENT_WIDTH + 24.80 
into the real variable WIDTH.
  
  
    | #3 | 
   
    
       
      
DBG> DEPOSIT STATUS = FALSE
      
      
     | 
   
 
This command deposits the value FALSE into the Boolean variable STATUS.
  
  
    | #4 | 
   
    
       
      
DBG> DEPOSIT PART_NUMBER = "WG-7619.3-84"
      
      
     | 
   
 
This command deposits the string WG-7619.3-84 into the string variable 
PART_NUMBER.
  
  
    | #5 | 
   
    
       
      
DBG> DEPOSIT EMPLOYEE.ZIPCODE = 02172
      
      
     | 
   
 
This command deposits the value 02172 into component ZIPCODE of record 
EMPLOYEE.
  
  
    | #6 | 
   
    
       
      
DBG> DEPOSIT ARR(8) = 35
DBG> DEPOSIT ^ = 14
      
      
     | 
   
 
In this example, the first DEPOSIT command deposits the value 35 into 
element 8 of array ARR. As a result, element 8 becomes the current 
entity. The second command deposits the value 14 into the logical 
predecessor of element 8, namely element 7.
  
  
    | #7 | 
   
    
       
      
DBG> FOR I = 1 TO 4 DO (DEPOSIT ARR(I) = 0)
      
      
     | 
   
 
This command deposits the value 0 into elements 1 to 4 of array ARR.
  
  
    | #8 | 
   
    
       
      
DBG> DEPOSIT COLOR = 3
%DEBUG-E-OPTNOTALLOW, operator "DEPOSIT" not allowed on 
     given data type
      
      
     | 
   
 
The debugger alerts you when you try to deposit data of the wrong type 
into a variable (in this case, if you try to deposit an integer value 
into an enumerated type variable). The E (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-bounds value 
into a variable (in this case a negative value). The I (informational) 
message severity indicates that the debugger does make the assignment.
  
  
    | #10 | 
   
    
       
      
DBG> DEPOSIT/BYTE WORK = %HEX 21
      
      
     | 
   
 
This command deposits the expression %HEX 21 into location WORK and 
converts it to a byte integer.
  
  
    | #11 | 
   
    
       
      
DBG> DEPOSIT/OCTAWORD BIGINT = 111222333444555
      
      
     | 
   
 
This command deposits the expression 111222333444555 into location 
BIGINT and converts it to an octaword integer.
  
  
    | #12 | 
   
    
       
      
DBG> DEPOSIT/FLOAT BIGFLT = 1.11949*10**35
      
      
     | 
   
 
This command converts 1.11949*10**35 to an F_floating type value and 
deposits it into location BIGFLT.
  
  
    | #13 | 
   
    
       
      
DBG> DEPOSIT/ASCII:10 WORK+20 = 'abcdefghij'
      
      
     | 
   
 
This command deposits the string "abcdefghij" into the 
location that is 20 bytes beyond that denoted by the symbol WORK.
  
  
    | #14 | 
   
    
       
      
DBG> DEPOSIT/TASK VAR = %TASK 2
DBG> EXAMINE/HEX VAR
SAMPLE.VAR: 0016A040
DBG> EXAMINE/TASK VAR
SAMPLE.VAR: %TASK 2
DBG>
      
      
     | 
   
 
The DEPOSIT command deposits the Ada task value %TASK 2 into location 
VAR. The subsequent EXAMINE commands display the contents of VAR in 
hexadecimal format and as a task value, respectively.
  
 
DISABLE AST
 
Disables the delivery of asynchronous system traps (ASTs) in your 
program.
 
 
Format
DISABLE AST
  
 
Description
The DISABLE AST command disables the delivery of ASTs in your program 
and thereby prevents interrupts from occurring while the program is 
running. If ASTs are delivered while the debugger is running 
(processing commands, and so on), they are queued and are delivered 
when control is returned to the program.
The ENABLE AST command reenables the delivery of ASTs, including any 
pending ASTs (ASTs waiting to be delivered).
 
 
  Note 
Any call by your program to the $SETAST system service that enables 
ASTs overrides a previous DISABLE AST command. 
     | 
   
 
Related commands:
 
  (ENABLE,SHOW) AST
 
 
 
Example
 
  
     | 
   
    
       
      
DBG> DISABLE AST
DBG> SHOW AST
ASTs are disabled
DBG>
 
      
      
     | 
   
 
The DISABLE AST command disables the delivery of ASTs in your program, 
as confirmed by the SHOW AST command.
  
 
DISCONNECT
 
Releases a process from debugger control without terminating the 
process (kept debugger only).
 
 
Format
DISCONNECT process-spec
  
 
Parameters
process-spec
Specifies a process currently under debugger control. Use any of the 
following forms:
  
    | 
      [%PROCESS_NAME]
      process-name
     | 
    
       The process name, if that name does not contain spaces or lowercase 
       characters. The process name can include the asterisk (*) wildcard 
       character.
     | 
   
  
    | 
      [%PROCESS_NAME] "
      process-name "
     | 
    
       The process name, if that name contains spaces or lowercase characters. 
       You can also use apostrophes (') instead of quotation marks (").
     | 
   
  
    | 
      %PROCESS_PID
      process_id
     | 
    
       The process identifier (PID, a hexadecimal number).
     | 
   
  
    
      [%PROCESS_NUMBER]
      process-number
        (or %PROC
      process-number)
     | 
    
       The number assigned to a process when it comes under debugger control. 
       A new number is assigned sequentially, starting with 1, to each 
       process. If a process is terminated with the EXIT or QUIT command, the 
       number can be assigned again during the debugging session. Process 
       numbers appear in a SHOW PROCESS display. Processes are ordered in a 
       circular list so they can be indexed with the built-in symbols 
       %PREVIOUS_PROCESS and %NEXT_PROCESS.
     | 
   
  
    | 
      process-set-name
     | 
    
       A symbol defined with the DEFINE/PROCESS_SET command to represent 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.
     | 
   
  
    | 
      %VISIBLE_PROCESS
     | 
    
       The process whose stack, register set, and images are the current 
       context for looking up symbols, register values, routine calls, 
       breakpoints, and so on.
     | 
   
 
 
 
Description
(Kept debugger only.) The DISCONNECT command releases a specified 
process from debugger control without terminating the process. This is 
useful if, for example, you have brought a running program under 
debugger control with a CONNECT command and you now 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 image 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 or more 
disconnected but activated kernels inhabit user program space, you can 
experience problems with debugger behavior if you try to reconnect to 
one of those kernels.  
     | 
   
 
Related commands:
 
  EXIT
   QUIT
   CONNECT
 
 
 
Example
 
This command releases process JONES from debugger control without 
terminating the process.
  
 
DISPLAY
 
Creates a new screen display or modifies an existing display.
 
  Note 
This command is not available in the HP DECwindows Motif for OpenVMS user interface to 
the debugger. 
     | 
   
 
 
 
Format
DISPLAY display-name [AT window-spec] [display-kind] [,...]
  
 
Parameters
display-name
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.
 
If you are modifying an existing display, you can specify any of the 
following entities:
 
  - A predefined display:
  
    SRC
     OUT
     PROMPT
     INST
     REG
     FREG (Integrity servers and Alpha only)
     IREG
   
   - A display previously created with the DISPLAY command
  
 - A display built-in symbol:
  
%CURDISP
     %CURSCROLL
     %NEXTDISP
     %NEXTINST
     %NEXTOUTPUT
     %NEXTSCROLL
     %NEXTSOURCE
   
  
You must specify a display unless you use /GENERATE (parameter 
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:
  - A predefined window. For example, RH1 (right top half).
  
 - A window definition previously established with the SET WINDOW 
  command.
  
 - A window specification of the form (start-line, line-count[, 
  start-column, column-count]). The specification can include 
  expressions which can be based on the built-in symbols %PAGE and %WIDTH 
  (for example, %WIDTH/4).
  
If you omit the window specification, the screen position depends on 
whether you are specifying an existing display or a new display:
 
  - If you are specifying an existing display, the position of the 
  display is not changed.
  
 - If you are specifying a new display, it is positioned at 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 (
      command[;...])
     | 
    
       Specifies an automatically updated output display. The commands are 
       executed in the order listed each time the debugger gains control. 
       Their output forms the contents of the display. If you specify more 
       than one command, the commands must be separated by semicolons.
     | 
   
  
    | 
      INSTRUCTION
     | 
    
       Specifies an instruction display. If selected as the current 
       instruction display with the SELECT/INSTRUCTION command, it displays 
       the output from subsequent EXAMINE/INSTRUCTION commands.
     | 
   
  
    | 
      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 to another display. If selected as the current input 
       display with the SELECT/INPUT command, it echoes debugger input. If 
       selected as the current error display with the SELECT/ERROR command, it 
       displays debugger diagnostic messages.
     | 
   
  
    | 
      REGISTER
     | 
    
       Specifies an automatically updated register 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 the output from subsequent 
       TYPE or EXAMINE/SOURCE commands.
     | 
   
  
    | 
      SOURCE (
      command)
     | 
    
       Specifies an automatically updated source display. The command 
       specified must be a 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.
 
If you omit the display-kind parameter, the display 
kind depends on whether you are specifying an existing display or a new 
display:
 
  - If you specify an existing display, the display kind is not changed.
  
 - If you specify a new display, an OUTPUT display is created.
  
 
 
Qualifiers
/CLEAR
Erases the entire contents of a specified display. Do not use this 
qualifier with /GENERATE or when creating a new display.
/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 default (/DYNAMIC), all user-defined and 
predefined displays adjust their dimensions automatically.
/GENERATE
Regenerates the contents of a specified display. Only automatically 
generated displays are regenerated. These include DO displays, register 
displays, source (cmd-list) displays, and instruction 
(cmd-list) displays. The debugger automatically regenerates 
all these kinds of displays before each prompt. If you do not specify a 
display, it regenerates the contents of all 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
/NOMARK_CHANGE (default)
Controls whether the lines that change in a DO display each time 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 particularly useful when you want any 
variables in an automatically updated display to be highlighted when 
they change.
 
The /NOMARK_CHANGE qualifier (default) specifies that any lines that 
change in DO displays are not to be marked. This qualifier cancels the 
effect of a previous /MARK_CHANGE on the specified display.
 /POP (default)
/NOPOP
Controls whether a specified display is placed at the top of the 
display pasteboard, ahead of any other displays but behind the PROMPT 
display. By default (/POP), the display is placed at the top of the 
pasteboard and hides any other displays that share the same region of 
the screen, except the PROMPT display.
The /NOPOP qualifier preserves the order of all displays on the 
pasteboard (same as /NOPUSH).
 /PROCESS[=(process-spec)]
/NOPROCESS (default)
Used only when debugging multiprocess programs (kept debugger only). 
Controls whether the specified display is process specific (that is, 
whether the specified display is associated only with a particular 
process). The contents of a process-specific display are generated and 
modified in the context of that process. You 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 must include 
the parentheses. Use any of the following process-spec forms:
 
  
    | 
      [%PROCESS_NAME]
      proc-name
     | 
    
       The process name, if that name contains no space or lowercase 
       characters. The process name can include the asterisk (*) wildcard 
       character.
     | 
   
  
    | 
      [%PROCESS_NAME] "
      proc-name"
     | 
    
       The process name, if that name contains space or lowercase characters. 
       You can also use apostrophes (') instead of quotation marks (").
     | 
   
  
    | 
      %PROCESS_PID
      proc-id
     | 
    
       The process identifier (PID, a hexadecimal number).
     | 
   
  
    
      %PROCESS_NUMBER
      proc-number
        (or %PROC
      proc-number)
     | 
    
       The number assigned to a process when it comes under debugger control. 
       Process numbers appear in a SHOW PROCESS display.
     | 
   
  
    | 
      proc-group-name
     | 
    
       A symbol defined with the DEFINE/PROCESS_GROUP command to represent a 
       group of processes. Do not specify a recursive symbol definition.
     | 
   
  
    | 
      %NEXT_PROCESS
     | 
    
       The 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.
     | 
   
  
    | 
      %VISIBLE_PROCESS
     | 
    
       The process whose call stack, register set, and images are the current 
       context for looking up symbols, register values, 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
/NOPUSH
The /PUSH qualifier has the same effect as /HIDE. The /NOPUSH 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.
/REMOVE
Marks the display as being removed from the display pasteboard, so it 
is not shown on the screen unless you explicitly request it with 
another DISPLAY command. Although a removed display is not visible on 
the screen, it still exists and its contents are preserved. You cannot 
remove the PROMPT display.
/SIZE:n
Sets the maximum size of a display to n lines. If more than 
n lines are written to the display, the oldest lines are lost 
as the new lines are added. If you omit this qualifier, the maximum 
size of the display is as follows:
  - If you specify an existing display, the maximum size is unchanged.
  
 - If you are creating a display, the default size is 64 lines.
  
For an output or DO display, /SIZE:n specifies that the 
display should hold the n most recent lines of output. For a 
source or instruction display, n gives the number of source 
lines or lines of instructions that can be placed in the memory buffer 
at any one time. However, you can scroll a source display over the 
entire source code of the module whose code is displayed (source lines 
are paged into the buffer as needed). Similarly, you can scroll an 
instruction display over all of the instructions of the routine whose 
instructions are displayed (instructions are decoded from the image as 
needed).
  
 
Description
You can use the DISPLAY command to create a display or to modify an 
existing display.
To create a display, specify a name that is not already used as a 
display name (the SHOW DISPLAY command identifies all existing 
displays).
 
By default, the DISPLAY command places a specified display on top of 
the display pasteboard, ahead of any other displays but 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 DISPLAY command, 
type Help Keypad_Definitions_CI. Also, use the SHOW KEY 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
 
 
 
Examples
 
This command shows the predefined register display, REG, at its current 
window location.
  
  
    | #2 | 
   
    
       
      
DBG> DISPLAY/PUSH INST
      
      
     | 
   
 
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-defined display 
NEWDISP at the right middle third of the screen. The SELECT/INPUT 
command selects NEWDISP as the current input display. NEWDISP now 
echoes debugger input.
  
  
    | #4 | 
   
    
       
      
DBG> DISPLAY DISP2 AT RS45
DBG> SELECT/OUTPUT DISP2
      
      
     | 
   
 
In this example, the DISPLAY command creates a display named DISP2 
essentially at the right bottom half of the screen, above 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 NEWINST
      
      
     | 
   
 
In this example, the SET WINDOW command creates a window named TOP 
starting at line 1 and column 45, and extending down for 8 lines and to 
the right for 30 columns. The DISPLAY command 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, the SHOW CALLS command is 
executed and the output is displayed in display CALLS, replacing any 
previous contents.
  
  
    | #7 | 
   
    
       
      
DBG> DISPLAY/MARK EXAM AT Q2 DO (EXAMINE A,B,C)
      
      
     | 
   
 
  
  |