Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ATTACH

CALL

CANCEL

CONNECT

CTRL-C

CTRL-Y

CTRL-Z

DECLARE

DEFINE

DELETE

DEPOSIT

DISABLE

DISPLAY

DO

EDIT

ENABLE

EVALUATE

EXAMINE

EXIT

EXITLOOP

EXPAND

EXTRACT

FOR

GO

HELP

IF

MOVE

QUIT

REPEAT

SAVE

SCROLL

SEARCH

SELECT

SET

SHOW

SPAWN

SS$_DEBUG

STEP

SYMBOLIZE

TYPE

WHILE

@file-spec

Address-expr

Debugging Configurations

Keypad

Languages

Lexicals

Logical Names

Messages

Multiprocess

New Features

Pathnames

Release Notes

Screen Features

Examples

Parameters

Examples

Process Relationships

Default Configuration

Multiprocess Configuration

DEFAULT

GOLD

BLUE

MOVE

EXPAND

CONTRACT

MOVE_GOLD

EXPAND_GOLD

CONTRACT_GOLD

MOVE_BLUE

EXPAND_BLUE

CONTRACT_BLUE

SUMMARY

State keys

ADA

BASIC

BLISS

CC

COBOL

DIBOL

FORTRAN

MACRO

PASCAL

PLI

RPG

SCAN

UNKNOWN

Data Types

Events

Exceptions

Multitasking

Operators

Names

Overloading

Packages

Subunits

Tick Operators

Commands

Event parameters

Examples

Operators

Expressions

Data Types

Notes

Operators

Expressions

Data Types

Operators

Expressions

Data Types

Notes

Operators

Expressions

Data Types

Notes

Operators

Expressions

Data Types

Operators

Expressions

Predefined Symbols

Data Types

Notes

Operators

Expressions

Data Types

Operators

Expressions

Predefined Symbols

Data Types

Notes

Operators

Expressions

Data Types

Notes

Operators

Expressions

Data Types

Notes

Events

Operators

Expressions

Data Types

Examples

Operators

Expressions

Data Types

Notes

%AP

%FP

%SP

%PC

%LANGUAGE

%NAME

%PARCNT

%BIN

%DEC

%HEX

%OCT

%CURLOC

%NEXTLOC

%PREVLOC

%CURVAL

%LABEL

%LINE

%PAGE

%WIDTH

%CURDISP

%CURSCROLL

%NEXTDISP

%NEXTINST

%NEXTOUTPUT

%NEXTSCROLL

%NEXTSOURCE

%SOURCE_SCOPE

%PROCESS_NAME

%PROCESS_PID

%PROCESS_NUMBER

%NEXT_PROCESS

%PREVIOUS_PROCESS

%VISIBLE_PROCESS

%ADAEXC_NAME

%EXC_FACILITY

%EXC_NAME

%EXC_NUM

%EXC_SEVERITY

%ACTIVE_TASK

%CALLER_TASK

%NEXT_TASK

%TASK

%VISIBLE_TASK

%Rn

DBG$INIT

DBG$INPUT

DBG$OUTPUT

DBG$PROCESS

Examples

ABORTED

ABSDATSYN

ACCADDCOM

ACTIVATING

ADDRANCOV

ADDRESSMODE

ADDRREG

ALLOBNDS

AMBFIELD

AMBIGQUAL

AMPERSAND

ASTWASDISABLED

ASTWASENABLED

ATTACHED

ATTREQREF

BADDESCR

BADDISCVAL

BADDST

BADEVNPAR

BADEXH

BADFRAME

BADHANDLE

BADOPCODE

BADPARAM

BADSCOPE

BADSIGARG

BADSTACK

BADSTARTPC

BADSTATUS

BADTAGVAL

BADTARGET

BADUSREVNT

BADWATCH

BASVARNOTSET

BITRANGE

BUFFEROVF

BWLGISMUS

CANTACCESSMAIN

CANTCREATEMAIN

CANTGETFID

CANTINTPRO

CANTOPNIMG

CIREXLST

CMDNOTONE

CMDSYNERR

CMPNOTFND

CONFLICT

CONFROMEXC

CONSTRCOMP

CPOSTDECR

CPOSTINCR

CPREDECR

CPREINCR

CRMPSCFAIL

CVTNEGUNS

DBGERR

DBGSTOPPED

DECLARERR

DECOVF

DECROPRAND

DEFKEY

DEFKEYERR

DELBREAK

DELKEY

DELKEYERR

DELTIMTOO

DELTRACE

DESCNOTSET

DISABLEAST

DISNOTSEL

DISPEXISTS

DISPRLENSIZ

DIVBYZERO

DSTERRG

DSTNESDEP

DYNIMGSET

DYNMODSET

EDITDISVER

EDITERROR

EDITFILE

EDITNOFILE

EDITREVVER

ENABLEAST

ENTRYMASK

ENUMRANGE

ERRACTIMG

ERRASSIGN

ERRCLSFILE

ERRCRELNM

ERRDEASSIGN

ERRFAO

ERRGETDVI

ERRGETEF

ERRINSDEC

ERRINVEDIT

ERROR

ERRORLIMIT

ERROR_BLOCK

ERRQIOW

ERRSMG

ERRSYSSERV

ERRUSREVNT

EXARANGE

EXCBREREP

EXCDURCAL

EXITARG

EXITERR

EXITSTATUS

EXPMEMPOOL

FILEUNAL

FLTOVF

GETJPI

HEIGHTDIFF

IDENTLONG

IFIXUND

IFLTUND

IINTOVF

ILLADDCON

ILLASTER

ILLDEFNAM

ILLENUMVAL

ILLEVNSTR

ILLFILPTR

ILLFLOAT

ILLLENGTH

ILLOFFSET

ILLPACSIZ

ILLPATH1

ILLPATH2

ILLPATHELEM

ILLPOSFLD

ILLQUALIF

ILLRANGE

ILLSETCON

ILLSIGEXT

ILLSIZFLD

ILLSUBLEN

ILLSUBSTR

ILLTYPE

INCDSTNES

INCOMPOPR

INCOMPPTR

INCOMQUAL

INCOMTARGET

INCOMVERSION

INDBASEQL

INITIAL

INPREADERR

INSVIRMEM

INTERR

INTERRUPTED

INTMEMERR

INTOVF

INUMTRUNC

INVADDRTKN

INVARGLIS

INVARRDIM

INVARRDSC

INVAVSCODE

INVCHAR

INVCHRCON

INVDESC

INVDIGBIN

INVDIGDEC

INVDIGHEX

INVDIGOCT

INVDIRNAM

INVDMTPTR

INVDSPSIZ

INVDSTREC

INVDSTTYPCODE

INVEXPR

INVFIXDST

INVFLDREF

INVGSTREC

INVGSTTYP

INVINDIRECT

INVLANGCODE

INVLENGTH

INVMAR

INVNOSPECTKN

INVNUMBER

INVNUMSRC

INVNUMSTR

INVOPADDR

INVOPSYM

INVPAGE

INVPRCSYN

INVPRIOR

INVRANSPEC

INVSELDIS

INVSRCLIN

INVTIMSLI

INVTSCODE

INVVALTKN

INVWIDTH

INVWINPAR

IRFAOVF

ISTRTRU

ITMNOTAVA

ITMTRUNC

IVALOUTBNDS

IVPRCLOG

KERFUNCNYI

LASTCHANCE

LINEINFO

LONGSTRING

LOOPINCR

LOOPVAR

LOWBNDOPT

MATQUOMIS

MAXSTRLEN

MISCLOSUB

MISINVNUM

MISINVOPER

MISMODBEG

MISMODEND

MISOPEMIS

MODUSCOPE

MPARENREQ

MPCOMMAND

NAMSTRMIS

NAMTOOLONG

NEEDMORE

NEEDPAREN

NOACCESSR

NOACCESSW

NOADDRREG

NOALTERSP

NOATTACH

NOBREAGGR

NOBREAKAT

NOBREAKS

NOCALLS

NOCANMAIN

NOCLI

NOCONNECT

NOCURLOC

NODELIMTR

NODEPDEBUG

NODIRLISM

NODIRLIST

NOELABBODY

NOELABSPEC

NOEND

NOEPTSPEC

NOEVALEXPR

NOEVENTFAC

NOEXCBRE

NOEXHND

NOFIELD

NOFREE

NOGLOBALS

NOINPAVAIL

NOINSTRAN

NOKEYDEF

NOKEYPAD

NOLASTVAL

NOLINXXX

NOLIST

NOLOCALS

NOMARKCHNG

NOMATCH

NOMORE

NONEXPR

NONEXPRC

NONUMSCOPE

NONXTLIN

NOOCCLDISP

NOOUTAVAIL

NOPACKMEMBODY

NOPACKMEMSPEC

NOPRED

NOPROMPT

NORECSYM

NORMAL

NORSTBLD

NOSAVPROG

NOSCOPE

NOSCRDEV

NOSCRMODE

NOSCROLL

NOSCROLLDISP

NOSETTERM

NOSPAWN

NOSPAWNI

NOSRCHSTR

NOSRCLIN

NOSTEPGO

NOSUCC

NOSUCHBPT

NOSUCHDISP

NOSUCHELP

NOSUCHIMG

NOSUCHMODU

NOSUCHPACK

NOSUCHSCOPE

NOSUCHTASK

NOSUCHTPT

NOSUCHWIND

NOSUCHWPT

NOSYMBOL

NOSYMBOLR

NOTADAPROG

NOTALIGNED

NOTARRAY

NOTASTRUCT

NOTATMAIN

NOTCURPC

NOTDEFINE

NOTIMPLAN

NOTINLOOP

NOTINST

NOTORIGSRC

NOTPTR

NOTRACES

NOTRAZERO

NOTRECORD

NOTREE

NOTTASKVAL

NOTUNQOVR

NOTUPDATE

NOTYPEINFO

NOUNIQUE

NOUNIVERSALS

NOUSREVNT

NOVALATPC

NOVALTYP

NOVALUE

NOWATCHES

NOWATTAR

NOWATVARIA

NOWATVARSTG

NOWBPT

NOWILD

NOWILDFIL

NOWOPCO

NOWPROT

NULLPTR

NUMCONLONG

NUMTRUNC

OBJECTINV

OBJPTRINV

OBJTYPMIS

OBSOLETE_1

OPCDEC

OPNOTALLOW

OPSYNTAX

OUTPUTLOST

PACSIZREQ

PARENREQ

PARSTKOVR

PATHNOTACP

PATHTLONG

PATHTOOLONG

PCNOTALL

PLICVTERR

PREDEPTNOT

PROFRANOT

PROMPTCLEN

PROMPTOCCL

PROMPTRLEN

PROVRFLOW

PXCN

QUALREQ

QUOSTRLONG

READERR

REFUSED

REGREQ

RENAMENOT

RESUMERR

RETURNED

RNDFCTROUT

ROPRANDF

RPCDBBDT

RPCERR

RPCINVDSC

RPCOVF

RPCUNF

RPCUNKARG

RSTERR

SCALEADD

SCALESUB

SCRTOBIG

SCRTOSMALL

SETKEY

SETKEYERR

SETMODU

SETSCOMOD

SFCNTNEG

SHOKEYERR

SHRPRC

SIDEFFECT

SIGVECTRUNC

SIZEATOMIC

SIZETRUNC

SOURCESCOPE

SPAWNED

SRCLINNOT

SS_INT

STEPINTO

STGTRUNC

STRNGPAD

STRTOOLONG

STRUCSIZE

SUBOUTBND

SUBSCRNG

SUBSTRING

SUBUNITCAN

SUBUNITNOTCAN

SUBUNITNOTSET

SUBUNITSET

SUPERDEBUG

SYMNOTACT

SYMNOTFND

SYNERREXPR

SYNERRLABEL

SYNERRLINE

SYNTAX

TASKERROR

TASKNOTABORT

TASKNOTACT

TASKNULL

TERMINATING

TERMTKNREQ

TIMESLICE

TOOFEWSUB

TOOMANDIM

TOOMANERR

TOOMANINV

TOOMANPARM

TOOMANSUB

TRYINGONEPRC

UNACREDBGO

UNACVT

UNALIGNED

UNALLOCATED

UNAOPEDBGI

UNAOPESCR

UNAOPNHLP

UNAOPNINI

UNAOPNSRC

UNAREASRC

UNASAVVAL

UNASETIMG

UNASETTAS

UNASWISTA

UNBPAREN

UNDEXPN

UNDKEY

UNIMPLENT

UNMTCHPARN

UPBNDOPT

USREVNTERR

VALNOTADDR

VARNESDEP

VERIFYICF

VERSIONNUM

WATCHSIZE

WATNOWCAN

WATNOWWAT

WATVARGSGONE

WATVARGSOVR

WATVARNOWGBL

WATVARPROT

WATVARPTR

WATVARREMAP

WATVARSCP

WIDTHDIFF

WITHCAN

WITHNOTCAN

WITHNOTSET

WITHSET

WORKSTACMD

WPTTRACE

WRITE_FAILED

WRITE_INTO_KERNEL

WRITE_INTO_KERNEL_STACK

ZERLENDST

ZEROINCR

Parameters

Activation Options

Advanced Concepts

Command Broadcast

Global Section Watchpoints

Multiprocess Configuration

Process Information

Program Execution

Prompt Suffix

Screen Mode Features

Specifying Processes

Termination Options

Visible Process

Example

SET_MODE_NOINTERRUPT

Holding Processes

Keypad Definitions

SET_PROCESS

Dynamic Process Setting

V4.2

V4.4

V4.6

V5.0

V5.0MP

Display Attributes

Extracting Displays

Key Definitions

Moving Displays

PROMPT Display

Resizing Displays

Vertically Divided Windows

Shareable Images

Window Definitions

ADA-Predefined-Breakpoints

Call-Exception-Break

Nonstatic-Watchpoints

Step-Exception-Break

SET_MODE_SEPARATE

SET_PROMPT

Dynamic Register Display

EXAMINE OPERANDS Qualifier

MACRO Support

Screen Mode Windows

SET MODULE CALLS Qualifier

SPAWN qualifiers

Breakpoints

Compatibility

Default Configuration

Multiprocess Configuration

CTRL-C and CTRL-Y

Two-Process Debugger

V4.2

V4.4

V4.6

V5.0

V5.0MP

Register Windows

Macro-defaults

Basic-defaults

Key Definitions

Register Display

Screen Management

Shareable Images

VAXstations

Window Definitions

SET IMAGE Command

SET SCOPE Command

VAXstation support

Corrected Problems

Dynamic Register Display

MACRO Support

Obsolete Commands

Screen Mode Line Wrapping

VAXstation DEBUG Separate Window Control

Compatibility

CTRL-Y Changes

DCL Command Procedures

Debugging Configurations

Keypad Changes

Restrictions

Single Process

System Management

Abort Key After Spawn

Debugging Installed Writeable Images

User Quotas

System Resources

Commands

Display Attributes

Display Kinds

Examples

Instruction Display

Keypad

Moving Displays

Predefined Displays

PROMPT Display

Register Display

Resizing Displays

Screen Mode

Scrolling

Source Display

Windows

DEBUG — VMS FORTRAN_5.2

Additional information available:

ATTACHCALLCANCELCONNECTCTRL-CCTRL-YCTRL-Z
DECLAREDEFINEDELETEDEPOSITDISABLEDISPLAYDO
EDITENABLEEVALUATEEXAMINEEXITEXITLOOPEXPAND
EXTRACTFORGOHELPIFMOVEQUIT
REPEATSAVESCROLLSEARCHSELECTSETSHOW
SPAWNSS$_DEBUGSTEPSYMBOLIZETYPE
WHILE

@file-specAddress-exprDebugging ConfigurationsKeypadLanguagesLexicals
Logical NamesMessagesMultiprocessNew FeaturesPathnamesRelease Notes
Screen Features

@file-spec

     Execute debugger commands from the specified file.  If  you  have
     entered  a  "SET OUTPUT VERIFY", all commands read from a command
     procedure are echoed on the terminal.

     Parameters may be passed in to a command  procedure.   Parameters
     can  be  address  expressions,  language expressions, or strings.
     (Corresponding to the three kinds of DEFINE symbols.) Inside  the
     command  procedure,  the  parameters  get  bound to names via the
     DECLARE command.

 Format:

     @file-spec [ parameter [,parameter...]]

Additional information available:

ExamplesParameters

Examples

     The  following  example  invokes  a  "SETUP"  command  file  that
     establishes  a  particular  set of defaults.  The commands in the
     command file are echoed because of the "SET OUT VERIFY".

     DBG> SET OUT VERIFY
     DBG> @SETUP.COM
     !entering command file SETUP.COM
     ! SET SOURCE [],SRC$
     ! SET MODE SCREEN
     ! SET STEP SILENT
     ! SET RADIX HEX
     !exiting command file SETUP.COM

Parameters

 file-specification

     Specifies  the  command  procedure  to  be  executed.    If   the
     file-specification does not include a file type, the default file
     type .COM is used.  A logical name may  be  given.   The  default
     file  specification  can  be  modified  by  using  the SET ATSIGN
     command.  (See the help on SET ATSIGN).

 parameter

     This can be  an  address  or  value  expression  in  the  current
     language,  or  a quoted string.  It is bound to a name within the
     command procedure by using the DECLARE command.  (See the help on
     DECLARE).

     For example:

     DBG> @DUMP X
     !entering command procedure DUMP.COM
     ! DECLARE P1:ADDRESS
     ! EXAMINE P1
     X: 23
     !exiting command procedure DUMP.COM

Address-expr

     The term "address expression" is used in many of the descriptions
     in this help library.  An address expression specifies a location
     in  your  program.   Commands  for  which  you  specify   address
     expressions  are:   SET  BREAK,  SET  TRACE,  SET WATCH, EXAMINE,
     EVALUATE/ADDRESS, and DEPOSIT (at the left of the equal sign).

     In general, you can specify addresses 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   ! COBOL

     In addition, you can specify addresses numerically, and  you  can
     also  use  the built-in symbols %LINE and %LABEL for referring to
     code locations:

     DBG> EXAMINE 512
     DBG> SET BREAK %LINE 10

     Finally, you can use the following operators to specify addresses
     that you might not be able to get to by name:

     + - * /     Arithmetic operators
     @ or .      Indirection
     <p,s>       Select bit field

     ! Examine the instruction 3 bytes after line 10
     DBG> EXAMINE %LINE 10 + 3
     ! Examine the location pointed to by P
     DBG> EXAMINE @P

     The  difference  between   address   expressions   and   language
     expressions can best be illustrated by an example:

     DBG> EVAL/ADDR X
     512
     DBG> EXAM X
     X: 0
     DBG> EVAL X+1   ! Language expression: adds 0+1
     1
     DBG> EXAM X+1      ! Address expression: 1 byte beyond X
     513: 0


Debugging Configurations

     You can use  the  debugger  in  two  configurations,  default  or
     multiprocess.   Use  the default configuration to debug a program
     that normally runs (without the debugger) in  only  one  process.
     Use  the  multiprocess  configuration  to  debug  a  program that
     normally runs  in  more  than  one  process.   The  configuration
     depends  only  on the definition of the logical name DBG$PROCESS,
     as indicated in the following table:

        DBG$PROCESS:              Configuration:
          Undefined or DEFAULT      Default
          MULTIPROCESS              Multiprocess

     Note that a multiprocess configuration results  from  DBG$PROCESS
     having  the  value  MULTIPROCESS and does not depend on whether a
     program runs in more than one process.  The value of  DBG$PROCESS
     determines  whether  or not images running in different processes
     can connect to the same debugging session.

     Type  HELP  Multiprocess  for  more  information   on   debugging
     multiprocess programs.

Additional information available:

ExamplesProcess Relationships

Examples

     1  $ DEFINE/JOB DBG$PROCESS MULTIPROCESS
        $ RUN PROG1
           ...
        DBG_1>

     In  this  example,  the  DEFINE/JOB   command   establishes   the
     multiprocess   configuration.    This   is  demonstrated  by  the
     process-specific  prompt  suffix,  "_1",   which   is   displayed
     initially when the debugger is invoked with the RUN command.  The
     prompt suffix indicates that execution is suspended in process 1,
     the  first  process  that  was  brought  under  debugger control.
     Process 1 is currently the visible process  --  the  context  for
     executing  process-specific  commands  like STEP, EXAMINE, and so
     on.

     2  $ DEFINE DBG$PROCESS DEFAULT
        $ RUN PROG1
          ...
        DBG>

     In this example,  the  DEFINE  command  establishes  the  default
     configuration.  This is demonstrated by the DBG> prompt, which is
     displayed when the debugger is invoked with the RUN command.

Process Relationships

     The debugger consists of two parts:

     1.  A relatively small kernel  debugger  image  (DEBUG.EXE)  that
         runs in the same process as the image being debugged

     2.  A larger main debugger  image  (DEBUGSHR.EXE)  that  contains
         most of the debugger code and runs in a subprocess.

     In the  default  (non-multiprocess)  configuration,  the  program
     being  debugged (which may consist of several images) runs in one
     process along with the kernel debugger.  The main  debugger  runs
     in a subprocess.

     In the multiprocess configuration,  the  program  being  debugged
     (which  may consist of several images) runs in several processes.
     Each process that is running an image under debugger  control  is
     also  running  a  local  copy  of  the kernel debugger.  One main
     debugger runs in a separate subprocess and communicates with  the
     other processes through their kernel debuggers.

     Regardless of the configuration, the presence of a main  debugger
     running in some process establishes a unique debugging session.

     The current definition of DBG$PROCESS determines whether  or  not
     debuggable  images  running in different processes can connect to
     the same main debugger.

Additional information available:

Default ConfigurationMultiprocess Configuration

Default Configuration

     The default configuration is achieved when DBG$PROCESS is  either
     undefined or has the value DEFAULT:

        $ DEFINE DBG$PROCESS DEFAULT

     Under these conditions, when you invoke the debugger, the program
     runs  in its original process along with the kernel debugger, but
     a new subprocess is created to run the main debugger (see  Figure
     1).

     When you use the default configuration, a new main debugger (and,
     therefore, a new debugging session) is established every time you
     invoke the debugger.

          Figure 1  Default Debugging Configuration
                 +--------+
                 |program |
                 |being   |
                 |debugged|
                 |--------|
                 |kernel  |
                 |debugger|
                 +--------+
                     |
                 +--------+
                 |main    |
                 |debugger|
                 +--------+

Multiprocess Configuration

     The multiprocess  configuration  enables  you  to  interact  with
     several processes from one debugging session.  This configuration
     is achieved when the definition of DBG$PROCESS is MULTIPROCESS:

        $ DEFINE/JOB DBG$PROCESS MULTIPROCESS

     When defining DBG$PROCESS, use a job logical definition to ensure
     that  the  definition  applies to all processes in that job tree.
     An image can be connected to an existing  multiprocess  debugging
     session  only if the process running the image is in the same job
     tree as the main debugger of that debugging session.

     In the multiprocess configuration, the main debugger runs in  one
     process.   Each  process associated with the multiprocess program
     runs a kernel debugger along with  one  or  more  images  of  the
     program.    The  main  debugger  communicates  with  each  kernel
     debugger.  Although all processes of a multiprocess configuration
     must be in the same job tree, they do not have to be related in a
     particular process/subprocess hierachy.   Moreover,  the  program
     images  running  in separate processes do not have to communicate
     with each other.

     Two  possible  multiprocess  configurations  are  illustrated  in
     Figures  1  and  2.   Figure  1  shows  the  typical multiprocess
     configuration.  The program runs in one master parent process and
     several  subprocesses.   The  debugger is invoked from the master
     process, then the program creates subprocesses  during  execution
     (a  subprocess  may  also  become  the parent of another level of
     subprocesses).

        Figure 1  Multiprocess Configuration, Single Master Process

                                +--------+
                                | master |
                               /|--------|\
                              / |kernel  | \
                    +--------+  |debugger|  +--------+
                    |child1  |  +--------+  |child2  |
                   /|--------|      |       |--------|
                  / |kernel  |      |       |kernel  |
        +--------+  |debugger|      |       |debugger|
        |child3  |  +--------+      |       +--------+
        |--------|      |           |      /
        |kernel  |      |           |     /
        |debugger|      |           |    /
        +--------+      |           |   /
                  \     |           |  /
                   +------------------+
                   |      main        |
                   |    debugger      |
                   +------------------+

     In Figure 2,  the  multiprocess  program  runs  in  several  peer
     processes.  There is no master process.  This configuration would
     result if you invoked the  debugger  by  running  one  debuggable
     image  and then used the SPAWN/NOWAIT command repeatedly to spawn
     other processes and  run  a  debuggable  image  in  each  spawned
     process.

        Figure 2  Multiprocess Configuration, Peer Processes

        +--------+  +--------+  +--------+  +--------+
        | proc1  |--| proc2  |--| proc3  |--| proc4  |
        |--------|  |--------|  |--------|  |--------|
        |kernel  |  |kernel  |  |kernel  |  |kernel  |
        |debugger|  |debugger|  |debugger|  |debugger|
        +--------+  +--------+  +--------+  +--------+
                  \       |           |     /
                   +-----------------------+
                   |         main          |
                   |       debugger        |
                   +-----------------------+

Keypad

     On Digital VT-series terminals and MicroVAX workstations, you can
     use  the  numeric  keypad to enter debugger commands provided you
     are in "keypad mode".  Keypad mode is enabled by default, but can
     be disabled and enabled by the commands SET MODE NOKEYPAD and SET
     MODE KEYPAD, respectively.  In keypad mode, keypad keys are bound
     to  commonly 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   are   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, depending on the key.  You can  define  your
     own keypad definitions with the DEFINE/KEY command.

Additional information available:

DEFAULTGOLDBLUEMOVEEXPANDCONTRACTMOVE_GOLD
EXPAND_GOLDCONTRACT_GOLDMOVE_BLUEEXPAND_BLUE
CONTRACT_BLUESUMMARY

State keys

DEFAULT

Keypad definitions when you do       +--------+--------+--------+--------+
not use a color key.                 |        |  Help  |  Set   |        |
                                     |  GOLD  | Keypad |  Mode  |  BLUE  |
For more keypad help, enter HELP     |        |Default | Screen |        |
KEYPAD GOLD, HELP KEYPAD BLUE        +--------+--------+--------+--------+
or HELP KEYPAD STATE_KEYS.           | Src LH1|        |        |  Disp  |
                                     |Inst RH1| Scroll |  Disp  |  next  |
Control-W does a Display/Refresh     | Out S45|   Up   |  next  | S12345 |
to refresh screen in screen mode.    +--------+--------+--------+--------+
                                     |        |  Exam  |        |        |
                                     | Scroll | Source | Scroll |   Go   |
                                     |  Left  | .0\%PC | Right  |        |
                                     +--------+--------+--------+--------+
                                     |        |        | Select |        |
                                     |  Exam  | Scroll | Scroll |   E    |
                                     |        |  Down  |  next  |   N    |
                                     +--------+--------+--------+   T    |
                                     |                 |        |   E    |
                                     |      Step       | Reset  |   R    |
                                     |                 |        |        |
                                     +-----------------+--------+--------+

GOLD

Keypad definitions when you          +--------+--------+--------+--------+
press the GOLD key first.            |        |  Help  |Set Mode|        |
                                     |  GOLD  | Keypad |   No   |  BLUE  |
Reset cancels the GOLD key.          |        |  Gold  | Screen |        |
                                     +--------+--------+--------+--------+
For more keypad help, enter HELP     |Inst LH1|        |  Set   |        |
KEYPAD BLUE, HELP KEYPAD DEFAULT     | Reg RH1| Scroll | Process|        |
or HELP KEYPAD STATE_KEYS.           | Out S45|  Top   |  next  |        |
                                     +--------+--------+--------+--------+
Control-W does a Display/Refresh     | Scroll |        | Scroll | Select |
to refresh screen in screen mode.    |  Left  |  Show  | Right  | Source |
                                     |  255   |  Calls |  255   |  next  |
                                     +--------+--------+--------+--------+
                                     |  Exam  |        | Select |        |
                                     |  prev  | Scroll | Output |   E    |
                                     |        | Bottom |  next  |   N    |
                                     +--------+--------+--------+   T    |
                                     |                 |        |   E    |
                                     |    Step/Into    | Reset  |   R    |
                                     |                 |        |        |
                                     +-----------------+--------+--------+

BLUE

Keypad definitions when you          +--------+--------+--------+--------+
press the BLUE key first.            |        |  Help  |        |        |
                                     |  GOLD  | Keypad |  Disp  |  BLUE  |
"..." means that you must enter      |        |  Blue  |  Gener |        |
more input after pressing key.       +--------+--------+--------+--------+
                                     |2 SRC Qn| Scroll | 2 SRC  |  Disp  |
Reset cancels the BLUE key.          | 2 INST |   Up   |   at   | Src H1 |
                                     | at RQn |  ...   | Q1,Q2  | Out S45|
For more keypad help, enter HELP     +--------+--------+--------+--------+
KEYPAD GOLD, HELP KEYPAD DEFAULT     | Scroll |  Show  | Scroll | Select |
or HELP KEYPAD STATE_KEYS.           |  Left  |  Calls | Right  |  Inst  |
                                     |  ...   |   3    |  ...   |  next  |
Control-W does a Display/Refresh     +--------+--------+--------+--------+
to refresh screen in screen mode.    |3 SRC Sn| Scroll | 3 SRC  |        |
                                     | 3 INST |  Down  |   at   |   E    |
                                     | at RSn |  ...   |S1,S2,S3|   N    |
                                     +--------+--------+--------+   T    |
                                     |                 |        |   E    |
                                     |    Step/Over    | Reset  |   R    |
                                     |                 |        |        |
                                     +-----------------+--------+--------+

MOVE

Keypad definitions in the MOVE       +--------+--------+--------+--------+
state when you do not use a color    |        |  Help  |  Set   |        |
key.                                 |  GOLD  | Keypad |  Mode  |  BLUE  |
                                     |        |  Move  | Screen |        |
For more keypad help, enter HELP     +--------+--------+--------+--------+
KEYPAD GOLD, HELP KEYPAD BLUE        | Src LH1|        |        |  Disp  |
or HELP KEYPAD STATE_KEYS.           |Inst RH1|  Move  |  Disp  |  next  |
                                     | Out S45|   Up   |  next  | S12345 |
Control-W does a Display/Refresh     +--------+--------+--------+--------+
to refresh screen in screen mode.    |        |  Exam  |        |        |
                                     |  Move  | Source |  Move  |   Go   |
                                     |  Left  | .0\%PC |  Right |        |
                                     +--------+--------+--------+--------+
                                     |        |        | Select |        |
                                     |  Exam  |  Move  | Scroll |   E    |
                                     |        |  Down  |  next  |   N    |
                                     +--------+--------+--------+   T    |
                                     |                 |        |   E    |
                                     |      Step       | Reset  |   R    |
                                     |                 |        |        |
                                     +-----------------+--------+--------+

EXPAND

Keypad definitions in the EXPAND     +--------+--------+--------+--------+
state when you do not use a color    |        |  Help  |  Set   |        |
key.                                 |  GOLD  | Keypad |  Mode  |  BLUE  |
                                     |        | Expand | Screen |        |
For more keypad help, enter HELP     +--------+--------+--------+--------+
KEYPAD GOLD, HELP KEYPAD BLUE        | Src LH1|        |        |  Disp  |
or HELP KEYPAD STATE_KEYS.           |Inst RH1| Expand |  Disp  |  next  |
                                     | Out S45|   Up   |  next  | S12345 |
Control-W does a Display/Refresh     +--------+--------+--------+--------+
to refresh screen in screen mode.    |        |  Exam  |        |        |
                                     | Expand | Source | Expand |   Go   |
                                     |  Left  | .0\%PC | Right  |        |
                                     +--------+--------+--------+--------+
                                     |        |        | Select |        |
                                     |  Exam  | Expand | Scroll |   E    |
                                     |        |  Down  |  next  |   N    |
                                     +--------+--------+--------+   T    |
                                     |                 |        |   E    |
                                     |      Step       | Reset  |   R    |
                                     |                 |        |        |
                                     +-----------------+--------+--------+

CONTRACT

Keypad definitions in the CONTRACT   +--------+--------+--------+--------+
state when you do not use a color    |        |  Help  |  Set   |        |
key.                                 |  GOLD  | Keypad |  Mode  |  BLUE  |
                                     |        |Contract| Screen |        |
For more keypad help, enter HELP     +--------+--------+--------+--------+
KEYPAD GOLD, HELP KEYPAD BLUE        | Src LH1| Expand |        |  Disp  |
or HELP KEYPAD STATE_KEYS.           |Inst RH1|   Up=  |  Disp  |  next  |
                                     | Out S45|   -1   |  next  | S12345 |
Control-W does a Display/Refresh     +--------+--------+--------+--------+
to refresh screen in screen mode.    | Expand |  Exam  | Expand |        |
                                     |  Left= | Source | Right= |   Go   |
                                     |   -1   | .0\%PC |   -1   |        |
                                     +--------+--------+--------+--------+
                                     |        | Expand | Select |        |
                                     |  Exam  |  Down= | Scroll |   E    |
                                     |        |   -1   |  next  |   N    |
                                     +--------+--------+--------+   T    |
                                     |                 |        |   E    |
                                     |      Step       | Reset  |   R    |
                                     |                 |        |        |
                                     +-----------------+--------+--------+

MOVE_GOLD

Keypad definitions in the MOVE       +--------+--------+--------+--------+
state when you press the GOLD key    |        |  Help  |Set Mode|        |
first.                               |  GOLD  | Keypad |   No   |  BLUE  |
                                     |        |MoveGold| Screen |        |
Reset cancels the GOLD key.          +--------+--------+--------+--------+
                                     |Inst LH1|  Move  |  Set   |        |
For more keypad help, enter HELP     | Reg RH1|   Up=  | Process|        |
KEYPAD BLUE, HELP KEYPAD DEFAULT     | Out S45|   999  |  next  |        |
or HELP KEYPAD STATE_KEYS.           +--------+--------+--------+--------+
                                     |  Move  |        |  Move  | Select |
Control-W does a Display/Refresh     |  Left= |  Show  | Right= | Source |
to refresh screen in screen mode.    |   999  |  Calls |   999  |  next  |
                                     +--------+--------+--------+--------+
                                     |  Exam  |  Move  | Select |        |
                                     |  prev  |  Down= | Output |   E    |
                                     |        |   999  |  next  |   N    |
                                     +--------+--------+--------+   T    |
                                     |                 |        |   E    |
                                     |    Step/Into    | Reset  |   R    |
                                     |                 |        |        |
                                     +-----------------+--------+--------+

EXPAND_GOLD

Keypad definitions in the EXPAND     +--------+--------+--------+--------+
state when you press the GOLD key    |        |  Help  |Set Mode|        |
first.                               |  GOLD  | Keypad |   No   |  BLUE  |
                                     |        |ExpaGold| Screen |        |
Reset cancels the GOLD key.          +--------+--------+--------+--------+
                                     |Inst LH1| Expand |  Set   |        |
For more keypad help, enter HELP     | Reg RH1|   Up=  | Process|        |
KEYPAD BLUE, HELP KEYPAD DEFAULT     | Out S45|   999  |  next  |        |
or HELP KEYPAD STATE_KEYS.           +--------+--------+--------+--------+
                                     | Expand |        | Expand | Select |
Control-W does a Display/Refresh     |  Left= |  Show  | Right= | Source |
to refresh screen in screen mode.    |   999  |  Calls |   999  |  next  |
                                     +--------+--------+--------+--------+
                                     |  Exam  | Expand | Select |        |
                                     |  prev  |  Down= | Output |   E    |
                                     |        |   999  |  next  |   N    |
                                     +--------+--------+--------+   T    |
                                     |                 |        |   E    |
                                     |    Step/Into    | Reset  |   R    |
                                     |                 |        |        |
                                     +-----------------+--------+--------+

CONTRACT_GOLD

Keypad definitions in the CONTRACT   +--------+--------+--------+--------+
state when you press the GOLD key    |        |  Help  |Set Mode|        |
first.                               |  GOLD  | Keypad |   No   |  BLUE  |
                                     |        |CntrGold| Screen |        |
Reset cancels the GOLD key.          +--------+--------+--------+--------+
                                     |Inst LH1| Expand |  Set   |        |
For more keypad help, enter HELP     | Reg RH1|   Up=  | Process|        |
KEYPAD BLUE, HELP KEYPAD DEFAULT     | Out S45|  -999  |  next  |        |
or HELP KEYPAD STATE_KEYS.           +--------+--------+--------+--------+
                                     | Expand |        | Expand | Select |
Control-W does a Display/Refresh     |  Left= |  Show  | Right= | Source |
to refresh screen in screen mode.    |  -999  |  Calls |  -999  |  next  |
                                     +--------+--------+--------+--------+
                                     |  Exam  | Expand | Select |        |
                                     |  prev  |  Down= | Output |   E    |
                                     |        |  -999  |  next  |   N    |
                                     +--------+--------+--------+   T    |
                                     |                 |        |   E    |
                                     |    Step/Into    | Reset  |   R    |
                                     |                 |        |        |
                                     +-----------------+--------+--------+

MOVE_BLUE

Keypad definitions in the MOVE       +--------+--------+--------+--------+
state when you press the BLUE key    |        |  Help  |        |        |
first.                               |  GOLD  | Keypad |  Disp  |  BLUE  |
                                     |        |MoveBlue|  Gener |        |
"..." means that you must enter      +--------+--------+--------+--------+
more input after pressing key.       |2 SRC Qn|        | 2 SRC  |  Disp  |
                                     | 2 INST |  Move  |   at   | Src H1 |
Reset cancels the BLUE key.          | at RQn |  Up=5  | Q1,Q2  | Out S45|
                                     +--------+--------+--------+--------+
For more keypad help, enter HELP     |        |  Show  |        | Select |
KEYPAD GOLD, HELP KEYPAD DEFAULT     |  Move  |  Calls |  Move  |  Inst  |
or HELP KEYPAD STATE_KEYS.           | Left=10|   3    |Right=10|  next  |
                                     +--------+--------+--------+--------+
Control-W does a Display/Refresh     |3 SRC Sn|        | 3 SRC  |        |
to refresh screen in screen mode.    | 3 INST |  Move  |   at   |   E    |
                                     | at RSn | Down=5 |S1,S2,S3|   N    |
                                     +--------+--------+--------+   T    |
                                     |                 |        |   E    |
                                     |    Step/Over    | Reset  |   R    |
                                     |                 |        |        |
                                     +-----------------+--------+--------+

EXPAND_BLUE

Keypad definitions in the EXPAND     +--------+--------+--------+--------+
state when you press the BLUE key    |        |  Help  |        |        |
first.                               |  GOLD  | Keypad |  Disp  |  BLUE  |
                                     |        |ExpaBlue|  Gener |        |
"..." means that you must enter      +--------+--------+--------+--------+
more input after pressing key.       |2 SRC Qn|        | 2 SRC  |  Disp  |
                                     | 2 INST | Expand |   at   | Src H1 |
Reset cancels the BLUE key.          | at RQn |  Up=5  | Q1,Q2  | Out S45|
                                     +--------+--------+--------+--------+
For more keypad help, enter HELP     |        |  Show  |        | Select |
KEYPAD GOLD, HELP KEYPAD DEFAULT     | Expand |  Calls | Expand |  Inst  |
or HELP KEYPAD STATE_KEYS.           | Left=10|   3    |Right=10|  next  |
                                     +--------+--------+--------+--------+
Control-W does a Display/Refresh     |3 SRC Sn|        | 3 SRC  |        |
to refresh screen in screen mode.    | 3 INST | Expand |   at   |   E    |
                                     | at RSn | Down=5 |S1,S2,S3|   N    |
                                     +--------+--------+--------+   T    |
                                     |                 |        |   E    |
                                     |    Step/Over    | Reset  |   R    |
                                     |                 |        |        |
                                     +-----------------+--------+--------+

CONTRACT_BLUE

Keypad definitions in the CONTRACT   +--------+--------+--------+--------+
state when you press the BLUE key    |        |  Help  |        |        |
first.                               |  GOLD  | Keypad |  Disp  |  BLUE  |
                                     |        |CntrBlue|  Gener |        |
"..." means that you must enter      +--------+--------+--------+--------+
more input after pressing key.       |2 SRC Qn| Expand | 2 SRC  |  Disp  |
                                     | 2 INST |   Up=  |   at   | Src H1 |
Reset cancels the BLUE key.          | at RQn |   -5   | Q1,Q2  | Out S45|
                                     +--------+--------+--------+--------+
For more keypad help, enter HELP     | Expand |  Show  | Expand | Select |
KEYPAD GOLD, HELP KEYPAD DEFAULT     |  Left= |  Calls | Right= |  Inst  |
or HELP KEYPAD STATE_KEYS.           |  -10   |   3    |  -10   |  next  |
                                     +--------+--------+--------+--------+
Control-W does a Display/Refresh     |3 SRC Sn| Expand | 3 SRC  |        |
to refresh screen in screen mode.    | 3 INST |  Down= |   at   |   E    |
                                     | at RSn |   -5   |S1,S2,S3|   N    |
                                     +--------+--------+--------+   T    |
                                     |                 |        |   E    |
                                     |    Step/Over    | Reset  |   R    |
                                     |                 |        |        |
                                     +-----------------+--------+--------+

State keys

     The four scrolling keys (KP8, KP2, KP4, and KP6) can also be used
     to expand, contract, and move displays.  Just as they can perform
     a SCROLL /UP, /DOWN, /LEFT, or /RIGHT, they  can  now  perform  a
     MOVE,  etc.   in  those  directions as well.  The GOLD key can be
     used to cause the operation to advance  more  than  one  line  or
     column.   The  commands  are  directed  at  the current scrolling
     display.  The key KP3 can be used to select the current scrolling
     display from the display circular list.

     Four keys on the LK201 keyboard  are  used  to  facilitate  this.
     They  place  the  numeric  keypad  in  one  of the following four
     states:  DEFAULT,  MOVE,  EXPAND,  CONTRACT.   This  changes  the
     definition  of  the  keys KP8, KP2, KP4, and KP6.  The meaning of
     all other keys remains unchanged.

     For example, in the MOVE state (F18), pressing the key KP2 causes
     the  default  scrolling  display  to  move  down by one character
     position.  Pressing GOLD KP2 causes the display to move down by a
     larger  increment.   The  keypad  remains in the MOVE state until
     another state, such as the  DEFAULT  state  (F17),  is  selected.
     This restores the definition of the SCROLL operation.

     If you do not have an LK201 keyboard with the F17-F20 keys on it,
     you may get the same effect by typing the corresponding command:


                                         F17      F18      F19      F20
     SET KEY/STATE=DEFAULT     or    +--------+--------+--------+--------+
     SET KEY/STATE=MOVE              |        |        |        |        |
     SET KEY/STATE=EXPAND            | DEFAULT|  MOVE  | EXPAND |CONTRACT|
     SET KEY/STATE=CONTRACT          |        |        |        |        |
                                     +--------+--------+--------+--------+

SUMMARY

Summary of debugger key definitions. +--------+--------+--------+--------+
                                     |        |        |        |        |
For more keypad help, enter HELP     |  GOLD  |  Help  | Screen |  BLUE  |
KEYPAD DEFAULT, HELP KEYPAD GOLD,    |        |        |  Mode  |        |
HELP KEYPAD BLUE, or HELP KEYPAD     +--------+--------+--------+--------+
STATE_KEYS.                          | Select |        |        |  Disp  |
                                     | Screen |   Up   |  Disp  |  next  |
Control-W does a Display/Refresh     | Layout |        |  next  |  at FS |
to refresh screen in screen mode.    +--------+--------+--------+--------+
                                     |        |        |        |        |
                                     |  Left  | Where  | Right  |   Go   |
                                     |        | am I?  |        |        |
                                     +--------+--------+--------+--------+
                                     |        |        |        |        |
                                     |  Exam  |  Down  | Select |   E    |
                                     |        |        |  next  |   N    |
                                     +--------+--------+--------+   T    |
                                     |                 |        |   E    |
                                     |      Step       | Reset  |   R    |
                                     |                 |        |        |
                                     +-----------------+--------+--------+

Languages

     This section gives help on each of the languages supported by the
     debugger.   The  help  information  includes  tables saying which
     language operators and data types are supported by  the  debugger
     in language expressions (for example, in the EVALUATE command).

Additional information available:

ADABASICBLISSCCCOBOLDIBOLFORTRAN
MACROPASCALPLIRPGSCANUNKNOWN

ADA

     The debugger completely supports  the  ADA  language.   It  knows
     about  ADA  names,  operators,  and  data  types  when evaluating
     expressions in an EXAMINE or EVALUATE command.   It  knows  about
     ADA  packages,  with  clauses,  and  use clauses, and follows ADA
     scoping rules when looking up symbols.  There are a large  number
     of   special-purpose   commands   to  support  debugging  of  ADA
     multitasking programs and ADA exception events.

Additional information available:

Data TypesEventsExceptionsMultitaskingOperatorsNamesOverloading
PackagesSubunitsTick Operators

Data Types

     Supported ADA Data Types

     Integer
     Float
     Fixed
     Enumeration
     Arrays
     Records
     Pointers
     Tasks

Events

     The debugger allows you to set breakpoints and tracepoints (known
     generically   as   "eventpoints")  on  certain  types  of  events
     occurring during the execution of your program which are  defined
     and  detected  by  the  Ada RTL.  These events would otherwise be
     very difficult (or impossible) for you to set a breakpoint on.

     They fall  into  two  broad  categories:   exception  events  and
     tasking  events.  Exception events allow you to break or trace on
     any exception that is about to be handled  by  an  Ada  exception
     handler.  They are applicable to any Ada program.  Tasking events
     deal specifically with multitasking programs.  They allow you  to
     break  or  trace on task scheduling, termination, and other state
     transitions.

Additional information available:

CommandsEvent parametersExamples

Commands

     To tell debugger to use  the  Ada  RTL  as  the  event  detection
     facility   for   succeeding   commands,  type  the  command  "SET
     EVENT_FACILITY ADA"

     To see what the run time event facility is and what  the  defined
     events are, type the command "SHOW EVENT_FACILITY".

     To set an eventpoint for the Ada RTL to detect, use the  commands
     "SET BREAK/EVENT=keyword" or "SET TRACE/EVENT=keyword".

     To display the eventpoints you have set, use the  commands  "SHOW
     BREAK" or "SHOW TRACE".

     To   remove   the   eventpoints   use   the   commands    "CANCEL
     BREAK/EVENT=keyword" or "CANCEL TRACE/EVENT=keyword"

Event parameters

     Generally, the SET BREAK/EVENT and SET TRACE/EVENT  commands  can
     take  parameters  which  may  be  either  address  expressions or
     language expressions.  For Ada, the allowed parameters  are  task
     names.    Parameters   are  optional;  omitting  them  implies  a
     "wildcard" as a parameter.

Examples

     Initialize the debugger for Ada events:

         DBG> SET EVENT_FACILITY ADA

     Display the defined event names:

         DBG> SHOW EVENT_FACILITY
         event facility is ADA
         Ada event names and definitions:
         ...

     Set a breakpoint that is  triggered  whenever  any  exception  is
     handled by an Ada exception handler:

         DBG> SET BREAK/EVENT=HANDLED
         DBG> GO
          ...
         break on Ada event HANDLED in %TASK 1
         task %TASK 1 is about to handle an exception
         the Ada exception handler is at: SCREEN_IO.%LINE 36
              %ADA, Exception was copied at a "raise" or "accept".
              Error PC=0000F60B
              -ADA, Exception BAD_INPUT
              -ADA, Exception raised prior to PC=00000670

     Set two tracepoints that are triggered when either task GAMMA  or
     %TASK  1  respectively, make a transition to the RUN state.  When
     the event is triggered, display information about all  the  tasks
     in the program:

         DBG> SET TRACE/EVENT=RUN GAMMA, %TASK 1  DO (SHOW TASK/ALL)
         DBG> GO
         trace on ADA event RUN in %TASK 1
         task %TASK 1 is about to run
           task id     pri hold state   substate          task object
         * %TASK 1      7       RUN                     81600
           %TASK 2      7       READY                   SAMPLE.ALPHA
           %TASK 3      7       READY                   SAMPLE.BETA
           %TASK 4      7       READY                   SAMPLE.GAMMA
           %TASK 5      7       READY                   SAMPLE.DELTA
         trace on ADA event RUN in %TASK 4
         task %TASK 4 is about to run
           task id     pri hold state   substate          task object
           %TASK 1      7       SUSP  Dependents        81600
           %TASK 2      7       READY                   SAMPLE.ALPHA
           %TASK 3      7       READY                   SAMPLE.BETA
         * %TASK 4      7       RUN                     SAMPLE.GAMMA
           %TASK 5      7       READY                   SAMPLE.DELTA

     Set a breakpoint that is triggered whenever any task  enters  the
     TERMINATED   state.    When   the  event  is  triggered,  display
     information about all the tasks in the program:

         DBG> SET BREAK/EVENT=TERMINATED  DO (SHOW TASK/ALL)
         DBG> GO
         break on ADA event TERMINATED in %TASK 5
         task %TASK 5 is terminating normally.
           task id     pri hold state   substate          task object
           %TASK 1      7       READY                   81600
           %TASK 2      7       READY                   SAMPLE.ALPHA
           %TASK 3      7       READY                   SAMPLE.BETA
           %TASK 4      7       READY                   SAMPLE.GAMMA
         * %TASK 5      7       RUN   Terminated        SAMPLE.DELTA
         DBG> GO
         break on ADA event TERMINATED in %TASK 4
         task %TASK 4 is terminating normally.
           task id     pri hold state   substate          task object
           %TASK 1      7       READY                   81600
           %TASK 2      7       READY                   SAMPLE.ALPHA
           %TASK 3      7       READY                   SAMPLE.BETA
         * %TASK 4      7       RUN   Terminated        SAMPLE.GAMMA
           %TASK 5      7       TERM  Terminated        SAMPLE.DELTA


Exceptions

     The debugger  provides  built-in  lexical  functions  to  provide
     information  about  the  current exception.  See the HELP text on
     "Lexical %ADAEXC" for Ada specific exceptions and "Lexical  %EXC"
     for non-Ada-specific exceptions.

     Also see "Languages ADA Events" for information  on  Ada-specific
     exception  events  and "SET BREAK/EXCEPTION" for non-Ada-specific
     exceptions events.

Multitasking

     The debugger has a large number of commands to help you debug ADA
     multitasking programs:

     SHOW TASK -- lets you  observe  the  state  of  the  multitasking
     system.

     SET TASK -- lets you alter the state of the multitasking system.

     SET BREAK/EVENT and SET TRACE/EVENT -- lets you  set  breakpoints
     on tasking events of interest to you.

     The HELP text for these commands provides  detailed  information.
     Also see the support for tasking events described under "Language
     Ada EVENTS".

Operators

     Supported ADA Operators in Expressions

        Kind   Symbol   Function
       ------  ------   --------
       Prefix    +      Unary plus
       Prefix    -      Unary minus (negation)
       Infix     +      Addition
       Infix     -      Subtraction
       Infix     *      Multiplication
       Infix     /      Division
       Infix    MOD     Modulus
       Infix    REM     Remainder
       Infix     **     Exponentiation
       Prefix   ABS     Absolute value
       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     Logical NOT
       Infix    AND     Logical AND
       Infix    OR      Logical OR
       Infix    XOR     Logical Exclusive OR

Names

     Supported Constructs for ADA names

       Symbol    Construct
       ------    ---------
        ( )      Subscripting
         .       Record component selection
        .ALL     Pointer dereferencing

Overloading

     If a function F is overloaded, then the debugger invents names of
     the  form  F__1,  F__2,  and  so  on,  to refer to the individual
     instances of the overloaded function.  You  can  find  out  about
     these names as follows:

     DBG> SET BREAK F
     %DEBUG-W-NOUNIQUE, F is not unique due to overloading
     DBG> SHOW SYMBOL F
     Overloaded function F
        Overloaded instance F__1
        Overloaded instance F__2
     DBG> SET BREAK F__1

     The "SEARCH" command and the "EXAMINE/SOURCE" command may also be
     useful  in locating the source associated with the definitions of
     F.

Packages

     The debugger knows about ADA packages, and  follows  ADA  scoping
     rules  (that  is,  takes  into account WITH and USE clauses) when
     looking up symbols.

     Library packages are treated as  modules  that  can  be  set  and
     cancelled  individually.  If the library package has a spec and a
     body then each has its own module.  If the package name  is  "P",
     then  the module for the package body has the name "P", while the
     module with the package spec gets the name "P_".  Set the  module
     "P_"  to  make  visible  the names declared in the spec.  Set the
     module "P" to make visible the names local to the body.

     The debugger sometimes sets package  spec  modules  for  you,  in
     order  to  be able to correctly follow ADA's scoping rules during
     symbol lookup.  See  the  help  on  "SET  MODULE/RELATED",  "SHOW
     MODULE/RELATED" for details.

     Example:

     package P is
         ...
         end P;
     package body P is
         ...
         end P;

     with P;
     procedure M is
         ...
         end M;

     DBG> SHOW MODULE
     module name     symbols
     M               no
     P               no
     P_              no
     DBG> SET MODULE M
     module name     symbols
     M               yes
     P               no
     P_              yes


Subunits

     The debugger knows about ADA subunits.  A subunit is treated as a
     debugger  module.   If  S  is  a  subunit  of  M, then the module
     containing S has the  invented  name  M__S.   It  has  a  special
     relationship  with  the  parent module M:  if you set the subunit
     module M__S, then  the  parent  module  M  is  also  set  by  the
     debugger.  This is done in order to make visible symbols that are
     up-level referenced.

     Example:

     procedure M is
        ...
        procedure S is separate;
        ...
        end M;

     separate(M);
     procedure S is
        begin
        ...
        end;

     DBG> SHOW MODULE
     module name     symbols
     M               no
     M__S            no
     DBG> SET MODULE S
     DBG> SHOW MODULE
     module name     symbols
     M               yes
     M__S            no


Tick Operators

      Supported ADA "Tick Operators"

     'CONSTRAINED
     'FIRST
     'LAST
     'LENGTH
     'POS
     'PRED
     'SIZE
     'SUCC
     'VAL

     Example:

     DBG> EVAL DAY'SUCC(MONDAY)
     TUESDAY

BASIC

     Debugger Support for Language BASIC

Additional information available:

OperatorsExpressionsData TypesNotes

Operators

     Supported BASIC Operators in Language Expressions

        Kind   Symbol   Function
       ------  ------   --------
       Prefix    +      Unary plus
       Prefix    -      Unary minus (negation)
       Infix     +      Addition, String concatenation
       Infix     -      Subtraction
       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

Expressions

Supported Constructs in Language and Address Expressions for BASIC

       Symbol    Construct
       ------    ---------
         ( )     Subscripting
         ::      Record component selection

Data Types

     Supported BASIC Data Types

     BYTE            HFLOAT
     WORD            DECIMAL
     LONG            STRING
     SINGLE          RFA
     DOUBLE          Arrays
     GFLOAT          Records

Notes

Expressions that overflow in the BASIC  language  do  not  necessarily
overflow  when  evaluated  by  the  debugger.   The  debugger tries to
compute a numerically correct result, even when the BASIC  rules  call
for  overflows.   This  difference  is  particularly  likely to affect
DECIMAL computations.

BASIC constants of the forms  [radix]"numeric-string"[type]  (such  as
"12.34"GFLOAT) or n% (such as 25% for integer 25) are not supported in
debugger expressions.

BLISS

     Debugger Support for Language BLISS

Additional information available:

OperatorsExpressionsData Types

Operators

     Supported BLISS Operators in Language Expressions

        Kind   Symbol   Function
       ------  ------   --------
       Prefix    .      Indirection
       Prefix    +      Unary plus
       Prefix    -      Unary minus (negation)
       Infix     +      Addition
       Infix     -      Subtraction
       Infix     *      Multiplication
       Infix     /      Division
       Infix    MOD     Remainder
       Infix     ^      Left 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 to
       Infix    GEQU    Greater than or equal to unsigned
       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 to
       Infix    LEQU    Less than or equal to unsigned
       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

Expressions

Supported Constructs in Language and Address Expressions for BLISS

       Symbol      Construct
       ------      ---------
        [ ]        Subscripting
       [fldname]   Field selection
       <p,s,e>     Bit field selection


Data Types

     Supported BLISS Data Types

     BYTE            BITVECTOR
     WORD            BLOCK
     LONG            BLOCKVECTOR
     BYTE UNSIGNED   REF VECTOR
     WORD UNSIGNED   REF BITVECTOR
     LONG UNSIGNED   REF BLOCK
     VECTOR          REF BLOCKVECTOR

CC

     Debugger Support for Language C

Additional information available:

OperatorsExpressionsData TypesNotes

Operators

     Supported C Operators in Language Expressions

        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
       Infix     &      Bit-wise AND
       Infix     |      Bit-wise OR
       Infix     ^      Bit-wise exclusive OR
       Prefix    !      Logical NOT
       Infix     &&     Logical AND
       Infix     ||     Logical OR

Expressions

Supported Constructs in Language and Address Expressions for C

       Symbol    Construct
       ------    ---------
        [ ]      Subscripting
         .       Structure component selection
         ->      Pointer dereferencing

Data Types

     Supported C Data Types

     INT                     DOUBLE
     SHORT INT               ENUM
     UNSIGNED INT            STRUCT
     UNSIGNED SHORT INT      UNION
     CHAR                    Pointers
     UNSIGNED CHAR           Arrays
     FLOAT

Notes

Symbol  names  are  case-sensitive  for  language  C,   meaning   that
upper-case and lower-case letters are treated as different characters.

Since the exclamation point (!) is an operator in C, it cannot be used
as the comment delimiter.  When the language is set to C, the debugger
instead accepts /* as the comment delimiter.  The comment continues to
the  end  of  the  current line.  (A matching */ is neither needed nor
recognized.) To permit debugger log  files  to  be  used  as  debugger
input,  the  debugger still recognizes !  as a comment delimiter if it
is the first non-blank character on a line.

The debugger  accepts  the  prefix  asterisk  (*)  as  an  indirection
operator   in   both  C  language  expressions  and  debugger  address
expressions.  In address expressions,  prefix  "*"  is  synonymous  to
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 unintended modifications to
the program being debugged.  Hence such operators as =,  +=,  -=,  ++,
and  --  are  not  recognized.  If you wish to alter the contents of a
memory location, you must do so with an explicit DEPOSIT command.

COBOL

     Debugger Support for Language COBOL

Additional information available:

OperatorsExpressionsData TypesNotes

Operators

     Supported COBOL Operators in Language Expressions

        Kind   Symbol   Function
       ------  ------   --------
       Prefix    +      Unary plus
       Prefix    -      Unary minus (negation)
       Infix     +      Addition
       Infix     -      Subtraction
       Infix     *      Multiplication
       Infix     /      Division
       Infix     **     Exponentiation
       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

Expressions

Supported Constructs in Language and Address Expressions for COBOL

       Symbol    Construct
       ------    ---------
        ( )      Subscripting
        OF       Record component selection
        IN       Record component selection

Data Types

     Supported COBOL Data Types

     COMP            Records
     COMP-1          Numeric Unsigned
     COMP-2          Leading Separate Sign
     COMP-3          Leading Overpunched Sign
     INDEX           Trailing Separate Sign
     Alphanumeric    Trailing Overpunched Sign

Notes

The debugger can show source text included in a program with the  COPY
or  COPY  REPLACING  verb.   However, when COPY REPLACING is used, the
debugger always shows the original source text as it  appeared  before
text  replacement.   In other words, the original source file is shown
instead of the modified source text generated by  the  COPY  REPLACING
verb.

The debugger cannot show the original source lines associated with the
code  for a REPORT section.  You can see the DATA SECTION source lines
associated with a REPORT, but no source lines are associated with  the
compiled code that generates the report.

VAX COBOL may use quadword, longword, or word to represent a COMP data
type.

DIBOL

     Debugger Support for Language DIBOL

Additional information available:

OperatorsExpressionsData Types

Operators

     Supported DIBOL Operators in Language Expressions

        Kind   Symbol   Function
       ------  ------   --------
       Prefix    #      Round
       Prefix    +      Unary plus
       Prefix    -      Unary minus (negation)
       Infix     +      Addition
       Infix     -      Subtraction
       Infix     *      Multiplication
       Infix     /      Division
       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
       Prefix  .NOT.    Logical NOT
       Infix   .AND.    Logical AND
       Infix    .OR.    Logical OR
       Infix   .XOR.    Exclusive OR

Expressions

Supported Constructs in Language and Address Expressions for DIBOL

       Symbol    Construct
       ------    ---------
        ( )      Substring
        [ ]      Subscripting
         .       Record component selection

Data Types

     Supported DIBOL Data Types

     Byte integer (I1)
     Word integer (I2)
     Long integer (I4)
     Packed decimal (Pn)
     Implied packed decimal (Pn.m)
     Zoned decimal (Dn)
     Implied zoned decimal (Dn.m)
     Ascii (An)
     Arrays
     Records

FORTRAN

     Debugger Support for Language FORTRAN

Additional information available:

OperatorsExpressionsPredefined SymbolsData TypesNotes

Operators

     Supported FORTRAN Operators in Language Expressions

        Kind   Symbol   Function
       ------  ------   --------
       Prefix    +      Unary plus
       Prefix    -      Unary minus (negation)
       Infix     +      Addition
       Infix     -      Subtraction
       Infix     *      Multiplication
       Infix     /      Division
       Infix     **     Exponentiation
       Infix     //     Concatenation
       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
       Prefix  .NOT.    Logical NOT
       Infix   .AND.    Logical AND
       Infix    .OR.    Logical OR
       Infix   .XOR.    Exclusive OR
       Infix   .EQV.    Equivalence
       Infix   .NEQV.   Exclusive OR

Expressions

Supported Constructs in Language and Address Expressions for FORTRAN

       Symbol    Construct
       ------    ---------
        ( )      Subscripting
         .       Record component selection

Predefined Symbols

     Supported FORTRAN Predefined Symbols

       Symbol      Meaning
       ------      -------
       .TRUE.    Logical True
       .FALSE.   Logical False

Data Types

     Supported FORTRAN Data Types

     LOGICAL*1       REAL*16
     LOGICAL*2       COMPLEX*8
     LOGICAL*4       COMPLEX*16
     INTEGER*2       CHARACTER
     INTEGER*4       Arrays
     REAL*4          Records
     REAL*8

Notes

Even though the VAX type codes for unsigned integers (BU, WU, LU)  are
used internally to describe the LOGICAL data types, the debugger (like
the compiler) treats LOGICAL variables and values as being signed when
used in language expressions.

The debugger  prints  the  numeric  values  of  LOGICAL  variables  or
expressions  instead  of  TRUE or FALSE.  Normally, only the low-order
bit of a LOGICAL variable or value is significant (0 is FALSE and 1 is
TRUE).  However, VAX FORTRAN does allow all bits in a LOGICAL value to
be manipulated and LOGICAL values can be used in integer  expressions.
For  this  reason,  it is at times necessary to see the entire integer
value of a LOGICAL variable  or  expression,  and  that  is  what  the
debugger shows.

COMPLEX constants such as (1.0,2.0)  are  not  supported  in  debugger
expressions.

Floating  point  numbers  of  type  REAL*8  and  COMPLEX*16   may   be
represented   by   D_Floating  or  G_Floating  depending  on  compiler
switches.

MACRO

     Debugger Support for Language MACRO

Additional information available:

OperatorsExpressionsData Types

Operators

     Supported Operators in Language Expressions

Language MACRO  does  not  have  expressions  in  the  same  sense  as
high-level  languages.   Only  assembly-time  expressions  and  only a
limited set of operators are accepted.  To permit the MACRO programmer
to  use expressions at debug-time as freely as in other languages, the
debugger accepts a number of operators in MACRO  language  expressions
that  are  not  found  in  MACRO  itself.  In particular, the debugger
accepts a complete set of comparison  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
       Prefix    -      Unary minus (negation)
       Infix     +      Addition
       Infix     -      Subtraction
       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 to
       Infix    GEQU    Greater than or equal to unsigned
       Infix    LSS     Less than
       Infix    LSSU    Less than unsigned
       Infix    LEQ     Less than or equal to
       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

Expressions

Supported Constructs in Language and Address Expressions for MACRO

       Symbol    Construct
       ------    ---------
       <p,s,e>   Bitfield selection as in BLISS
       [ ]       Subscripting

The DST information generated by the MACRO assembler  treats  a  label
that  is  followed by an assembler directive for storage allocation as
an array variable whose name is the label.  This enables  you  to  use
the   array   syntax  of  a  high-level  language  when  examining  or
manipulating such data.

In the  following  example  of  MACRO  source  code,  the  label  LAB4
designates hexadecimal data stored in four words:

     LAB4:    .WORD    ^X3F,5[2],^X3C

The debugger treats LAB4 as an array variable.  For example, the  next
command displays the value stored in each element (word):

     DBG> EXAMINE LAB4
     .MAIN.\MAIN\LAB4
         [0]:        003F
         [1]:        0005
         [2]:        0005
         [3]:        003C
     DBG>

The next command displays the value stored in  the  fourth  word  (the
first word is indexed as element "0"):

     DBG> EXAMINE LAB4[3]
     .MAIN.\MAIN\LAB4[3]:    03C
     DBG>

Data Types

     Supported MACRO Data Types

     Byte Unsigned (BU)
     Word Unsigned (WU)
     Longword Unsigned (LU)
     Byte Integer (B)
     Word Integer (W)
     Longword Integer (L)

PASCAL

     Debugger Support for Language PASCAL

Additional information available:

OperatorsExpressionsPredefined SymbolsData TypesNotes

Operators

     Supported PASCAL Operators in Language Expressions

        Kind   Symbol   Function
       ------  ------   --------
       Prefix    +      Unary plus
       Prefix    -      Unary minus (negation)
       Infix     +      Addition, concatenation
       Infix     -      Subtraction
       Infix     *      Multiplication
       Infix     /      Real division
       Infix    DIV     Integer division
       Infix    MOD     Modulus
       Infix    REM     Remainder
       Infix     **     Exponentiation
       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

Expressions

Supported Constructs in Language and Address Expressions for PASCAL

       Symbol    Construct
       ------    ---------
        [ ]      Subscripting
         .       Record component selection
         ^       Pointer dereferencing

Predefined Symbols

     Supported PASCAL Predefined Symbols and Functions

       Symbol      Meaning
       ------      -------
        TRUE     Boolean True
        FALSE    Boolean False
        NIL      Nil pointer

Data Types

     Supported PASCAL Data Types

     INTEGER         CHAR            Subranges
     UNSIGNED        VARYING         Typed
     SINGLE          SET             Arrays
     DOUBLE          FILE            Records
     QUADRUPLE       Enumerations    Variant
     BOOLEAN

Notes

The debugger accepts PASCAL set constants  such  as  [1,2,5,8..10]  or
[RED, BLUE] in PASCAL language expressions.

VAX PASCAL may use longword, word, or byte  to  represent  INTEGER  or
UNSIGNED  data  types.  DOUBLE precision floating point numbers may be
represented  by  D_Floating  or  G_Floating  depending   on   compiler
switches.

PLI

     Debugger Support for Language PL/I

Additional information available:

OperatorsExpressionsData TypesNotes

Operators

     Supported PL/I Operators in Language Expressions

        Kind   Symbol   Function
       ------  ------   --------
       Prefix    +      Unary plus
       Prefix    -      Unary minus (negation)
       Infix     +      Addition
       Infix     -      Subtraction
       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

Expressions

Supported Constructs in Language and Address Expressions for PL/I

       Symbol    Construct
       ------    ---------
        ( )      Subscripting
         .       Structure component selection
         ->      Pointer dereferencing

Data Types

     Supported PL/I Data Types

     FIXED BINARY        CHARACTER VARYING
     FIXED DECIMAL       FILE
     FLOAT BINARY        Labels
     FLOAT DECIMAL       Pointers
     BIT                 Arrays
     CHARACTER           Structures

Notes

The debugger treats all numeric constants of the form n or n.n in PL/I
language  expressions  as  packed  decimal  constants,  not integer or
floating-point constants, in order to conform to PL/I language  rules.
The  internal  representation of 10 is therefore 0C01 hexadecimal, not
0A hexadecimal.  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
not  normally  significant  when debugging since the debugger supports
the PL/I type conversion rules.  However,  it  is  possible  to  enter
integer  constants  by  using  the  debugger's  %HEX,  %OCT,  and %BIN
operators.

VAX PL/I may use F_Floating, D_Floating, G_Floating, or H_Floating  to
represent  FLOAT  BINARY  or  FLOAT  DECIMAL  data  types depending on
compiler switches.

RPG

     Debugger Support for Language RPG

Additional information available:

OperatorsExpressionsData TypesNotes

Operators

     Supported RPG Operators in Language Expressions

        Kind   Symbol   Function
       ------  ------   --------
       Prefix    +      Unary plus
       Prefix    -      Unary minus (negation)
       Infix     +      Addition
       Infix     -      Subtraction
       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

Expressions

Supported Constructs in Language and Address Expressions for RPG

       Symbol    Construct
       ------    ---------
        ( )      Subscripting

Data Types

     Supported RPG Data Types

     Longword
     Word
     Packed Decimal
     Character
     Overpunched Decimal
     Arrays
     Tables

Notes

The debugger supports access to all RPG indicators and labels used  in
the  current  program.   You can thus examine labels such as *DETL and
indicators such as *INLR and *IN01 through *IN99.

SCAN

     Debugger Support for Language SCAN

Additional information available:

EventsOperatorsExpressionsData Types

Events


     The debugger allows you to set breakpoints and tracepoints (known
     generically   as   "eventpoints")  on  certain  types  of  events
     occurring during the execution of your program which are  defined
     and detected by the SCAN RTL.

     SCAN defines several events.  By  setting  breaks  or  traces  on
     these  events,  you can observe the picture matching process.  To
     see what the defined events are for SCAN, type the command  "SHOW
     EVENTS".

     To set an eventpoint for the SCAN RTL to detect, use the commands
     "SET BREAK/EVENT=keyword" or "SET TRACE/EVENT=keyword".

     To display the eventpoints you have set, use the  commands  "SHOW
     BREAK" or "SHOW TRACE".

     To   remove   the   eventpoints   use   the   commands    "CANCEL
     BREAK/EVENT=keyword" or "CANCEL TRACE/EVENT=keyword"

     Where "keyword" is one of the defined events listed by the  "SHOW
     EVENTS"  command.   SCAN  events  may be abbreviated to 3 or more
     characters.

Additional information available:

Examples

Examples


Set two tracepoints that are triggered when a SCAN Trigger  or  Syntax
Macro  is  activated.   Set a break point that is triggered whenever a
SCAN token is built.

     DBG>SET TRACE/EVENT=TRIGGER
     DBG>SET TRACE/EVENT=SYNTAX
     DBG>SET BREAK/EVENT=TOKEN

The  following  example  illustrates  the  output  from  the   program
execution after setting the above eventpoints.

     DBG>Go
     trace on event TRIGGER_MACRO
       Trigger  Macro EXPRESSION_TEST\PRINT_STMT Activated
     break on event TOKEN
       Token built: PRINT Triggerable Length:5 Line:1 Column:1
       Token text: 'print'
     DBG>Go
     trace on event SYNTAX_MACRO
       Syntax  Macro EXPRESSION_TEST\EXP Activated


Operators

Supported Operators in Language Expressions for SCAN


        Kind   Symbol   Function
       ------  ------   --------
       Prefix    +      Unary plus
       Prefix    -      Unary minus (negation)
       Infix     +      Addition
       Infix     -      Subtraction
       Infix     *      Multiplication
       Infix     /      Division
       Infix     &      Concatenation
       Infix     =      Equals
       Infix     <>     Not equals
       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


Expressions

Supported Constructs in Language and Address Expressions for SCAN


       Symbol    Construct
       ------    ---------
        ( )      Subscripting
         .       Record component selection
         ->      Pointer dereferencing


Data Types

     Supported SCAN Data Types

     BOOLEAN
     INTEGER
     POINTER
     STRING
     TREE
     TREEPTR
     RECORD
     OVERLAY

     There is no specific support for the following datatypes:   FILE,
     TOKEN,  GROUP,  SET.   Examining  a  FILL  variable  displays the
     contents of the specified  variable  displayed  as  a  string  by
     default,  and so may have little meaning.  If the characteristics
     of the fill are known, then the appropriate  qualifier  (/HEX...)
     applied to the command produces a more meaningful display.

     Examining SCAN TREE and TREEPTR variables:

          DBG>EXAMINE tree_variable( [ subscript ],...)
                             - To dump an entire SCAN tree or subtree
          DBG>EXAMINE treeptr_variable
                             - To dump the contents of a SCAN treeptr
          DBG>EXAMINE treeptr_variable->
                             - To dump an entire SCAN subtree
     DEPOSIT is not supported for SCAN TREE variables  at  this  time.
     You may set breakpoints on any SCAN label, line number, MACRO, or
     PROCEDURE.

UNKNOWN

     Debugger Support for Language UNKNOWN

Additional information available:

OperatorsExpressionsData TypesNotes

Operators

     Supported Operators in Language Expressions for UNKNOWN

        Kind   Symbol   Function
       ------  ------   --------
       Prefix    +      Unary plus
       Prefix    -      Unary minus (negation)
       Infix     +      Addition
       Infix     -      Subtraction
       Infix     *      Multiplication
       Infix     /      Division
       Infix     **     Exponentiation
       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

Expressions

Supported Constructs in Language and Address Expressions for UNKNOWN

       Symbol    Construct
       ------    ---------
        [ ]      Subscripting
        ( )      Subscripting
         .       Record component selection
         ^       Pointer dereferencing

Data Types

     Supported UNKNOWN Data Types

When the language is set to UNKNOWN, the debugger understands all data
types  accepted by other languages except a few very language-specific
types, such a picture types  and  file  types.   In  UNKNOWN  language
expressions, the debugger accepts most scalar VAX Standard data types.

Notes

For language UNKNOWN, the debugger accepts the dot-notation for record
component  selection.  If C is a component of a record B which in turn
is a component of  a  record  A,  C  can  be  referenced  as  "A.B.C".
Subscripts  can be attached to any array components; if B is an array,
for instance, C may be referenced as "A.B[2,3].C".

For language UNKNOWN, the  debugger  accepts  both  round  and  square
subscript parentheses.  Hence A[2,3] and A(2,3) are equivalent.

Lexicals

     The debugger lexical functions provide control over the  scanning
     of  language  expressions  and  offer  additional  capability  in
     specifying entities in your program.  They are logically  grouped
     here according to their purpose.

     %R0 through %R11, %AP (R12), %FP (R13), %SP (R14), %PC (R15), and
     %PSL -- used to specify the VAX registers.

     %LANGUAGE -- used to specify the current language.

     %NAME -- used to construct identifiers.

     %PARCNT -- used in command procedures to count parameters passed.

     %BIN, %DEC, %HEX, and %OCT, -- used to control radix.

     %CURLOC,  %NEXTLOC,  %PREVLOC,  %CURVAL  --   used   to   specify
     consecutive program locations and the current value of an entity.

     %LABEL and %LINE -- used  to  specify  numeric  labels  and  line
     numbers.

     %PAGE and %WIDTH -- used to specify the screen height and width.

     %CURDISP,   %CURSCROLL,   %NEXTDISP,   %NEXTINST,    %NEXTOUTPUT,
     %NEXTSCROLL,  and  %NEXTSOURCE  --  used  to  specify screen-mode
     displays.

     %SOURCE_SCOPE -- used to specify the first scope  down  the  call
     stack  for which source lines are available for display in screen
     mode.

     %ADAEXC_NAME,    %EXC_FACILITY,    %EXC_NAME,    %EXC_NUM,    and
     %EXC_SEVERITY  --  used  to provide information about the current
     exception.

     %PROCESS_NAME,  %PROCESS_PID,   %PROCESS_NUMBER,   %NEXT_PROCESS,
     %PREVIOUS_PROCESS,   and  %VISIBLE_PROCESS  --  used  to  specify
     processes in multiprocess programs.

     %ACTIVE_TASK, %CALLER_TASK, %NEXT_TASK, %TASK, and  %VISIBLE_TASK
     -- used to specify tasks in ADA tasking programs.

Additional information available:

%AP%FP%SP%PC%LANGUAGE%NAME
%PARCNT%BIN%DEC%HEX%OCT%CURLOC%NEXTLOC
%PREVLOC%CURVAL%LABEL%LINE%PAGE%WIDTH%CURDISP
%CURSCROLL%NEXTDISP%NEXTINST%NEXTOUTPUT
%NEXTSCROLL%NEXTSOURCE%SOURCE_SCOPE%PROCESS_NAME
%PROCESS_PID%PROCESS_NUMBER%NEXT_PROCESS%PREVIOUS_PROCESS
%VISIBLE_PROCESS%ADAEXC_NAME%EXC_FACILITY%EXC_NAME
%EXC_NUM%EXC_SEVERITY%ACTIVE_TASK%CALLER_TASK
%NEXT_TASK%TASK%VISIBLE_TASK

%Rn

%Rn

     %R0 through %R11 specify the VAX  general  purpose  registers  R0
     through R11.  For example:

        DBG> DEPOSIT %R1 = 23

%AP

     %AP specifies the VAX "argument pointer" register (R12).

%FP

     %FP specifies the VAX "frame pointer" register (R13).

%SP

     %SP specifies the VAX "stack pointer" register (R14).

%PC

     %PC specifies the VAX "program counter" register (R15).   The  PC
     contains  the  address  of the next instruction to be executed by
     the processor.  For example:

     DBG> EXAMINE %PC   ! Display the value contained in the PC
     MOD3\%PC:  1554    ! (the address of the next instruction to execute)

     DBG> EXAMINE .%PC !Display the value at the address contained in the PC
     MOD3\%LINE 12:    MOVL B^12(R11),R1  !(the next instruction to execute)

%LANGUAGE

     %LANGUAGE specifies the current language.  The  current  language
     is  the  language last established with the SET LANGUAGE command.
     If no SET LANGUAGE command was entered, the current language  is,
     by  default,  the  language  of  the  module  containing the main
     program (image transfer address).  For example:

        DBG> EVALUATE %LANGUAGE
        'FORTRAN'
        DBG> SET LANGUAGE ADA
        DBG> EVALUATE %LANGUAGE
        "ADA"

%NAME

     %NAME  allows  identifiers  to  be  constructed  which  are   not
     ordinarily legal in the current language.

 Format:

     %NAME id-char-string

     %NAME 'any-char-string'

 Examples:

     EX %NAME 12       ! Allows examination of variable with name '12'

     EX %NAME 'P.AAA'  ! Allows examination of generated label P.AAA

%PARCNT

     The %PARCNT symbol specifies the number of actual  parameters  to
     the  current command procedure.  For example, suppose the command
     file ABC is invoked with the command  @ABC  111,222,333.   Inside
     ABC,  %PARCNT  then  has  the  value  3  because  there are three
     parameters on this particular call to ABC.  %PARCNT  is  used  in
     command  procedures  that  can  take  a variable number of actual
     parameters.  %PARCNT can only be used inside command files; it is
     not defined when commands are entered from the terminal.

 Sample Format:

     EVAL %PARCNT
     FOR I = 1 TO %PARCNT DO (DECLARE X:VALUE; EVAL X)

%BIN

     Specifies that the following  numeric  literal  (or  all  numeric
     literals   in   the   following   parenthesized   expression)  be
     interpreted in binary radix.

 Sample Format:

     DBG> EVALUATE/DEC %BIN 10
      2
     DBG> EVALUATE/DEC %BIN (10 + 10)
      4

%DEC

     Specifies that the following  numeric  literal  (or  all  numeric
     literals   in   the   following   parenthesized   expression)  be
     interpreted in decimal radix.

 Sample Format:

     DBG> EVALUATE/HEX %DEC 10
      0A
     DBG> EVALUATE/HEX %DEC (10 + 10)
      14

%HEX

     Specifies that the following  numeric  literal  (or  all  numeric
     literals   in   the   following   parenthesized   expression)  be
     interpreted in hexadecimal radix.

 Sample Format:

     DBG> EVALUATE/DEC %HEX 10
      16
     DBG> EVALUATE/DEC %HEX (10 + 10)
      32

%OCT

     Specifies that the following  numeric  literal  (or  all  numeric
     literals   in   the   following   parenthesized   expression)  be
     interpreted in octal radix.

 Sample Format:

     DBG> EVALUATE/DEC %OCT 10
      8
     DBG> EVALUATE/DEC %OCT (10 + 10)
      16

%CURLOC

     Specifies the current logical entity  --  that  is,  the  program
     location  last  referenced by an EXAMINE or DEPOSIT command.  The
     period character "." can also be used for this purpose.

 Sample Format:

     DBG> EXAMINE RADIUS
     CIRCLE\RADIUS:  0.0000000E+00
     DBG> DEPOSIT %CURLOC = 1      ! Set RADIUS to 1
     DBG> DEPOSIT . = 2            ! Set RADIUS to 2

%NEXTLOC

     Specifies the logical successor of the current entity -- that is,
     the  program  location  that  logically follows the location last
     referenced by an EXAMINE  or  DEPOSIT  command.   Note  that  the
     EXAMINE  command  without  a  parameter  is equivalent to EXAMINE
     %NEXTLOC.

 Sample Format:

     DBG> EXAMINE PRIMES(4)
     SIEVE\PRIMES(4):  7
     DBG> EXAMINE %NEXTLOC
     SIEVE\PRIMES(5):  11
     DBG> EXAMINE            ! Equivalent to EXAMINE %NEXTLOC
     SIEVE\PRIMES(6):  13

%PREVLOC

     Specifies the logical predecessor of the current entity  --  That
     is,  the  program  location  that logically precedes the location
     last referenced by an EXAMINE or DEPOSIT command.  The circumflex
     character "^" can also be used for this purpose.

 Sample Format:

     DBG> EXAMINE PRIMES(6)
     SIEVE\PRIMES(6):  13
     DBG> EXAMINE %PREVLOC
     SIEVE\PRIMES(5):  11
     DBG> EXAMINE ^
     SIEVE\PRIMES(4):  7

%CURVAL

     Specifies the value last displayed  by  an  EVALUATE  or  EXAMINE
     command,  or  deposited  by  a  DEPOSIT  command.   The backslash
     character "\" can also be used for this purpose.

 Sample Format:

     DBG> EXAMINE RADIUS
     CIRCLE\RADIUS:  0.0000000E+00
     DBG> EVALUATE %CURVAL
     0.0000000E+00

%LABEL

     "%LABEL n" is the debugger syntax for referring  to  label  n  in
     your  program.  This is intended for languages like FORTRAN which
     have numeric program labels.  You can qualify the  label  with  a
     pathname specifying the containing module.  For example:

     SET BREAK MODULENAME\%LABEL 10

     The "old" syntax of "%LABEL MODULENAME\10" is no longer accepted.

%LINE

     "%LINE n" is the debugger syntax for referring to line n in  your
     program.   You  can  qualify  the  line  number  with  a pathname
     specifying the containing module.  For example:

     SET BREAK MODULENAME\%LINE 10

     The "old" syntax of "%LINE MODULENAME\10" is no longer accepted.

%PAGE

     Specifies the current height of the screen, in lines, as used  by
     the  debbuger.   For  example,  the  following  command defines a
     screen mode window named MIDDLE that occupies a region around the
     middle of the screen:

     DBG> SET WINDOW MIDDLE AT (%PAGE/4,%PAGE/2,%WIDTH/4,%WIDTH/2)

%WIDTH

     Specifies the current width of the screen, in columns, as used by
     the  debugger.   For  example,  the  following  command defines a
     screen mode window named MIDDLE that occupies a region around the
     middle of the screen:

     DBG> SET WINDOW MIDDLE AT (%PAGE/4,%PAGE/2,%WIDTH/4,%WIDTH/2)

%CURDISP

     Specifies the current display (screen mode).  This is the display
     most  recently referenced with a DISPLAY or SET DISPLAY command--
     the least occluded display.  For example:

        DBG> SELECT/SCROLL %CURDISP

%CURSCROLL

     Specifies the current (screen mode) scrolling display.   This  is
     the default display for the SCROLL, MOVE, and EXPAND commands, as
     well as for the associated keypad keys (2, 4,  6,  and  8).   For
     example:

        DBG> EXPAND/DOWN:5 %CURSCROLL

%NEXTDISP

     Specifies the next display  after  the  current  display  in  the
     screen-mode  display  list.  The next display is the display that
     follows  the  topmost  display.   Because  the  display  list  is
     circular,   this   is   the   display   at   the  bottom  of  the
     pasteboard--the most occluded display.  For example:

        DBG> DISPLAY/POP %NEXTDISP

%NEXTINST

     Specifies  the  next  instruction  display  after   the   current
     instruction display in the screen-mode display list.  The current
     instruction display is the display that receives the output  from
     EXAMINE/INSTRUCTION commands.  For example:

        DBG> DISPLAY/REMOVE %NEXTINST

%NEXTOUTPUT

     Specifies the  next  output  display  after  the  current  output
     display  in  the  screen-mode  display  list.   An output display
     receives debugger output that is not already directed to  another
     display.  For example:

        DBG> EXTRACT %NEXTOUTPUT OUT4.TXT

%NEXTSCROLL

     Specifies the next display after the current scrolling display in
     the screen-mode display list.  For example:

        DBG> SELECT/SCROLL %NEXTSCROLL

%NEXTSOURCE

     Specifies the  next  source  display  after  the  current  source
     display  in  the  screen-mode  display  list.  The current source
     display is the display which receives the output  from  TYPE  and
     EXAMINE/SOURCE commands.  For example:

        DBG> SELECT/SOURCE %NEXTSOURCE

%SOURCE_SCOPE

     Specifies the first scope down the call stack  for  which  source
     lines  are  available for display in screen mode.  This symbol is
     used in the  definition  of  the  predefined  screen-mode  source
     display SRC:

     DBG> SET DISPLAY SRC AT H1 SOURCE (EXAMINE/SOURCE .%SOURCE_SCOPE\%PC)

%PROCESS_NAME

     Note:  Applies to a multiprocess  debugging  configuration  (when
     DBG$PROCESS has the value MULTIPROCESS).

     When specifying a VMS process name in a debugger command  string,
     you   can   optionally   precede   the   name   with  the  symbol
     %PROCESS_NAME.  For example:

        DBG_2> EXIT %PROCESS_NAME JONES_4

     Type HELP Multiprocess Specifying_Processes for more information.

%PROCESS_PID

     Note:  Applies to a multiprocess  debugging  configuration  (when
     DBG$PROCESS has the value MULTIPROCESS).

     When specifying a VMS process identification number  (PID)  in  a
     debugger command string, you must precede the PID with the symbol
     %PROCESS_PID.  For example:

        DBG_2> CONNECT %PROCESS_PID 258001B6

     Type HELP Multiprocess Specifying_Processes for more information.

%PROCESS_NUMBER

     Note:  Applies to a multiprocess  debugging  configuration  (when
     DBG$PROCESS has the value MULTIPROCESS).

     When specifying a debugger-assigned process number in a  debugger
     command  string,  you  must  precede  the  number with the symbol
     %PROCESS_NUMBER (or the abbreviation %PROC).  For example:

        DBG_2> SHOW PROCESS %PROC 3

     Type HELP Multiprocess Specifying_Processes for more information.

%NEXT_PROCESS

     Note:  Applies to a multiprocess  debugging  configuration  (when
     DBG$PROCESS has the value MULTIPROCESS).

     %NEXT_PROCESS  specifies  the  next  process  in  the  debugger's
     process list after the visible process.  For example:

        DBG_3> SET PROCESS/HOLD %NEXT_PROCESS

     Type HELP Multiprocess Specifying_Processes for more information.

%PREVIOUS_PROCESS

     Note:  Applies to a multiprocess  debugging  configuration  (when
     DBG$PROCESS has the value MULTIPROCESS).

     %PREVIOUS_PROCESS  specifies  the   previous   process   in   the
     debugger's process list before the visible process.  For example:

        DBG_3> SHOW PROCESS/FULL %PREVIOUS_PROCESS

     Type HELP Multiprocess Specifying_Processes for more information.

%VISIBLE_PROCESS

     Note:  Applies to a multiprocess  debugging  configuration  (when
     DBG$PROCESS  has the value MULTIPROCESS).  Type HELP Multiprocess
     Specifying_Processes for more information.

     %VISIBLE_PROCESS specifies the  visible  process.   This  is  the
     process  whose  stack,  register  set, and images are the current
     context for looking up symbols, register values,  routine  calls,
     breakpoints, and so on.  For example:

        DBG_2> DO/PROCESS=(%VISIBLE_PROCESS,%NEXT_PROCESS) (EXAMINE X)

     Type HELP Multiprocess Specifying_Processes for more information.

%ADAEXC_NAME

     "%ADAEXC_NAME is a special form of %EXC_NAME  for  ADA  programs.
     In  ADA,  an  exception  can be raised with syntax such as "raise
     XXX;".  In this case, the exception name in the VMS sense is just
     "EXCEPTION",  and  that  is  what  %EXC_NAME  returns.   The  ADA
     exception name ("XXX") is returned by %ADAEXC_NAME.

     Example:

     DBG> SET BREAK/EXCEPTION WHEN (%ADAEXC_NAME = "XXX")


%EXC_FACILITY

     "%EXC_FACILITY" gives you the facility of the current  exception.
     This provides a way of qualifying exception breaks.

     Example:
     DBG> EVAL %EXC_FACILITY
     "SYSTEM"
     DBG> SET BREAK/EXC WHEN (%EXC_FAC = "SYSTEM")

%EXC_NAME

     "%EXC_NAME" gives you the name of the  current  exception.   This
     provides a way of qualifying exception breaks.

     Example:
     DBG> EVAL %EXC_NAME
     "FLTDIV_F"
     DBG> SET BREAK/EXC WHEN (%EXC_NAME = "FLTDIV_F")

%EXC_NUM

     "%EXC_NUM" gives you the current exception number.  This provides
     a way of qualifying exception breaks.

     Example:
     DBG> EVAL %EXC_NUM
     12
     DBG> EVAL/COND %EXC_NUM
     %SYSTEM-F-ACCVIO, access violation at PC !XL, virtual address !XL
     DBG> SET BREAK/EXC WHEN (%EXC_NUM = 12)

%EXC_SEVERITY

     "%EXC_SEVERITY" gives  you  the  severity  code  of  the  current
     exception.  This provides a way of qualifying exception breaks.

     Example:
     DBG> EVAL %EXC_SEVERITY
     "F"
     DBG> SET BREAK/EXC WHEN (%EXC_SEV = "F")

%ACTIVE_TASK

     Note:  Applies only to ADA tasking programs.

     "%ACTIVE_TASK" gives you the currently active task (the one  that
     was  running  when  the  debugger  last  took  control).  See the
     command "SET TASK/ACTIVE".

     Example:
     DBG> EVALUATE %ACTIVE_TASK
     %TASK 2

%CALLER_TASK

     Note:  Applies only to ADA tasking programs.

     "%CALLER_TASK" gives you the task which is the  entry  caller  of
     the active task during a task rendezvous.

     If the active task (%ACTIVE_TASK) is not currently  executing  an
     accept  statement  (that  is,  a  rendezvous is not in progress),
     %CALLER_TASK returns %TASK 0.

     Example:

     The  following  command  sets  a  breakpoint  within  an   accept
     statement.   The breakpoint is triggered only when %TASK 3 is the
     task making the entry call of the rendezvous.

     DBG> TYPE 51:53
     module SAMPLE
         51:         accept RENDEZVOUS do
         52:            PUT_LINE("Beginning the rendezvous");
         53:         end RENDEZVOUS;
     DBG> SET BREAK %LINE 52 WHEN (%CALLER_TASK = %TASK 3)

%NEXT_TASK

     Note:  Applies only to ADA tasking programs.

     "%NEXT_TASK" gives you the "next" task  after  the  one  that  is
     currently  visible  (%VISIBLE_TASK).   "Next"  in this context is
     just an internal ordering that  cycles  through  all  the  tasks.
     This  lets  you  set up command procedures that cycle through all
     tasks.

     Example:
     DBG> WHILE %NEXT NEQ %ACTIVE DO -
            (SET TASK %NEXT; SHOW CALLS)

%TASK

     Note:  Applies only to ADA tasking programs.

     "%TASK n" (where "n"  is  a  positive  decimal  integer)  is  the
     debugger syntax for referring to an ADA task by its task ID.  The
     task ID is a unique number that is associated with a task at  the
     time  the  task  is created.  The task number "n" can be obtained
     using the "SHOW  TASK/ALL"  command  or  by  examining  ADA  task
     objects.

     Example:
     DBG> EXAMINE T1
     T1: %TASK 2
     DBG> SET TASK %TASK 2

%VISIBLE_TASK

     Note:  Applies only to ADA tasking programs.

     "%VISIBLE_TASK" gives you the task that the debugger is using  to
     do  symbol  lookups.  It is the default task assumed by debugging
     commands when you  do  not  (or  cannot)  specify  a  task.   For
     example,  the debugger command EXAMINE %R0 displays register 0 of
     the visible task.

     This is normally the same as  %ACTIVE_TASK  but  can  be  changed
     using the SET TASK command.

     Example:
     DBG> SET TASK %TASK 2
     DBG> EVALUATE %VISIBLE
     %TASK 2

Logical Names

Additional information available:

DBG$INITDBG$INPUTDBG$OUTPUTDBG$PROCESS

DBG$INIT

     If the logical name  DBG$INIT  is  defined  at  the  start  of  a
     debugging session, then the file that it translates to is used as
     an initialization file.  The commands in the file are executed as
     if  the  file  had  been  called  with  the @ (execute procedure)
     command.  This is useful if there is a particular set of commands
     that  you  always  execute  when  you  start up the debugger, for
     example to specify a source directory search list, enable  screen
     mode, log the session.

     Example:

        $ CREATE DEBUG.COM
        SET SOURCE [],SRC$
        SET MODE SCREEN
        SET STEP SILENT
        $ DEFINE DBG$INIT [JONES.CMD]DEBUG_INIT.COM

DBG$INPUT

     The value of the logical name DBG$INPUT determines  the  debugger
     input device.  By default, this is SYS$INPUT.

DBG$OUTPUT

     The value of the logical name DBG$OUTPUT determines the  debugger
     output device.  By default, this is SYS$OUTPUT.

DBG$PROCESS

     The  value  of  the  logical  name  DBG$PROCESS  determines   the
     debugging configuration as follows:

        DBG$PROCESS:              Configuration:
          Undefined or DEFAULT      Default
          MULTIPROCESS              Multiprocess

     Use the default configuration to debug programs that normally run
     (without the debugger) in only one process.  Use the multiprocess
     configuration to debug programs that normally run  in  more  than
     one process.

     When defining DBG$PROCESS for a multiprocess configuration,  make
     the  definition  job  wide.  This ensures that any processes that
     are in the same job tree  as  the  program  being  debugged  (for
     example, processes spawned by the program) can be controlled from
     the same debugging session.

     Type HELP Debugging_Configurations and HELP Multiprocess for more
     information

Additional information available:

Examples

Examples

     1  $ DEFINE/JOB DBG$PROCESS MULTIPROCESS
        $ RUN PROG1
           ...
        DBG_1>

     In  this  example,  the  DEFINE/JOB   command   establishes   the
     multiprocess  debugging  configuration.   This is demonstrated by
     the process-specific prompt  suffix,  "_1",  which  is  displayed
     initially when the debugger is invoked with the RUN command.  The
     prompt suffix indicates that execution is suspended in process 1,
     the  first  process  that  was  brought  under  debugger control.
     Process 1 is currently the visible process  --  the  context  for
     executing  process-specific  commands  like STEP, EXAMINE, and so
     on.

     2  $ DEFINE DBG$PROCESS DEFAULT
        $ RUN PROG1
         ...
        DBG>

     In this example,  the  DEFINE  command  establishes  the  default
     debugging  configuration.   This  is  demonstrated  by  the  DBG>
     prompt, which is displayed when the debugger is invoked with  the
     RUN command.

Messages

     This section contains information on the messages you may see.

 Format:

     MESSAGE keyword

     where "keyword" is the abbreviation (IDENT) of the message.   For
     example, if you received the message

          %DEBUG-I-INITIAL, language is BASIC, module set to TEST

     and wanted to know more about it, you could enter the command

          DBG> HELP MESSAGE INITIAL

     and you would see information about the INITIAL message.

Additional information available:

ABORTEDABSDATSYNACCADDCOMACTIVATING
ADDRANCOVADDRESSMODEADDRREGALLOBNDSAMBFIELD
AMBIGQUALAMPERSANDASTWASDISABLEDASTWASENABLED
ATTACHEDATTREQREFBADDESCRBADDISCVALBADDST
BADEVNPARBADEXHBADFRAMEBADHANDLEBADOPCODE
BADPARAMBADSCOPEBADSIGARGBADSTACKBADSTARTPC
BADSTATUSBADTAGVALBADTARGETBADUSREVNT
BADWATCHBASVARNOTSETBITRANGEBUFFEROVF
BWLGISMUSCANTACCESSMAINCANTCREATEMAINCANTGETFID
CANTINTPROCANTOPNIMGCIREXLSTCMDNOTONE
CMDSYNERRCMPNOTFNDCONFLICTCONFROMEXC
CONSTRCOMPCPOSTDECRCPOSTINCRCPREDECR
CPREINCRCRMPSCFAILCVTNEGUNSDBGERRDBGSTOPPED
DECLARERRDECOVFDECROPRANDDEFKEYDEFKEYERR
DELBREAKDELKEYDELKEYERRDELTIMTOODELTRACE
DESCNOTSETDISABLEASTDISNOTSELDISPEXISTS
DISPRLENSIZDIVBYZERODSTERRGDSTNESDEP
DYNIMGSETDYNMODSETEDITDISVEREDITERROR
EDITFILEEDITNOFILEEDITREVVERENABLEAST
ENTRYMASKENUMRANGEERRACTIMGERRASSIGN
ERRCLSFILEERRCRELNMERRDEASSIGNERRFAO
ERRGETDVIERRGETEFERRINSDECERRINVEDIT
ERRORERRORLIMITERROR_BLOCKERRQIOWERRSMG
ERRSYSSERVERRUSREVNTEXARANGEEXCBREREP
EXCDURCALEXITARGEXITERREXITSTATUSEXPMEMPOOL
FILEUNALFLTOVFGETJPIHEIGHTDIFFIDENTLONG
IFIXUNDIFLTUNDIINTOVFILLADDCONILLASTERILLDEFNAM
ILLENUMVALILLEVNSTRILLFILPTRILLFLOATILLLENGTHILLOFFSET
ILLPACSIZILLPATH1ILLPATH2ILLPATHELEMILLPOSFLDILLQUALIF
ILLRANGEILLSETCONILLSIGEXTILLSIZFLDILLSUBLENILLSUBSTRILLTYPE
INCDSTNESINCOMPOPRINCOMPPTRINCOMQUAL
INCOMTARGETINCOMVERSIONINDBASEQLINITIAL
INPREADERRINSVIRMEMINTERRINTERRUPTED
INTMEMERRINTOVFINUMTRUNCINVADDRTKN
INVARGLISINVARRDIMINVARRDSCINVAVSCODE
INVCHARINVCHRCONINVDESCINVDIGBININVDIGDECINVDIGHEX
INVDIGOCTINVDIRNAMINVDMTPTRINVDSPSIZ
INVDSTRECINVDSTTYPCODEINVEXPRINVFIXDSTINVFLDREF
INVGSTRECINVGSTTYPINVINDIRECTINVLANGCODE
INVLENGTHINVMARINVNOSPECTKNINVNUMBER
INVNUMSRCINVNUMSTRINVOPADDRINVOPSYM
INVPAGEINVPRCSYNINVPRIORINVRANSPECINVSELDIS
INVSRCLININVTIMSLIINVTSCODEINVVALTKNINVWIDTH
INVWINPARIRFAOVFISTRTRUITMNOTAVAITMTRUNC
IVALOUTBNDSIVPRCLOGKERFUNCNYILASTCHANCE
LINEINFOLONGSTRINGLOOPINCRLOOPVARLOWBNDOPT
MATQUOMISMAXSTRLENMISCLOSUBMISINVNUM
MISINVOPERMISMODBEGMISMODENDMISOPEMIS
MODUSCOPEMPARENREQMPCOMMANDNAMSTRMIS
NAMTOOLONGNEEDMORENEEDPARENNOACCESSR
NOACCESSWNOADDRREGNOALTERSPNOATTACH
NOBREAGGRNOBREAKATNOBREAKSNOCALLSNOCANMAIN
NOCLINOCONNECTNOCURLOCNODELIMTRNODEPDEBUG
NODIRLISMNODIRLISTNOELABBODYNOELABSPECNOEND
NOEPTSPECNOEVALEXPRNOEVENTFACNOEXCBRE
NOEXHNDNOFIELDNOFREENOGLOBALSNOINPAVAIL
NOINSTRANNOKEYDEFNOKEYPADNOLASTVALNOLINXXX
NOLISTNOLOCALSNOMARKCHNGNOMATCHNOMORENONEXPR
NONEXPRCNONUMSCOPENONXTLINNOOCCLDISPNOOUTAVAIL
NOPACKMEMBODYNOPACKMEMSPECNOPREDNOPROMPT
NORECSYMNORMALNORSTBLDNOSAVPROGNOSCOPENOSCRDEV
NOSCRMODENOSCROLLNOSCROLLDISPNOSETTERM
NOSPAWNNOSPAWNINOSRCHSTRNOSRCLINNOSTEPGONOSUCC
NOSUCHBPTNOSUCHDISPNOSUCHELPNOSUCHIMG
NOSUCHMODUNOSUCHPACKNOSUCHSCOPENOSUCHTASK
NOSUCHTPTNOSUCHWINDNOSUCHWPTNOSYMBOL
NOSYMBOLRNOTADAPROGNOTALIGNEDNOTARRAY
NOTASTRUCTNOTATMAINNOTCURPCNOTDEFINE
NOTIMPLANNOTINLOOPNOTINSTNOTORIGSRC
NOTPTRNOTRACESNOTRAZERONOTRECORDNOTREE
NOTTASKVALNOTUNQOVRNOTUPDATENOTYPEINFO
NOUNIQUENOUNIVERSALSNOUSREVNTNOVALATPC
NOVALTYPNOVALUENOWATCHESNOWATTARNOWATVARIA
NOWATVARSTGNOWBPTNOWILDNOWILDFILNOWOPCONOWPROT
NULLPTRNUMCONLONGNUMTRUNCOBJECTINV
OBJPTRINVOBJTYPMISOBSOLETE_1OPCDEC
OPNOTALLOWOPSYNTAXOUTPUTLOSTPACSIZREQPARENREQ
PARSTKOVRPATHNOTACPPATHTLONGPATHTOOLONG
PCNOTALLPLICVTERRPREDEPTNOTPROFRANOT
PROMPTCLENPROMPTOCCLPROMPTRLENPROVRFLOW
PXCNQUALREQQUOSTRLONGREADERRREFUSEDREGREQ
RENAMENOTRESUMERRRETURNEDRNDFCTROUTROPRANDF
RPCDBBDTRPCERRRPCINVDSCRPCOVFRPCUNFRPCUNKARG
RSTERRSCALEADDSCALESUBSCRTOBIGSCRTOSMALLSETKEY
SETKEYERRSETMODUSETSCOMODSFCNTNEGSHOKEYERR
SHRPRCSIDEFFECTSIGVECTRUNCSIZEATOMICSIZETRUNC
SOURCESCOPESPAWNEDSRCLINNOTSS_INTSTEPINTO
STGTRUNCSTRNGPADSTRTOOLONGSTRUCSIZESUBOUTBND
SUBSCRNGSUBSTRINGSUBUNITCANSUBUNITNOTCANSUBUNITNOTSET
SUBUNITSETSUPERDEBUGSYMNOTACTSYMNOTFND
SYNERREXPRSYNERRLABELSYNERRLINESYNTAX
TASKERRORTASKNOTABORTTASKNOTACTTASKNULL
TERMINATINGTERMTKNREQTIMESLICETOOFEWSUB
TOOMANDIMTOOMANERRTOOMANINVTOOMANPARM
TOOMANSUBTRYINGONEPRCUNACREDBGOUNACVT
UNALIGNEDUNALLOCATEDUNAOPEDBGIUNAOPESCR
UNAOPNHLPUNAOPNINIUNAOPNSRCUNAREASRC
UNASAVVALUNASETIMGUNASETTASUNASWISTA
UNBPARENUNDEXPNUNDKEYUNIMPLENTUNMTCHPARN
UPBNDOPTUSREVNTERRVALNOTADDRVARNESDEP
VERIFYICFVERSIONNUMWATCHSIZEWATNOWCAN
WATNOWWATWATVARGSGONEWATVARGSOVRWATVARNOWGBL
WATVARPROTWATVARPTRWATVARREMAPWATVARSCP
WIDTHDIFFWITHCANWITHNOTCANWITHNOTSET
WITHSETWORKSTACMDWPTTRACEWRITE_FAILED
WRITE_INTO_KERNELWRITE_INTO_KERNEL_STACKZERLENDST
ZEROINCR

Parameters

Parameters

 keyword

     Specifies the message to be displayed.

ABORTED

 Message:  command aborted by user request

 Severity:  Warning

ABSDATSYN

 Message:  absolute date-time syntax error

 Severity:  Warning

ACCADDCOM

 Message:  access violation in address computation for address_value

 Severity:  Warning The address computation for the specified variable
     resulted  in  an  access  violation.   This normally means that a
     register value or a descriptor needed in the address  computation
     is uninitialized or corrupted.

 User Action:  If the necessary register  or  descriptor  is  not  yet
     initialized,  the  variable is not available at this point in the
     code.  If the register or descriptor is corrupted, the  cause  of
     this error should be located and corrected.

ACTIVATING

 Message:  process-specification is activating

 Severity:  Informational 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.

ADDRANCOV

 Message:  address range covers more than one module address_value  is
     in path_name address_value is in path_name

 Severity:  Warning The address range specified  in  a  DEBUG  command
     EXAMINE/SOURCE  covers  more  than  a single module.  This 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.

ADDRESSMODE

 Message:  instruction uses illegal or undefined addressing modes

 Severity:  Informational

ADDRREG

 Message:  & not allowed on  register  variables:   operand  bound  to
     register_name

 Severity:  Warning

ALLOBNDS

 Message:  must allocate at least 1000 bytes

 Severity:  Warning

AMBFIELD

 Message:  field_name is an ambiguous field name

 Severity:  Warning

AMBIGQUAL

 Message:  qualifier qualifier_name is ambiguous

 Severity:  Warning

AMPERSAND

 Message:  operand of ampersand must be lvalue

 Severity:  Warning

ASTWASDISABLED

 Message:  ASTs were disabled, are still disabled

 Severity:  Informational

ASTWASENABLED

 Message:  ASTs were enabled, are still enabled

 Severity:  Informational

ATTACHED

 Message:  terminal now attached to process process_name

 Severity:  Informational

ATTREQREF

 Message:  attach request refused

 Severity:  Error The specified process  could  not  be  attached  to.
     Either  it  was not detached or it did not belong to the caller's
     job.

 User Action:  Ensure that  the  specified  process  is  detached  and
     belongs to the caller's job.

BADDESCR

 Message:  descriptor for 'symbol_name' is bad or is not set up yet

 Severity:  Warning

BADDISCVAL

 Message:   incorrect  value  of  tag_value  in   discriminant   field
     tag_name.

 Severity:  Informational

BADDST

 Message:  bad Debug Symbol Table (compiler error)

 Severity:  Error

BADEVNPAR

 Message:  parameter does not have permitted data type for this event

 Severity:  Error

BADEXH

 Message:  the user-mode exit handler list is corrupt

 Severity:  Error While walking the list of user-mode  exit  handlers,
     DEBUG  detected  a  forward link which pointed to an inaccessible
     exit control block.

 User Action:  Check for a call to the SYS$DCLEXH system service  that
     specifies  an  illegal  exit control block argument.  Also verify
     that exit control blocks are not getting corrupted later  in  the
     program.

BADFRAME

 Message:  bad FP or bad saved FP at pointer-addr in call stack, can't
     read frame near frame-addr

 Severity:  Informational DEBUG is attempting to chain down  the  call
     stack,   following   frame   pointers.    The   FP  register  (if
     pointer-addris "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.

 User Action:  Determine what part of your code is writing into the FP
     register or overwriting the saved frame pointer on the call stack
     (or a preceding saved frame pointer) and correct it.  Since DEBUG
     looks  at the call stack to symbolize addresses, you may suppress
     some  of  these  messages  by  typing  the  command   "SET   MODE
     NOSYMBOLIC".

BADHANDLE

 Message:  non-existent object handle passed to routine

 Severity:  Error

 User Action:  You should never see this message.  Submit  a  Software
     Performance Report (SPR)

BADOPCODE

 Message:  opcode opcode_name is unknown

 Severity:  Error The opcode  opcode_name  specified  in  the  deposit
     command is unknown to the debugger.  If the opcode is a valid VAX
     MACRO opcode, then it  will  have  a  synonymous  opcode.   These
     opcodes,  such as MOVAF and MOVAL, generate the same instruction.
     The debugger recognizes only one of them.

 User Action:  Specify a valid opcode or  specify  an  opcode  synonym
     that the debugger accepts.

BADPARAM

 Message:  bad parameter value

 Severity:  Error This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

BADSCOPE

 Message:  invalid pathname path_name, SCOPE not changed

 Severity:  Error The scope  path_name  specified  in  the  SET  SCOPE
     command contained a pathname that does not exist.

 User Action:  Specify a valid scope.

BADSIGARG

 Message:  bad sigarg pointer at pointer-addr or  bad  sigarg  vector,
     can't read sigarg vector near sigarg-addr

 Severity:  Informational DEBUG is attempting to chain down  the  call
     stack, following frame pointers, and has encountered an exception
     handler.    The   signal    argument    pointer    at    location
     pointer-addrpoints  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 part of the
     signal argument vector itself, and correct it.  Since DEBUG looks
     at  the  call stack to symbolize addresses, you may suppress some
     of these messages by typing the command "SET MODE NOSYMBOLIC".

BADSTACK

 Message:  stack corrupted - no further data available

 Severity:  Warning While displaying part of the call stack, DEBUG has
     determined  that  the  stack  is  corrupted  and  cannot continue
     executing the command.

 User Action:  See the secondary message for more information.

BADSTARTPC

 Message:  cannot access start PC = address_value

 Severity:  Error 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  an
     instruction at location 0, which is not accessible.

 User Action:  Specify a different address  specification  in  the  GO
     command  or, if the program has terminated, you can exit from the
     debugger and initiate the program with the DCL command RUN.

BADSTATUS

 Message:  bad status returned from routine-name

 Severity:  Error DEBUG 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 to your
     program's behavior.  If so, then  take  corrective  action.   If,
     after  this  evaluation, you believe that the problem lies in VAX
     DEBUG, then submit a Software Performance Report.

BADTAGVAL

 Message:  incorrect value of tag_value in tag field tag_name.

 Severity:  Informational

BADTARGET

 Message:  target location protected, cannot perform deposit

 Severity:  Warning The target address of the DEPOSIT  command  cannot
     be made writeable.  The DEPOSIT command cannot be performed.

 User Action:  None.

BADUSREVNT

 Message:  bad user-specified event table or event entry in user RTL

 Severity:  Error

BADWATCH

 Message:  cannot watch protect address address_value

 Severity:  Error 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.

 User Action:  Do not use watchpoint on this address.

BASVARNOTSET

 Message:  base variable not set up yet

 Severity:  Warning

BITRANGE

 Message:  bit range out of limits

 Severity:  Error 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.

BUFFEROVF

 Message:  buffer overflow

 Severity:  Error This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

BWLGISMUS

 Message:  B, W, L, G,  I,  or  S  must  precede  For  operand  number
     operand_number

 Severity:  Error

CANTACCESSMAIN

 Message:  cannot access the main debugger

 Severity:  Fatal The kernel debugger (DEBUG.EXE)  cannot  access  the
     main debugger (DEBUGSHR.EXE).  The reason is given in the message
     following this message.

 User Action:  Correct the problem given  by  the  messages  following
     this message.  If the problem cannot be solved, submit a Software
     Performance Report.

CANTCREATEMAIN

 Message:  could not create the VAX DEBUG subprocess

 Severity:   Fatal  An  error  occurred  while  trying  to  create   a
     subprocess to run the main debugger image SYS$SHARE:DEBUGSHR.EXE.
     The reason is given in the message following this message.

 User Action:  Correct the problem given  by  the  messages  following
     this message.  If the problem cannot be solved, submit a Software
     Performance Report.

CANTGETFID

 Message:  cannot  get  file-id  for  image  file  opened  on  channel
     channel-number

 Severity:  Fatal An error occurred while trying to get the file-id of
     the  image  file opened on channel channel-number.  The reason is
     given in the message following this message.

 User Action:  Correct the problem given  by  the  messages  following
     this message.  If the problem cannot be solved, submit a Software
     Performance Report.

CANTINTPRO

 Message:  cannot interrupt process !AC

 Severity:  Informational Vax DEBUG could not interrupt the  specified
     process  because  it was deleted.  This message usually indicates
     that the specified process terminated abnormally  --  either  via
     the DCL STOP command or via a call to $DELPRC.

CANTOPNIMG

 Message:      cannot      open      image      image_name      (File:
     device_name:(file_id,file_id,file_id))

 Severity:  Informational

CIREXLST

 Message:  command  aborted  after  number_of_handlers  exit  handlers
     displayed circular exit handler list suspected

 Severity:   Error  After  displaying  information  about   100   exit
     handlers, VAX DEBUG suspects a circular exit handler list.

 User Action:  If there is a circular exit handler list, then identify
     and correct the error in the user program.

CMDNOTONE

 Message:  The !AC command is not allowed in the one process debugger

 Severity:  Error The specified command  may  not  be  used  with  the
     single process debugger.

CMDSYNERR

 Message:  command syntax error at or near 'DEBUG_command_segment'

 Severity:  Warning

CMPNOTFND

 Message:  specified component not found in this type

 Severity:  Warning

CONFLICT

 Message:   illegal  combination   of   command   elements   -   check
     documentation

 Severity:  Warning Command line elements conflict in their
          operations.  The command will not be performed.

 User Action:  Do not specify conflicting command line elements.

CONFROMEXC

 Message:  warning:  you are continuing from a severe error

 Severity:  Informational

CONSTRCOMP

 Message:  illegal deposit to a constrained record component

 Severity:  Error

CPOSTDECR

 Message:  side effect on post-decrement operation not performed

 Severity:  Informational

CPOSTINCR

 Message:  side effect on post-increment operation not performed

 Severity:  Informational

CPREDECR

 Message:  side effect on pre-decrement operation not performed

 Severity:  Informational

CPREINCR

 Message:  side effect on pre-increment operation not performed

 Severity:  Informational

CRMPSCFAIL

 Message:  failed to map-in DEBUG Symbol Table (DST)

 Severity:  Informational

CVTNEGUNS

 Message:  cannot convert negative value to unsigned value at or  near
     opcode_name

 Severity:  Warning

DBGERR

 Message:  internal DEBUG coding error.

 Severity:  Error An internal debugger error has been encountered.

 User Action:   If  the  error  is  reproducible,  submit  a  Software
     Performance  Report  and, if possible, enclose both a copy of the
     program being  debugged  and  a  logged  debugging  session  that
     reproduces the error.

DBGSTOPPED

 Message:  a VAX Debug process from a previous debugging  session  has
     been terminated

 Severity:  Warning While attempting to create a process  to  run  the
     debugger,  a  debug process from a previous debugging session was
     found and terminated.

 User Action:  Under normal circumstances, the VAX DEBUG process  will
     exit when a debugging session ends via the EXIT or QUIT 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)

DECLARERR

 Message:  too many declarations, parameter_name ignored

 Severity:  Warning

DECOVF

 Message:  decimal overflow at or near opcode_name

 Severity:  Error

DECROPRAND

 Message:  illegal packed or decimal string  value  (Reserved  Operand
     fault occurred during conversion)

 Severity:  Error

DEFKEY

 Message:  state_name key key_name has been defined

 Severity:  Informational

DEFKEYERR

 Message:  error in processing DEFINE/KEY command:

 Severity:  Warning

DELBREAK

 Message:  deleting breakpoint at address_value

 Severity:  Informational

DELKEY

 Message:  state_name key key_name has been deleted

 Severity:  Informational

DELKEYERR

 Message:  error in processing DELETE/KEY command:

 Severity:  Warning

DELTIMTOO

 Message:  delta time too large

 Severity:  Error

DELTRACE

 Message:  deleting tracepoint at address_value

 Severity:  Informational

DESCNOTSET

 Message:  descriptor not set up yet

 Severity:  Warning

DISABLEAST

 Message:  ASTs were enabled, are now disabled

 Severity:  Informational

DISNOTSEL

 Message:  display not selected because removed from screen

 Severity:  Error

DISPEXISTS

 Message:  display_name display already exists; cannot  be  set  until
     canceled

 Severity:  Error

DISPRLENSIZ

 Message:  length of display_name display cannot exceed  maximum  size
     increase /SIZE or specify fewer lines

 Severity:  Error

DIVBYZERO

 Message:  attempted to divide by zero

 Severity:  Error

DSTERRG

 Message:  error in DST (compiler error).  GOTO DST has been ignored

 Severity:  Informational

DSTNESDEP

 Message:  DST nesting depth too deep in module path_name

 Severity:  Error Debug Symbol Table nesting depth is too deep in  the
     specified  module.  This occurs if routine nesting or data record
     nesting is very deep in the user program.

 User Action:  Simplify the user program and run again.

DYNIMGSET

 Message:  setting image image_name

 Severity:  Informational

DYNMODSET

 Message:  setting module path_name

 Severity:  Informational

EDITDISVER

 Message:  the original version is file_specification

 Severity:  Informational

EDITERROR

 Message:  error while trying to EDIT

 Severity:  Informational

EDITFILE

 Message:  editing file file_specification

 Severity:  Informational

EDITNOFILE

 Message:  no source file to use for editing

 Severity:  Informational

EDITREVVER

 Message:  editing a revised version of the original source file

 Severity:  Informational

ENABLEAST

 Message:  ASTs were disabled, are now enabled

 Severity:  Informational

ENTRYMASK

 Message:  entry mask has non-zero value in bits 12:13

 Severity:  Informational

ENUMRANGE

 Message:  enumeration value out of range

 Severity:  Informational

ERRACTIMG

 Message:  unable to activate image

 Severity:    Informational   A   bad   status   was   returned   from
     LIB$FIND_IMAGE_SYMBOL.   This  message  should  be  issued in the
     $DBG_INFO context.

 User Action:  The image the debugger was trying to activate could not
     be  activated.   The  following  error should help to resolve the
     problem.

ERRASSIGN

 Message:  the attempt to acquire an  I/O  channel  for  the  debugger
     failed

 Severity:  Informational 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  do  I/O.
     In  this  case  the  debugger  failed  to acquire such a channel.
     Check your process quotas.

ERRCLSFILE

 Message:  unable to close file

 Severity:  Informational A bad status was returned  from  a  call  to
     close  a  file.   This  message should be issued in the $DBG_INFO
     context.

 User Action:  The debugger failed to close a file.  Unless the reason
     for this is apparent, submit a Software Performance Report (SPR).

ERRCRELNM

 Message:  unable to create a logical name

 Severity:  Informational The debugger creates logical names for input
     and  output  redirection.   This  message should be issued in the
     $DBG_INFO context.

 User Action:  Submit a Software Performance Report (SPR).

ERRDEASSIGN

 Message:  attempt to deassign an I/O channel acquired by the debugger
     failed

 Severity:  Informational DEBUG wanted to deassign an I/O channel that
     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 a Software Performance Report (SPR).

ERRFAO

 Message:  unable to format output string

 Severity:  Informational An error was returned from a call to $FAO.

 User Action:  Submit a Software Performance Report (SPR).

ERRGETDVI

 Message:  unable to get device information

 Severity:  Informational DEBUG needed some information  from  $GETDVI
     and  the  call  failed.   This indicates a programming error.  No
     doubt bad parameters were passed in.

 User Action:  Submit a Software Performance Report (SPR).

ERRGETEF

 Message:  attempt to allocate an event flag failed

 Severity:  Informational DEBUG wanted to allocate a local event  flag
     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.

 User Action:  The debugger needs event flags to operate.   Check  the
     program being debugged for excessive allocation of event flags.

ERRINSDEC

 Message:  error occurred while decoding instruction at current PC

 Severity:  Informational

ERRINVEDIT

 Message:  error invoking editor

 Severity:  Informational 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 Report (SPR).

ERROR

 Message:  internal VAX DEBUG error detected

 Severity:  Error This message indicates an internal debugger error.

 User Action:  Correct the problem given  by  the  messages  following
     this message.  If the problem cannot be solved, submit a Software
     Performance Report.

ERRORLIMIT

 Message:  Error limit = error-limit, dumping terminated

 Severity:  Fatal The error limit  specified  for  the  DST  dump  was
     exceeded;  the dumper was unable to continue processing the input
     file.  By default,  the  error  limit  is  set  at  5.   Use  the
     /ERROR_LIMIT qualifier to change the value.

ERROR_BLOCK

 Message:  error handle signalled, address = address

 Severity:  Error The debugger signalled an error handle.  This should
     never happen.

 User Action:  Submit a Software Performance Report (SPR)

ERRQIOW

 Message:  error from $QIOW

 Severity:  Informational A bad status was returned  from  a  call  to
     $QIOW.

 User Action:  Submit a Software Performance Report (SPR).

ERRSMG

 Message:  error  returned  from  a  call  to  the  Screen  Management
     Facility (SMG)

 Severity:  Informational A bad status was returned  from  a  call  to
     SMG.  This could be a result of any number of things which may or
     may not be a debugger problem.

 User Action:  Check  the  user  program  for  potential  interactions
     between  it  and  the  debugger; pasteboard sharing and the like.
     Also, check the set up of the terminal which might cause SMG some
     problem.  If the error still can't be explained submit a Software
     Performance Report (SPR).

ERRSYSSERV

 Message:  error returned from an internal DEBUG system service call

 Severity:  Informational A bad status was returned from a call  to  a
     system  service.   This  message  is  to be in the context of the
     $DBG_INFO macro which will list the particular system service.

 User Action:  Submit a Software Performance Report (SPR).

ERRUSREVNT

 Message:  error in user-specified event

 Severity:  Error

EXARANGE

 Message:  invalid range of addresses

 Severity:  Error

EXCBREREP

 Message:  exception breakpoint replaced

 Severity:   Informational  A  SET  BREAK/EXCEPTION  was   done   when
     exception breaks were already in effect.  The old exception break
     was replaced with the new one.

EXCDURCAL

 Message:   error  occurred  while  executing  routine   called   from
     exception break

 Severity:  Error 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 the
     exception.  Execution of the called routine is then terminated.

 User Action:  Either correct the CALL command if it was in error,  or
     correct  the  routine  that  caused  the  exception.   To use the
     debugger to help find the cause of the exception, try calling the
     routine while not at an exception break.

EXITARG

 Message:  exitloop argument num_levels is too large

 Severity:  Warning

EXITERR

 Message:  an error occurred while trying to exit the program

 Severity:  Error An error status was returned from the  call  to  the
     debugger-kernel   service   that  terminates  program  execution.
     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,  then  take
     corrective  action.   If, after this evaluation, you believe that
     the problem lies in VAX DEBUG, then submit a Software Performance
     Report.

EXITSTATUS

 Message:  is 'status_value'

 Severity:  Informational The  program  has  exited  with  the  status
     status_value.  See the <vms_sysrout_r> for more information about
     the VAX/VMS exit status codes.

 User Action:  None.

EXPMEMPOOL

 Message:  expanding debugger memory pool

 Severity:  Informational The DEBUG kernel  maintains  a  memory  pool
     from  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
     signaled  when  memory  pool expansion occurs.  If you have set a
     large number of breakpoints, tracepoints,  or  watchpoints,  this
     message is to be expected.

 User Action:  If this message appears for no  evident  reason  (i.e.,
     you  have  not set a large number of breakpoints, tracepoints, or
     watchpoints), there may be something wrong with the debugger.  In
     this case, submit an SPR.

FILEUNAL

 Message:  file not available

 Severity:  Warning

FLTOVF

 Message:  floating overflow at or near opcode_name

 Severity:  Error

GETJPI

 Message:  GETJPI system service failed, unable to attach

 Severity:  Error

HEIGHTDIFF

 Message:  desired height of specified_height is not  allowed,  height
     is set to actual_height

 Severity:  Informational

IDENTLONG

 Message:  identifier too long, please shorten

 Severity:  Error

IFIXUND

 Message:  precision lost during fixed point operation

 Severity:  Informational

IFLTUND

 Message:  floating underflow at or near opcode_name

 Severity:  Informational

IINTOVF

 Message:  integer overflow at or near opcode_name

 Severity:  Informational

ILLADDCON

 Message:  illegal constant constant_name in address expression

 Severity:  Warning

ILLASTER

 Message:  subscript range ('*') not permitted here (must be at lowest
     level of data structure)

 Severity:  Warning

ILLDEFNAM

 Message:  illegal name for DEFINE:  defined_name

 Severity:  Warning

ILLENUMVAL

 Message:  enumeration value out of legal range

 Severity:  Warning

ILLEVNSTR

 Message:   Attempt  to  pass  an  illegal  event  structure,  name  =
     structure-name

 Severity:  Fatal This message indicates an internal debugger error.

 User Action:  Submit an SPR.

ILLFILPTR

 Message:  file variable points to invalid file descriptor

 Severity:  Warning

ILLFLOAT

 Message:  float_value is an illegal floating point value

 Severity:  Warning

ILLLENGTH

 Message:  illegal length field length_value in structure reference

 Severity:  Warning

ILLOFFSET

 Message:  bit or byte offset value larger  than  64K  not  supported,
     value given is offset_value

 Severity:  Warning

ILLPACSIZ

 Message:  illegal packed size size_value; must be 0..31

 Severity:  Warning

ILLPATH1

 Message:  illegal use of %SOURCE_SCOPE (must  not  be  combined  with
     invocation numbers)

 Severity:  Warning

ILLPATH2

 Message:  illegal use of %SOURCE_SCOPE (must appear at the  start  of
     the pathname)

 Severity:  Warning

ILLPATHELEM

 Message:  illegal pathname element at path_name

 Severity:  Error

ILLPOSFLD

 Message:  position field value position_value is too large

 Severity:  Warning

ILLQUALIF

 Message:  illegal or unsupported qualifier on SPAWN command

 Severity:  Warning

ILLRANGE

 Message:  subscript range not permitted here (must be at lowest level
     of data structure)

 Severity:  Warning

ILLSETCON

 Message:  illegal set constant in expression

 Severity:  Warning

ILLSIGEXT

 Message:  illegal sign extension field value extension_value

 Severity:  Warning An illegal value has been  entered  for  the  sign
     extension field in a field reference.

 User Action:  Re-enter the command using a valid sign extension field
     value.

ILLSIZFLD

 Message:  illegal size field size_value; must be 0..32

 Severity:  Warning

ILLSUBLEN

 Message:  substring length larger than 32K not supported

 Severity:  Warning

ILLSUBSTR

 Message:  can only apply substring operation to string data types

 Severity:  Warning

ILLTYPE

 Message:  illegal type of operand(s)

 Severity:  Warning The  type  of  the  operand  is  illegal  for  the
     operator specified.

 User Action:  Change the operand.

INCDSTNES

 Message:  incorrect DST nesting in module path_name, compiler error

 Severity:  Error Incorrect Debug Symbol Table nesting occurred,  such
     as  improper  routine  or  data  record  nesting in the specified
     module.  This message normally indicates a compiler error.

 User Action:  Submit a Software Performance Report.

INCOMPOPR

 Message:  operand number operand_number incomplete

 Severity:  Error

INCOMPPTR

 Message:  pointers of different size, cannot perform subtraction

 Severity:  Warning

INCOMQUAL

 Message:    qualifier   qualifier_name   is   not   compatible   with
     qualifier_name(s)

 Severity:  Warning Qualifiers specified with the command conflict  in
     their operations.

 User Action:  Specify non-conflicting qualifiers.

INCOMTARGET

 Message:  a debugger_type kernel  debugger  is  incompatible  with  a
     debugger_type main debugger

 Severity:  Error A kernel debugger attempted to  connect  to  a  main
     debugger with which it is not compatible.

 User Action:  Make sure that the logical names DEBUG and DEBUGSHR are
     defined to point to the same type of debuggers.

INCOMVERSION

 Message:  the RPC versions of  the  main  and  kernel  debuggers  are
     incompatible

 Severity:  Error A kernel debugger attempted to  connect  to  a  main
     debugger with which it is not compatible.

 User Action:  Make sure that the logical names DEBUG and DEBUGSHR are
     defined to point to the same type of debuggers.

INDBASEQL

 Message:  index and base  registers  are  equal  for  operand  number
     operand_number

 Severity:  Error

INITIAL

 Message:  language is language_name, module set to path_name

 Severity:  Informational This message is displayed when the  debugger
     is  invoked  by  the  image  activator.   The  language is set to
     language_name, and the module to path_name.  Module path_name  is
     the  first  module  specified  in  the LINK command, and language
     language_name is the language used in that module.

 User Action:  None.

INPREADERR

 Message:  error reading input line:

 Severity:  Warning

INSVIRMEM

 Message:  insufficient virtual memory for DEBUG memory pool

 Severity:  Informational

INTERR

 Message:  internal DEBUG error in DEBUG_routine_name

 Severity:  Error An internal debugger error has been encountered.

 User Action:   If  the  error  is  reproducible,  submit  a  Software
     Performance  Report  and, if possible, enclose both a copy of the
     program being  debugged  and  a  logged  debugging  session  that
     reproduces the error.

INTERRUPTED

 Message:  process interrupted via cross-process signal

 Severity:  Fatal This signal is delivered asyncronously to a  process
     to cause the debugger to be invoked in that process.

 User Action:  Submit an SPR.  This message is handled internally, and
     should never be signaled to the user.

INTMEMERR

 Message:  internal memory-pool error

 Severity:   Fatal  The  debugger's  internal  memory  area  has  been
     corrupted  or is inconsistent.  This can be caused by an internal
     DEBUG error or by random stores by the user program.

 User  Action:   Correct  the  user  program  or  submit  a   Software
     Performance Report.

INTOVF

 Message:  integer overflow at or near opcode_name

 Severity:  Error

INUMTRUNC

 Message:  number truncated at or near opcode_name

 Severity:  Informational

INVADDRTKN

 Message:  - invalid token for address calculation

 Severity:   Informational  This   message   appears   as   additional
     information  with  the  INVDSTREC  error  message.   The  address
     specification  contains  an  invalid  token  for  calculating  an
     address.  This is a compiler error.

INVARGLIS

 Message:  invalid argument list for 'DEBUG_command_segment'

 Severity:  Warning

INVARRDIM

 Message:  array dimension is out of range

 Severity:  Warning

INVARRDSC

 Message:  invalid array descriptor

 Severity:  Error An array descriptor in the image does not  have  the
     correct format.  This can be caused by a reference to a VAX BASIC
     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  a  \
     user  program  or  DEPOSIT commands altering a compiler generated
     array descriptor.

 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.   Otherwise,  if  an  array
     descriptor  has  not  been altered, submit a Software Performance
     Report.

INVAVSCODE

 Message:  - address or value token code avs_code is invalid, ignoring

 Severity:   Informational  This   message   appears   as   additional
     information  with  the  INVDSTREC  error message.  The address or
     value specification contains an invalid token code.   This  is  a
     compiler error.

INVCHAR

 Message:  invalid character

 Severity:  Error

INVCHRCON

 Message:  invalid character constant in expression

 Severity:  Error

INVDESC

 Message:  invalid string descriptor

 Severity:  Error This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

INVDIGBIN

 Message:  invalid digit in binary number:  number_value

 Severity:  Error

INVDIGDEC

 Message:  invalid digit in decimal number:  number_value

 Severity:  Error

INVDIGHEX

 Message:  invalid digit in hexadecimal number:  number_value

 Severity:  Error

INVDIGOCT

 Message:  invalid digit in octal number:  number_value

 Severity:  Error

INVDIRNAM

 Message:  invalid directory name:  file_specification

 Severity:  Error The directory name 'file_specification' given  in  a
     DEBUG  command  SET  SOURCE  is  not valid.  Either the directory
     syntax is incorrect or the directory does not exist.

 User Action:  Ensure that the directory exists and that the syntax is
     correct.

INVDMTPTR

 Message:  invalid DMT pointer; internal linker or DEBUG error

 Severity:  Informational

INVDSPSIZ

 Message:  invalid display size:  display_size

 Severity:  Error

INVDSTREC

 Message:  invalid DST record

 Severity:  Error

INVDSTTYPCODE

 Message:  - DST type code type_code is invalid

 Severity:   Informational  This   message   appears   as   additional
     information  with  the INVDSTREC error message.  The DST contains
     an invalid DST type code.  This is a compiler error.

INVEXPR

 Message:  invalid expression for operand number operand_number

 Severity:  Error

INVFIXDST

 Message:  invalid DST  fixup  records  in  image  image_name,  symbol
     references to shareable images may be erroneous

 Severity:  Informational While attempting to read  the  DEBUG  Symbol
     Table (DST) in the specified image, DEBUG found errors in the DST
     address fixup records.  These records are used to adjust for  the
     base  addresses of shareable images.  This means that any symbols
     in this image which  point  to  addresses  in  other  (shareable)
     images  will  most  likely  be incorrect.  Symbols which refer to
     addresses in this image will be correct unless  this  is  also  a
     shareable image.

 User Action:  Relink the image and, if  the  error  is  reproducible,
     submit  a  Software  Performance  Report explaining how the image
     file was created.

INVFLDREF

 Message:  invalid field reference; too many or few parameters

 Severity:  Warning

INVGSTREC

 Message:  invalid GST record

 Severity:  Error

INVGSTTYP

 Message:  invalid GST record; GST is partially built

 Severity:  Informational

INVINDIRECT

 Message:  - indirect offset offset is invalid

 Severity:   Informational  This   message   appears   as   additional
     information  with  the INVDSTREC error message.  The DST contains
     an indirect specification which does not  point  to  an  existing
     DST.  This is a compiler error.

INVLANGCODE

 Message:  - language code lang_code is invalid, language code UNKNOWN
     being substituted

 Severity:   Informational  This   message   appears   as   additional
     information  with  the INVDSTREC error message.  The DST contains
     an invalid language code.  The  UNKNOWN  language  code  will  be
     used.  This is a compiler error.

INVLENGTH

 Message:  - invalid  DST  record  length  of  bad_length,  should  be
     good_length

 Severity:   Informational  This   message   appears   as   additional
     information   with  the  INVDSTREC  error  message.   The  length
     specified in the DST record was incorrect.  This  is  a  compiler
     error.

INVMAR

 Message:  right margin must be greater than left

 Severity:  Warning You specified a right margin that  was  less  than
     the  left  margin  in  the  DEBUG  command SET MARGIN.  The right
     margin must be greater than the left margin.

 User Action:  Re-enter the command specifying a valid margin range.

INVNOSPECTKN

 Message:  - invalid token for no address or value spec

 Severity:   Informational  This   message   appears   as   additional
     information  with  the INVDSTREC error message.  The "no address"
     or "no value" specification contains an invalid token.  Only  the
     terminate  token  is  valid  after this type of token.  This is a
     compiler error.

INVNUMBER

 Message:  invalid numeric string 'number_value'

 Severity:  Error

INVNUMSRC

 Message:  invalid number of source files

 Severity:  Warning An invalid number of source files was specified on
     the  DEBUG  command  SET MAX_SOURCE_FILES.  The maximum number of
     source files that DEBUG will keep open simultaneously must be  in
     the range of 1 through 20.

 User Action:  Re-enter the command specifying a valid  number  within
     the range.

INVNUMSTR

 Message:  invalid numeric string at or near 'number_value'

 Severity:  Error

INVOPADDR

 Message:  invalid operator 'operator_symbol' in address expression

 Severity:  Error

INVOPSYM

 Message:  invalid operator symbol 'operator_symbol' in expression

 Severity:  Error

INVPAGE

 Message:  invalid screen height, value must be between minimum_height
     and maximum_height

 Severity:  Error

INVPRCSYN

 Message:  process specification syntax error

 Severity:  Error The specified process specification is syntactically
     invalid

 User Action:  Re-enter  the  command  specifying  a  correct  process
     specification

INVPRIOR

 Message:  invalid task priority value specified

 Severity:  Error

INVRANSPEC

 Message:  invalid range specification in array subscript

 Severity:  Warning

INVSELDIS

 Message:  invalid selection of display_name  display;  wrong  display
     kind

 Severity:  Error

INVSRCLIN

 Message:  invalid source line range

 Severity:  Warning An invalid source line range was  entered  in  the
     DEBUG  command  TYPE.  The first line number of the range must be
     non-negative and less than or equal to the second number  in  the
     range.

 User Action:  Re-enter the command specifying  a  valid  line  number
     range.

INVTIMSLI

 Message:  time slice was not set, parameter is out of  range  of  Ada
     type DURATION

 Severity:  Error

INVTSCODE

 Message:  - type spec type code ts_code is invalid, ignoring

 Severity:   Informational  This   message   appears   as   additional
     information   with   the   INVDSTREC  error  message.   The  type
     specification contains an invalid type code.  This is a  compiler
     error.

INVVALTKN

 Message:  - invalid token for value calculation

 Severity:   Informational  This   message   appears   as   additional
     information   with   the  INVDSTREC  error  message.   The  value
     specification contains an invalid token for calculating a  value.
     This is a compiler error.

INVWIDTH

 Message:  invalid screen width, value must be  between  minimum_width
     and maximum_width

 Severity:  Error

INVWINPAR

 Message:  invalid window parameter:  number_value

 Severity:  Error

IRFAOVF

 Message:  record file address overflow at or near opcode_name

 Severity:  Informational

ISTRTRU

 Message:  string truncated at or near opcode_name

 Severity:  Informational

ITMNOTAVA

 Message:  item not available

 Severity:  Warning The requested information is  not  available  from
     the user program.

ITMTRUNC

 Message:  item truncated - buffer of insufficient size

 Severity:  Warning The user should never see this error.

 User Action:  Submit a Software Performance Report (SPR)

IVALOUTBNDS

 Message:  value assigned is out of bounds at or near opcode_name

 Severity:  Informational

IVPRCLOG

 Message:  logical name DBG$PROCESS must  be  either  MULTIPROCESS  or
     DEFAULT

 Severity:  Fatal The logical name DBG$PROCESS translates to something
     other than "MULTIPROCESS" or "DEFAULT".

 User Action:  Correct the logical name assignment for DBG$PROCESS and
     try again.

KERFUNCNYI

 Message:  Kernel Function function_name not yet implemented  on  this
     architecture

 Severity:  Error This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

LASTCHANCE

 Message:  stack exception handlers lost, re-initializing stack

 Severity:  Error The user's program contained an  error  that  caused
     the exception handling mechanism to fail.  This error occurs when
     the stack is overwritten  by  the  user  program  or  by  deposit
     commands.

 User Action:  Identify and correct the error in the user program.

LINEINFO

 Message:  line_description

 Severity:   Informational  This  is  either  'No   line   information
     available',  or  'No  line  <line_number,  !UL>, previous line is
     <line_number, !UL>, next line is <line_number, !UL>'

LONGSTRING

 Message:  strings longer than 2**16 characters not supported

 Severity:  Warning

LOOPINCR

 Message:  loop increment cannot be zero

 Severity:  Warning

LOOPVAR

 Message:  loop var loop_variable has been redefined; exiting for loop

 Severity:  Informational

LOWBNDOPT

 Message:  lower bound of subrange was optimized away

 Severity:  Informational

MATQUOMIS

 Message:  matching quote is missing

 Severity:  Warning The matching quote at the end of a  quoted  string
     is missing.

 User Action:  Correct the error and re-enter the command.

MAXSTRLEN

 Message:    maximum   allowed   length   is   string_length   in   an
     EXAMINE/ASCII:n command

 Severity:  Warning

MISCLOSUB

 Message:  missing closing subscript parenthesis

 Severity:  Warning

MISINVNUM

 Message:  misplaced invocation number in path_name

 Severity:  Warning 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.

MISINVOPER

 Message:  missing or invalid operator at 'operator_symbol'

 Severity:  Error

MISMODBEG

 Message:  missing Module-Begin record in DST (compiler error)

 Severity:  Informational An  expected  Module-Begin  record  was  not
     found in the Debug Symbol Table.  This indicates a probable error
     in the compiler output.

 User Action:  Submit a Software Performance Report.

MISMODEND

 Message:  missing Module-End in DST for path_name (compiler error)

 Severity:  Informational An expected Module-End record was not  found
     in  the  Debug  Symbol Table.  This indicates a probable error in
     the compiler output.

 User Action:  Submit a Software Performance Report.

MISOPEMIS

 Message:  misplaced operator or missing operand at 'operator_symbol'

 Severity:  Error

MODUSCOPE

 Message:  a module name was expected; path_name not valid

 Severity:  Warning

MPARENREQ

 Message:  parenthesis required around process list in debug_command

 Severity:  Warning Parentheses must be placed around the process list
     for      DEBUG     commands     SET/PROCESS=(process-list)     or
     DO/PROCESS=(process-list).

 User Action:  Place  parentheses  around  the  process  list  in  the
     command.

MPCOMMAND

 Message:  command is only valid when multiprocess support is enabled

 Severity:  Error DEBUG was unable to execute  the  specified  command
     since  it  is  only  valid  when  DEBUG's multiprocess support is
     enabled.

 User Action:  Restart the debugging session with multiprocess support
     enabled.  Multiprocess support is enabled by defining the logical
     name  DBG$PROCESS  as   follows:    ($   DEFINE/JOB   DBG$PROCESS
     MULTIPROCESS)

NAMSTRMIS

 Message:  name string missing or invalid in %NAME construct

 Severity:  Error

NAMTOOLONG

 Message:  name is too long:  'symbol_name'

 Severity:  Error

NEEDMORE

 Message:  unexpected end of command line

 Severity:  Warning The command entered was not complete.  A  required
     part of the command was omitted.

 User Action:  Re-enter the complete command.

NEEDPAREN

 Message:  parenthesis required in THEN, ELSE, and DO clauses

 Severity:  Informational

NOACCESSR

 Message:  no read access to virtual address address_value

 Severity:  Error

NOACCESSW

 Message:  no write access to virtual address address_value

 Severity:  Error A DEPOSIT, SET BREAK, or SET TRACE command specified
     the  address  address_value.   The  debugger  does not have write
     access to that page.  The debugger requires write access in order
     to be able to set up breakpoints and tracepoints.

 User Action:  None.  You cannot do the  requested  operation  without
     proper access.

NOADDRREG

 Message:   register  register_name  does  not  have  an  address  use
     @register_name to obtain the contents of register register_name

 Severity:  Warning

NOALTERSP

 Message:  deposit into register 14 (stack pointer) not allowed

 Severity:  Informational

NOATTACH

 Message:  attach command failed

 Severity:  Error

NOBREAGGR

 Message:  breakpoints or tracepoints on registers, records or  arrays
     are not allowed

 Severity:  Error

NOBREAKAT

 Message:   cannot   set   breakpoint   or   tracepoint   at   address
     address_value

 Severity:  Warning

NOBREAKS

 Message:  no breakpoints are set

 Severity:  Informational The SHOW BREAK command was  entered  and  no
     breakpoints were set.

 User Action:  None.

NOCALLS

 Message:  no active call frames

 Severity:  Error

NOCANMAIN

 Message:  cannot cancel main image

 Severity:  Warning

NOCLI

 Message:  no CLI present to perform function

 Severity:  Error There is no command line interpreter in  the  target
     process from which to perform the operation.

 User Action:  None.  You cannot perform the attempted operation.

NOCONNECT

 Message:  CONNECT command failed

 Severity:  Error DEBUG was unable to  execute  the  connect  command.
     The reason is given in the message following this message.

 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, or specifying a process that is  not
     in  the  same  VMS  job  as  the  process being debugged.  If the
     problem cannot be solved, submit a Software Performance Report.

NOCURLOC

 Message:  current location not defined

 Severity:  Warning '.' is not currently defined.

 User  Action:   Do  not   reference   '.'   until   an   EXAMINE   or
     EVALUATE/ADDRESS command has been performed.

NODELIMTR

 Message:  missing or invalid instruction operand delimiter

 Severity:  Error A DEPOSIT command specified an  invalid  instruction
     operand format.

 User Action:  Re-enter the command with valid operands.

NODEPDEBUG

 Message:  DEPOSIT into DEBUG's address space is not allowed

 Severity:  Warning

NODIRLISM

 Message:  no source directory list in effect for path_name

 Severity:  Warning The DEBUG command  CANCEL  SOURCE/MODULE=path_name
     failed because there is no source directory search list in effect
     for module path_name.

 User Action:  This is an  informational  message.   However,  if  the
     wrong module was specified, the command should be re-entered with
     the correct name.

NODIRLIST

 Message:  no source directory list in effect

 Severity:  Warning The DEBUG command  CANCEL  SOURCE  had  no  effect
     because no source directory search list is currently in effect.

 User Action:  None.  This message is informational.

NOELABBODY

 Message:  package body path_name has no executable code

 Severity:  Warning

NOELABSPEC

 Message:  package spec path_name has no executable code

 Severity:  Warning

NOEND

 Message:   string  beginning  with  'string_value'  is  missing   end
     delimiter delimiter_character

 Severity:  Error A DEPOSIT  command  specified  an  ASCII  string  or
     INSTRUCTION string beginning with characters string_value that do
     not have a terminating apostrophe.

 User Action:  Re-enter  the  command  with  characters  containing  a
     terminating apostrophe.

NOEPTSPEC

 Message:  no  eventpoints  were  specified  with  a  SHOW  or  CANCEL
     command.

 Severity:  Error Eventpoints were not given with  a  SHOW  or  CANCEL
     command.

 User Action:   Try  the  command  again,  specifying  eventpoints  to
     operate on.

NOEVALEXPR

 Message:  unable to evaluate expression for following reason

 Severity:  Informational

NOEVENTFAC

 Message:  /EVENT  qualifier  not  allowed:   first  type  'SET  EVENT
     facility' to specify an event facility

 Severity:  Error

NOEXCBRE

 Message:  no exception breaks were set

 Severity:  Informational A CANCEL BREAK/EXCEPTION command was entered
     when   exception   breaks   were   not  in  effect.   The  CANCEL
     BREAK/EXCEPTION command had no effect.

NOEXHND

 Message:  no exit handlers are declared

 Severity:  Informational

NOFIELD

 Message:  'field_name' is not a field in this record

 Severity:  Warning 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.

NOFREE

 Message:  no free storage available

 Severity:  Error

NOGLOBALS

 Message:  some or all global symbols not accessible

 Severity:  Informational The  image  was  linked  with  the  /NODEBUG
     qualifier, and there are no global symbols in the symbol table.

 User Action:  Relink the image with the /DEBUG qualifier.

NOINPAVAIL

 Message:  DBG$INPUT AND SYS$INPUT are not available

 Severity:   Fatal  DEBUG  was  unable  to  open  both  DBG$INPUT  and
     SYS$INPUT.

 User Action:  Check that  DBG$INPUT  and  SYS$INPUT  point  at  valid
     objects.

NOINSTRAN

 Message:  cannot translate opcode at location address_value

 Severity:  Error The address specified in the EXAMINE command is  not
     the  beginning of a valid VAX instruction.  This can be caused by
     specifying an address that is in the middle of an instruction  or
     by an address that is in a data area.

 User Action:  Specify an address that contains a valid instruction.

NOKEYDEF

 Message:  cannot do keypad input, mode is set to NOKEYPAD

 Severity:  Warning

NOKEYPAD

 Message:  unable to set up keypad definitions

 Severity:  Informational

NOLASTVAL

 Message:  last value is not defined

 Severity:  Warning '\' is not currently defined.

 User Action:  Do not  reference  '\'  until  a  DEPOSIT  or  EVALUATE
     command has been performed.

NOLINXXX

 Message:  line_descriptor

 Severity:  Warning The line number  range  CZ:yyy  specified  on  the
     DEBUG  command  TYPE  does  not  exist.   There  are no such line
     numbers in the specified module (or the default module).

 User Action:  Re-enter the command specifying line  numbers  that  do
     exist.

NOLIST

 Message:  list of parameter values not allowed - check use  of  comma
     (,)

 Severity:  Error 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.  If necessary,
     issue the command once for each value.

NOLOCALS

 Message:  image does not contain local symbols

 Severity:  Informational All the modules in the image  were  compiled
     or  assembled  without  traceback information.  There is no local
     symbol information in the image.

 User Action:  Recompile or reassemble the modules  using  the  /DEBUG
     qualifier and then relink them.

NOMARKCHNG

 Message:  [NO]MARK_CHANGE qualifier not  applicable  to  display_name
     display

 Severity:  Informational

NOMATCH

 Message:  no matches

 Severity:  Warning

NOMORE

 Message:  wildcard request complete

 Severity:  Warning

 User Action:  This is a VAX DEBUG internal error code.  If VAX  DEBUG
     reports this error, then submit a Software Performance Report.

NONEXPR

 Message:  nonexistent process

 Severity:  Error A process name or process  identification  specified
     in a command is not valid.

 User Action:  Verify that  the  process  name  or  identification  is
     correct  and  that  the  process  was  not already deleted.  Also
     verify that  you  have  the  required  privilege  to  access  the
     process.

NONEXPRC

 Message:  process process-specification does not exist

 Severity:  Error The  process-specification  was  not  valid  or  the
     specified process did not exist.

 User Action:  Verify that the process specification  is  correct  and
     that the process still exists and then re-enter the command.

NONUMSCOPE

 Message:  scope does not exist or is not in set module:  scope_number

 Severity:  Informational

NONXTLIN

 Message:  next line for source display not defined

 Severity:  Warning The DEBUG  command  TYPE  or  SEARCH  was  entered
     without  specifying  a  line  number  (for example, the next line
     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.

NOOCCLDISP

 Message:  display_name display may not be occluded

 Severity:  Informational

NOOUTAVAIL

 Message:  DBG$OUTPUT AND SYS$OUTPUT are not available

 Severity:  Fatal  DEBUG  was  unable  to  open  both  DBG$OUTPUT  and
     SYS$OUTPUT.

 User Action:  Check that DBG$OUTPUT and  SYS$OUTPUT  point  at  valid
     objects.

NOPACKMEMBODY

 Message:  'symbol_name' is not a member of package body path_name

 Severity:  Warning

NOPACKMEMSPEC

 Message:  'symbol_name' is not a member of package spec path_name

 Severity:  Warning

NOPRED

 Message:  logical predecessor not defined

 Severity:  Warning The  logical  predecessor  of  the  identifier  or
     instruction referenced is not defined.

 User Action:  None.  This message is informational.

NOPROMPT

 Message:  cannot delete, remove, unselect,  or  change  kind  of  the
     display_name display

 Severity:  Informational

NORECSYM

 Message:  recursive symbol_type symbol definition encountered  at  or
     near 'DEBUG_command_segment'

 Severity:  Error While attempting  to  expand  a  defined  symbol,  a
     recursive symbol definition was encountered.

 User Action:  Redefine the symbol specified in the error  message  so
     that  it  does  not  contain  any  circular dependencies and then
     re-enter the command.

NORMAL

 Message:  successful DEBUG status

 Severity:  Success

NORSTBLD

 Message:  cannot build symbol table

 Severity:  Error The debugger is  unable  to  build  a  symbol  table
     because of errors in the format of the image file.

 User Action:  Relink the image and, if  the  error  is  reproducible,
     submit  a  Software  Performance  Report explaining how the image
     file was created.

NOSAVPROG

 Message:  cannot save a program I/O display

 Severity:  Informational

NOSCOPE

 Message:  no scope exists to look up line line_number

 Severity:  Error 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.

NOSCRDEV

 Message:  screen mode is not supported on  this  device  screen  mode
     output is being lost

 Severity:  Informational

NOSCRMODE

 Message:  screen mode is not supported on this terminal  screen  mode
     is not set

 Severity:  Warning

NOSCROLL

 Message:  no scrolling display selected or missing display name

 Severity:  Error

NOSCROLLDISP

 Message:  display_name display may not be scrolled

 Severity:  Informational

NOSETTERM

 Message:  the SET TERMINAL command is not supported on this terminal

 Severity:  Warning

NOSPAWN

 Message:  spawn command failed

 Severity:  Error

NOSPAWNI

 Message:  spawn command failed

 Severity:  Informational

NOSRCHSTR

 Message:  search string not set

 Severity:  Warning No current search string is defined for the  DEBUG
     command  SEARCH.  The SEARCH command was entered without a search
     string indicating that the current search string should be  used.
     But  no  previous  SEARCH  command  has  been entered to define a
     current search string.

 User Action:  Explicitly specify the desired  search  string  on  the
     command.

NOSRCLIN

 Message:  no source line for address address_value

 Severity:   Warning  No  source  line  corresponds  to  the   address
     address_value specified on the DEBUG command EXAMINE/SOURCE.

 User Action:  None.  This message is informational.

NOSTEPGO

 Message:  no STEP, GO, SET PROCESS/VISIBLE or CALL  commands  allowed
     in screen displays

 Severity:  Error

NOSUCC

 Message:  logical successor not defined

 Severity:   Warning  The  logical   successor   of   the   referenced
     instruction or identifier is not defined.

 User Action:  None.  This message is informational.

NOSUCHBPT

 Message:  no such breakpoint

 Severity:   Informational  The  CANCEL  BREAK  command  specified  an
     address that is not the address of a breakpoint.

 User Action:  Use the SHOW BREAK command to find the location of  the
     current  breakpoints,  and  then  cancel any of these breakpoints
     that you want to cancel.

NOSUCHDISP

 Message:  no such display defined:  display_name

 Severity:  Error

NOSUCHELP

 Message:  no such help topic or invalid HELP command

 Severity:  Warning

NOSUCHIMG

 Message:  image image_name not found

 Severity:  Error

NOSUCHMODU

 Message:  module path_name is not in module chain

 Severity:  Error The module path_name, specified in  the  SET  MODULE
     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.

 User Action:  Specify a module that is in the image.

NOSUCHPACK

 Message:  library package path_name is not in the symbol table

 Severity:  Warning

NOSUCHSCOPE

 Message:  scope does not exist or is not in set module:  scope_name

 Severity:  Warning

NOSUCHTASK

 Message:  no such task exists or no task satisfies criteria

 Severity:  Error

NOSUCHTPT

 Message:  no such tracepoint

 Severity:   Informational  The  CANCEL  TRACE  command  specified  an
     address that was not the address of a tracepoint.

 User Action:  Use the SHOW  TRACE  command  to  display  the  current
     tracepoints and then cancel any that you want to cancel.

NOSUCHWIND

 Message:  no such window defined:  display_name

 Severity:  Error

NOSUCHWPT

 Message:  no such watchpoint

 Severity:   Informational  The  CANCEL  WATCH  command  specified  an
     address that was not the address of a watchpoint.

 User Action:  Use the SHOW  WATCH  command  to  display  the  current
     watchpoints and then cancel any that you want to cancel.

NOSYMBOL

 Message:  symbol 'symbol_name' is not in the symbol table

 Severity:  Error

NOSYMBOLR

 Message:  no symbol 'symbol_name' was declared in routine path_name

 Severity:  Warning

NOTADAPROG

 Message:  program is not an ADA program; command ignored

 Severity:  Error

NOTALIGNED

 Message:  - unaligned_string should be longword aligned

 Severity:   Informational  This   message   appears   as   additional
     information  with the INVDSTREC error message.  The DST field was
     not longword aligned.  This is a compiler error.

NOTARRAY

 Message:  type of variable is not array

 Severity:  Warning The variable being treated as  an  array  has  not
     been defined as one.

 User Action:  Check that the  correct  variable  reference  is  being
     made.

NOTASTRUCT

 Message:  'symbol_name' was not declared as a structure

 Severity:  Error A  VAX  BLISS-32  structure  reference  specified  a
     symbol symbol_name that was not declared a structure.

 User Action:  Re-enter the command with a valid symbol reference.

NOTATMAIN

 Message:  type GO to get to start of main program

 Severity:  Informational

NOTCURPC

 Message:  target of EXAMINE/OPERANDS is not the  current  PC  results
     may be unexpected

 Severity:  Informational 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 previous
     series of instructions being executed, which was not done in this
     case.

 User Action:  Only use EXAMINE/OPERANDS with .0\%PC

NOTDEFINE

 Message:  defined_symbol was not defined

 Severity:  Informational

NOTIMPLAN

 Message:  expression_type is not implemented at command level

 Severity:  Error The expression_type is not supported at this type.

 User  Action:   Specify  a  type  of  expression  that  the  debugger
     supports.

NOTINLOOP

 Message:  exitloop encountered when not in a loop

 Severity:  Warning

NOTINST

 Message:  examined address is not the start of an instruction

 Severity:  Informational

NOTORIGSRC

 Message:  original version of source file  not  found  file  used  is
     file_specification

 Severity:  Informational A source file was  found  for  some  module.
     But  the  revision  date and time or the file size indicates that
     this may not be the same version of the file that was used in the
     original   compilation  of  the  module.   This  warning  message
     indicates 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 DEBUG command SET SOURCE to indicate the location
     of the source to DEBUG.

NOTPTR

 Message:  variable must be of pointer or file type

 Severity:  Warning The variable should be a pointer or a file type.

 User Action:  Specify a variable of pointer or file type.

NOTRACES

 Message:  no tracepoints are set, no opcode tracing

 Severity:  Informational There are no tracepoints or  opcode  tracing
     set.

 User Action:  None.  This message is informational.

NOTRAZERO

 Message:  Unable to find a trailing zero for ASCIZ object at  virtual
     address address_value

 Severity:  Error DEBUG was unable to find a  trailing  zero  for  the
     specified ASCIZ string.

 User Action:  The ASCIZ string is missing a  trailing  zero,  or  the
     object examined is not an ASCIZ string.

NOTRECORD

 Message:   variable  is   not   record;   cannot   select   component
     component_name

 Severity:  Warning

NOTREE

 Message:  SCAN tree or subtree not found SCAN error message

 Severity:  Warning

NOTTASKVAL

 Message:  expression does not specify a task value

 Severity:  Error

NOTUNQOVR

 Message:  symbol 'symbol_name' is overloaded use SHOW SYMBOL to  find
     the unique symbol names

 Severity:  Error

NOTUPDATE

 Message:  instruction screen display not updated

 Severity:  Informational

NOTYPEINFO

 Message:  symbol type information not available please SET the module
     that describes this type

 Severity:  Warning

NOUNIQUE

 Message:  symbol 'symbol_name' is not unique

 Severity:  Error 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.

NOUNIVERSALS

 Message:  shareable image contains no universal symbols

 Severity:  Informational

NOUSREVNT

 Message:  no user-specified events are allowed; none are declared

 Severity:  Error

NOVALATPC

 Message:  entity 'symbol_name' does not have a value at  the  current
     PC (was optimized away)

 Severity:  Warning The value of the specified variable does not exist
     at  this  point  in  the  program's  execution.  For example, the
     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's
     execution when the variable is being referenced.

NOVALTYP

 Message:  'symbol_name' does not have a value because it  is  a  type
     name

 Severity:  Warning

NOVALUE

 Message:  reference does not have a value

 Severity:  Warning The command specified  a  reference  that  has  no
     value.

 User Action:  Change the reference.

NOWATCHES

 Message:  no watchpoints are set

 Severity:  Informational No watchpoints are set.

 User Action:  None.  This message is informational.

NOWATTAR

 Message:  cannot watch-protect target

 Severity:  Error You are attempting to set a /STATIC watchpoint on  a
     location that is either a register, is not in your program, or is
     on the stack (P1 space).  These  kinds  of  locations  cannot  be
     watchpointed with the /STATIC qualifier.

 User  Action:   Either  use  the  /NOSTATIC  qualifier,  or  do   not
     watch-point this location.

NOWATVARIA

 Message:  cannot set watchpoints on variant records

 Severity:  Warning

NOWATVARSTG

 Message:  watchpoints not allowed after SET  TYPE  ASCIC,  ASCIW,  or
     ASCIZ

 Severity:  Warning

NOWBPT

 Message:  cannot insert breakpoint

 Severity:  Informational This message indicates an internal  debugger
     error.

 User Action:  Submit a Software Performance Report.

NOWILD

 Message:  no wildcard permitted

 Severity:  Error Wildcards are not permitted in this context

 User Action:  Re-enter the command without using wildcards

NOWILDFIL

 Message:  file name, type, and version cannot be wildcarded

 Severity:  Error

NOWOPCO

 Message:  cannot replace breakpoint with opcode

 Severity:  Fatal This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

NOWPROT

 Message:  cannot set protection

 Severity:  Fatal This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

NULLPTR

 Message:  cannot dereference null pointer

 Severity:  Warning

NUMCONLONG

 Message:  numeric constant too long, please shorten

 Severity:  Error

NUMTRUNC

 Message:  number truncated

 Severity:  Informational

OBJECTINV

 Message:  requested object is invalid

 Severity:  Fatal This message indicates an internal debugger error.

 User Action:  Submit an SPR.

OBJPTRINV

 Message:  the pointer associated with the requested object is invalid

 Severity:  Fatal This message indicates an internal debugger error.

 User Action:  Submit an SPR.

OBJTYPMIS

 Message:  the type associated with the requested object is incorrect

 Severity:  Fatal This message indicates an internal debugger error.

 User Action:  Submit an SPR.

OBSOLETE_1

 Message:  this message is available for reuse

 Severity:  Warning

OPCDEC

 Message:  no support for G/H instructions at or near opcode_name

 Severity:  Warning

OPNOTALLOW

 Message:  operator 'operator_symbol' not allowed on given data types

 Severity:  Error

OPSYNTAX

 Message:   instruction  operand  syntax  error  for  operand   number
     operand_number

 Severity:  Error

OUTPUTLOST

 Message:  output being lost, both NOTERMINAL and NOLOG are in effect

 Severity:  Informational The SET OUTPUT command has  set  the  output
     conditions  to  NOTERMINAL and NOLOG; consequently, the output is
     not 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.

PACSIZREQ

 Message:  packed size required

 Severity:  Warning

PARENREQ

 Message:  parenthesis required in 'DEBUG_command_segment /TYPE=(X)'

 Severity:  Warning The  DEBUG_command_segment  is  either  SET  TYPE,
     DEPOSIT, or EXAMINE.

PARSTKOVR

 Message:  parse stack overflow, simplify expression

 Severity:  Warning The expression was too complex for the debugger to
     evaluate.

 User Action:  Simplify the expression.

PATHNOTACP

 Message:  pathname qualifiers (path_name) not allowed in SHOW  SYMBOL
     data name

 Severity:  Warning

PATHTLONG

 Message:  too many qualifiers on name

 Severity:  Error

PATHTOOLONG

 Message:  pathname too long at path_name

 Severity:  Error

PCNOTALL

 Message:  PC not allowed in context for operand number operand_number

 Severity:  Error

PLICVTERR

 Message:  PLI conversion error at or near opcode_name

 Severity:  Error

PREDEPTNOT

 Message:  predefined eventpoint(s) not canceled

 Severity:  Informational Any existing predefined eventpoints have not
     been canceled as the result of a CANCEL command.

 User Action:  Specify  the  /PREDEFINED  qualifier  with  the  CANCEL
     command to cancel predefined eventpoints.

PROFRANOT

 Message:  proper frame not found on call stack for path_name

 Severity:  Warning 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
     currently active.

PROMPTCLEN

 Message:  display_name display width not changed, must be full  width
     of screen

 Severity:  Informational

PROMPTOCCL

 Message:   display_name  display  now  occludes  some   or   all   of
     display_name display's text

 Severity:  Informational

PROMPTRLEN

 Message:  display_name display length not changed, must be at least 2
     lines long

 Severity:  Informational

PROVRFLOW

 Message:  too many levels of @ procedure nesting

 Severity:  Warning

PXCN

 Message:  record  object  or  record  formal  parameter  must  prefix
     'CONSTRAINED

 Severity:  Warning

QUALREQ

 Message:  A direction qualifier must be specified with the EXPAND and
     MOVE commands.

 Severity:  Error Direction ( UP, DOWN, LEFT, RIGHT )  information  is
     missing from the command.

 User Action:  Provide a direction with the command and try again.

QUOSTRLONG

 Message:  quoted string too long, please shorten

 Severity:  Error

READERR

 Message:  DEBUG input read error, force to exit

 Severity:  Warning

REFUSED

 Message:  attach request refused

 Severity:  Error Either you have attempted to  attach  to  a  process
     that  is  your  own  process  or that is not part of your process
     tree.

 User Action:  None.  You cannot perform the attempted operation.

REGREQ

 Message:   register  required   in   context   for   operand   number
     operand_number

 Severity:  Error

RENAMENOT

 Message:  Unable to look up 'symbol_name', object being  renamed  not
     found in symbol table

 Severity:  Warning

RESUMERR

 Message:  an error occurred while trying to resume execution  of  the
     program

 Severity:  Error An error status was returned from the  call  to  the
     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,  then  take
     corrective  action.   If, after this evaluation, you believe that
     the problem lies in VAX DEBUG, then submit a Software Performance
     Report.

RETURNED

 Message:  control returned to process process_name

 Severity:  Informational

RNDFCTROUT

 Message:  round factor out of range

 Severity:  Warning

ROPRANDF

 Message:  reserved operand fault at or near opcode_name

 Severity:  Error

RPCDBBDT

 Message:  Bad DTYPE for RPC Data Blocking.

 Severity:  Error This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

RPCERR

 Message:  an internal inter-process communications error has occurred

 Severity:  Error An internal communications error has occurred.   The
     reason is given in the message following this message.

 User Action:   If  the  error  is  reproducible,  submit  a  Software
     Performance  Report  and, if possible, enclose both a copy of the
     program being  debugged  and  a  logged  debugging  session  that
     reproduces the error.

RPCINVDSC

 Message:  invalid RPC descriptor

 Severity:  Error This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

RPCOVF

 Message:  RPC packet overflow

 Severity:  Error This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

RPCUNF

 Message:  undefined RPC function encountered

 Severity:  Error This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

RPCUNKARG

 Message:  undefined RPC argument encountered

 Severity:  Error This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

RSTERR

 Message:  error in symbol table

 Severity:  Error There is a format error in the symbol table.

 User Action:  If the format error is not caused  by  a  user  program
     error or a DEPOSIT command, submit a Software Performance Report.

SCALEADD

 Message:  pointer addition:  scale factor of scale_factor applied  to
     right/left argument

 Severity:  Informational

SCALESUB

 Message:  pointer subtraction:  scale factor of scale_factor  applied
     to right/left

 Severity:  Informational

SCRTOBIG

 Message:  screen too big for Screen Mode  width  must  be  less  than
     maximum_width, height less than maximum_height

 Severity:  Error

SCRTOSMALL

 Message:  screen too small for Screen Mode width  must  be  at  least
     minimum_width, height must be at least minimum_height

 Severity:  Error

SETKEY

 Message:  keypad state has been set to state_name

 Severity:  Informational

SETKEYERR

 Message:  error in processing SET KEY command:

 Severity:  Warning

SETMODU

 Message:  set module command has completed

 Severity:  Informational

SETSCOMOD

 Message:  syntax error at 'DEBUG_command_segment',  SET  SCOPE/MODULE
     expected

 Severity:  Error

SFCNTNEG

 Message:  shift count is negative

 Severity:  Warning

SHOKEYERR

 Message:  error in processing SHOW KEY command:

 Severity:  Warning

SHRPRC

 Message:  VAX DEBUG will share user process

 Severity:  Informational An error occured while trying  to  create  a
     subprocess   to  run  the  main  debugger  image.   This  message
     indicates that DEBUG is reverting back to  the  old  behavior  of
     running in the user process.

 User Action:  Correct the problem specified in the messages preceding
     this message.  If the problem cannot be solved, submit a Software
     Performance Report (SPR).

SIDEFFECT

 Message:  operators with side effects not supported (++, --)

 Severity:  Warning

SIGVECTRUNC

 Message:  signal vector was truncated

 Severity:  Warning The signal vector on this stack frame was too  big
     to fit into the DEBUG buffer.

 User Action:  Submit an SPR.  This message is handled internally, and
     should never be signaled to the user.

SIZEATOMIC

 Message:  only atomic data types are supported with 'SIZE

 Severity:  Warning

SIZETRUNC

 Message:  size field truncated to 32 bits

 Severity:  Informational The size of the  entry  in  a  VAX  BLISS-32
     field  specification  was  larger  then 32.  The debugger set the
     entry size to 32 and executed the command.

 User Action:  None.  This message is informational.

SOURCESCOPE

 Message:  Source lines not available for .0
     %PC Displaying source in a caller of the current routine

 Severity:  Informational

SPAWNED

 Message:  subprocess spawned

 Severity:  Informational

SRCLINNOT

 Message:  source lines not available for module path_name

 Severity:   Warning  The  source  lines  from  module  CZ  cannot  be
     displayed or searched because there is no source line information
     in the Debug Symbol Table (DST)  for  that  module.   Either  the
     compiler  is  not able to 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  line
     display,  recompile and relink with the /DEBUG qualifier.  If the
     language does not support source line display, source lines  will
     not be available to DEBUG for modules written in that language.

SS_INT

 Message:  system service intercepted

 Severity:  Informational

STEPINTO

 Message:  cannot step over PC = address_value

 Severity:  Informational The debugger was unable  to  step  over  the
     routine and executed a step into the routine instead.

 User Action:  None.  This message is informational.

STGTRUNC

 Message:  string truncated

 Severity:  Informational

STRNGPAD

 Message:  string operand lengths don't  match,  shorter  padded  with
     blanks on the right

 Severity:  Informational The operands of a string comparison (  'ABC'
     <  'AB' ) did not have the same length.  The shorter one is blank
     extended on the right.

 User Action:  Use strings of the same length.

STRTOOLONG

 Message:  strings longer than 255 characters not supported

 Severity:  Warning

STRUCSIZE

 Message:  structure size  declared  as  num_units  allocation  units,
     num_units was given

 Severity:  Informational The VAX BLISS-32 structure size was declared
     to be num_units units but was referenced with num_units units.

 User Action:  None.  This message is informational.

SUBOUTBND

 Message:  subscript  subscript_number  is  out  of  bounds  value  is
     subscript_value, bounds are low_bound..high_bound

 Severity:  Informational An attempt to subscript out of the bounds of
     an array was made.

 User Action:  Change the value of the subscript.

SUBSCRNG

 Message:  subscript  out  of  range,  low/high  bound  for  dimension
     subscript_number is subscript_bound

 Severity:  Informational

SUBSTRING

 Message:  invalid substring (start:   low_bound,  end:   high_bound),
     object has length string_size

 Severity:  Warning The substring  specification  (start:   low_bound,
     end:   high_bound ) is not within the bounds defined for the data
     type.

 User Action:  Specify a substring  specification  within  the  bounds
     defined for the data type.

SUBUNITCAN

 Message:  num_subunits subunit modules also canceled

 Severity:  Informational

SUBUNITNOTCAN

 Message:  num_subunits subunit modules not canceled

 Severity:  Informational

SUBUNITNOTSET

 Message:  parent module not set SET MODULE path_name will set  parent
     module

 Severity:  Informational

SUBUNITSET

 Message:  containing module also set

 Severity:  Informational

SUPERDEBUG

 Message:  SUPERDEBUG not available

 Severity:  Error

SYMNOTACT

 Message:  non-static variable 'symbol_name' is not active

 Severity:  Warning The symbol symbol_name is not defined in an active
     call frame.

 User Action:  Check the symbol specified; if correct, ensure that you
     have defined the scope correctly.

SYMNOTFND

 Message:  no symbols matching defined_symbol are defined

 Severity:  Informational

SYNERREXPR

 Message:     syntax    error    in    expression    at    or     near
     'DEBUG_command_segment'

 Severity:  Error

SYNERRLABEL

 Message:  syntax error in %LABEL construct, see HELP %LABEL

 Severity:  Error

SYNERRLINE

 Message:  syntax error in %LINE construct, see HELP %LINE

 Severity:  Error

SYNTAX

 Message:  command syntax error at or near 'DEBUG_command_segment'

 Severity:  Error The debugger encountered a command syntax error near
     the element DEBUG_command_segment.

 User Action:  Re-enter the command.

TASKERROR

 Message:  error error_code from ADA multitasking

 Severity:  Error

TASKNOTABORT

 Message:  task not aborted; ADA multitasking  is  executing  critical
     section

 Severity:  Error

TASKNOTACT

 Message:  task cannot be made the active task; task is not  ready  or
     running

 Severity:  Error

TASKNULL

 Message:  task is null; cannot set attributes of null task

 Severity:  Error

TERMINATING

 Message:  process-specification is terminating

 Severity:  Informational The process process-specification  has  just
     finished  execution.  All exit handlers in your program have run.
     Any SET BREAK/TERMINATING or SET  TRACE/TERMINATING  events  will
     now take effect.

TERMTKNREQ

 Message:  - terminate token is required

 Severity:   Informational  This   message   appears   as   additional
     information  with  the  INVDSTREC  error message.  The address or
     value specification was not  terminated  by  a  terminate  token.
     This is a compiler error.

TIMESLICE

 Message:  time slice interval has been slowed to 10.0 seconds

 Severity:  Informational

TOOFEWSUB

 Message:  too few subscripts, array has num_dimensions dimensions

 Severity:  Warning

TOOMANDIM

 Message:  too many dimensions in array

 Severity:  Warning

TOOMANERR

 Message:  too many errors, some errors not reported

 Severity:  Informational Too many MISMODBEG or certain  other  errors
     occurred.  Other similar errors are not reported.

 User Action:  None.  This message is informational.

TOOMANINV

 Message:  too many invocation numbers in symbol pathname

 Severity:  Error

TOOMANPARM

 Message:  too many parameters on command

 Severity:  Error

TOOMANSUB

 Message:  too many subscripts, array has num_dimensions dimensions

 Severity:  Warning

TRYINGONEPRC

 Message:  attempting to activate main debugger in this process

 Severity:  Informational Since an  error  occurred  while  trying  to
     create  a subprocess to run the main debugger image DEBUGSHR.EXE,
     the kernel debugger will attempt to activate  the  main  debugger
     image in this process.

UNACREDBGO

 Message:  unable to create DBG$OUTPUT, SYS$OUTPUT used

 Severity:  Informational

UNACVT

 Message:  unable to convert radixvalue to datatype_name

 Severity:  Warning

UNALIGNED

 Message:  data is not aligned on a byte boundary

 Severity:  Warning

UNALLOCATED

 Message:  entity 'symbol_name'  was  not  allocated  in  memory  (was
     optimized away)

 Severity:  Warning

UNAOPEDBGI

 Message:  unable to open DBG$INPUT, SYS$INPUT used

 Severity:  Informational

UNAOPESCR

 Message:  unable to open DBG$OUTPUT for screen output

 Severity:  Informational

UNAOPNHLP

 Message:  unable to open help library file_specification

 Severity:  Warning The  help  library  file_specification  cannot  be
     opened  to look for the help you requested.  The accompanying VAX
     RMS status message gives you more information about  the  reasons
     for the library not being opened.

 User Action:  Examine the VAX RMS status  message  to  determine  the
     reasons  for  the  help  library  not  being opened, and take the
     appropriate action based on that information.  Also, verify  that
     the logical name DBG$HELP is either not defined, or is defined to
     indicate the proper file.

UNAOPNINI

 Message:  unable to open initialization file file_specification

 Severity:  Informational

UNAOPNSRC

 Message:  unable to open source file file_specification

 Severity:  Warning Source  lines  from  the  file  file_specification
     cannot  be  displayed because DEBUG was unable to open the source
     file (represented as file_specification).  The  accompanying  VAX
     RMS  status  message gives more information about the reasons for
     the source file not being opened.

 User Action:  Examine the VAX RMS status  message  to  determine  the
     reasons  for  the  source  file  not  being  opened, and take the
     appropriate action based on that information.

UNAREASRC

 Message:  unable to read source file file_specification

 Severity:  Warning Source  lines  from  the  file  file_specification
     cannot  be  displayed because DEBUG was unable to read the source
     file (represented as file_specification).  The  accompanying  VAX
     RMS  status  message gives more information about the reasons for
     the source file not being opened.

 User Action:  Examine the VAX RMS status  message  to  determine  the
     reasons  for  the  source  file  not  being  read,  and  take the
     appropriate action based on that information.

UNASAVVAL

 Message:  unable to save value for defined_symbol, definition ignored

 Severity:  Warning

UNASETIMG

 Message:  unable to set image image_name because  it  has  no  symbol
     table

 Severity:  Informational

UNASETTAS

 Message:  unable to set visible task:  registers not available

 Severity:  Error

UNASWISTA

 Message:  Unable to create debugger stack, using program stack

 Severity:  Informational

UNBPAREN

 Message:  unbalanced parentheses in expression

 Severity:  Error

UNDEXPN

 Message:  undefined exponentiation at or near opcode_name

 Severity:  Warning

UNDKEY

 Message:  state_name key key_name is undefined

 Severity:  Informational

UNIMPLENT

 Message:  attempt to evaluate unimplemented type

 Severity:  Warning

UNMTCHPARN

 Message:  unmatched left parenthesis found

 Severity:  Warning A left parenthesis (() was found, but the matching
     right parenthesis ()) is missing.

 User Action:  Include the right parenthesis ()).

UPBNDOPT

 Message:  upper bound of subrange was optimized away

 Severity:  Informational

USREVNTERR

 Message:  user-specified event error code error_code returned by user
     RTL

 Severity:  Error

VALNOTADDR

 Message:  value of variable 'symbol_name' not usable as address

 Severity:  Warning 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.

VARNESDEP

 Message:  variant nesting depth  exceeds  20,  cannot  access  record
     component

 Severity:  Error

VERIFYICF

 Message:  opening/closing command procedure file_specification

 Severity:   Informational  The  debugger  is  verifying   a   command
     procedure.    This   message  is  displayed  before  the  command
     procedure is executed  and  after  all  the  commands  have  been
     displayed.

 User Action:  None.  This message is informational.

VERSIONNUM

 Message:    the    debugger_type    debugger    has    RPC    version
     major_version/minor_version

 Severity:  Informational This message is to inform you of the version
     number(s)  of the main and kernel debuggers.  It will only appear
     as part of another message, such as INCOMVERSION.

WATCHSIZE

 Message:  cannot WATCH variables longer than 512 bytes

 Severity:  Error

WATNOWCAN

 Message:  watchpoint now cancelled

 Severity:  Informational This message is a sub-message to  WATVARSCP,
     WATVARPTR,  and  WATVARPROT.   This  message  indicates  that the
     original watchpoint has been cancelled (is no longer active).

WATNOWWAT

 Message:  now watching variable name

 Severity:  Informational 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)
     changed  is  addressed  by  DEBUG.   If this message appears, the
     watchpoint is still active under this new name.

WATVARGSGONE

 Message:  global section associated with  watched  variable  variable
     name has been unmapped

 Severity:   Informational  The  global-section  which   contained   a
     global-section watchpoint is no longer mapped by any process that
     is under DEBUG control.  This message is always followed  by  the
     WATNOWCAN message, since DEBUG must delete the watchpoint.

WATVARGSOVR

 Message:  watched variable overlaps into a global section

 Severity:  Error The specified variable  spans  a  range  of  virtual
     memory  which includes a global-section and a private-section.  A
     watched variable must either be entirely in a  global-section  or
     entirely in a private-section.

 User Action:  Do not use watchpoint on this address.

WATVARNOWGBL

 Message:  watched variable variable name  has  been  re-mapped  to  a
     global section

 Severity:  Informational The program mapped a global-section  over  a
     watched  variable.   This  message  indicates that DEBUG made the
     watchpoint a global-section watchpoint.  If the global-section is
     mapped  by more than one process that is under DEBUG control, the
     watched variable will be watched in each process that  is  mapped
     to the global section.

WATVARPROT

 Message:  watched variable variable name is no longer accessible

 Severity:  Informational Some action by  the  program  has  made  the
     target  variable  inaccessible  to DEBUG.  The program might have
     deleted the virtual  memory  which  contains  some  part  of  the
     variable  or  one  of  the  pointers  in the pointer chain to the
     variable, or the program might have set the  protection  of  such
     virtual  memory such that DEBUG can not read it.  This message is
     always followed by the WATNOWCAN message, since DEBUG must delete
     the watchpoint.

WATVARPTR

 Message:  watched variable variable name now points  to  a  different
     address

 Severity:  Informational Some pointer in the variable  reference  has
     changed  value.  This message is accompanied by a further message
     indicating  whether  DEBUG  has  cancelled  the   watchpoint   or
     re-defined  the  watchpoint  to  address  the  original data by a
     different name.

WATVARREMAP

 Message:  watched variable variable name touches  a  page  which  has
     been re-mapped by the user program

 Severity:  Informational Some action by the user program has made  it
     impossible  for DEBUG to set the protection on part or all of the
     variable.   DEBUG  will  therefore  not  detect  changes  to  the
     variable.   This  message  is  always  followed  by the WATNOWCAN
     message, since DEBUG must delete the watchpoint.

WATVARSCP

 Message:  watched variable variable name has gone out of scope

 Severity:   Informational  The  identified  variable  is  no   longer
     accessible  by  its original name.  The program may have returned
     from the routine in which the variable was  defined,  or  it  may
     have  called  another  routine.  This message is accompanied by a
     further  message  indicating  whether  DEBUG  has  cancelled  the
     watchpoint  (in  the  case  that  the  variable is truly gone) or
     re-defined the watchpoint to address the same data by a different
     name.

WIDTHDIFF

 Message:  desired width of display_width is not allowed, width is set
     to display_width

 Severity:  Informational

WITHCAN

 Message:  num_modules related modules also canceled

 Severity:  Informational

WITHNOTCAN

 Message:  num_modules directly related modules not canceled

 Severity:  Informational

WITHNOTSET

 Message:  num_modules directly related modules  not  set  SET  MODULE
     path_name will set all related modules

 Severity:  Informational

WITHSET

 Message:  num_modules related modules also set

 Severity:  Informational

WORKSTACMD

 Message:  the command DEBUG-command is only supported on workstations

 Severity:   Warning  The   debugger   only   supports   the   command
     DEBUG-commandon Workstations.

 User Action:  None.  This capability of the debugger does  not  exist
     for your terminal or machine.

WPTTRACE

 Message:  non-static watchpoint, tracing every instruction

 Severity:   Informational  Setting  a  watchpoint  on  a   non-static
     location  such  as the stack or on a register forces the debugger
     to trace every instruction that is executed.  This will slow down
     execution of your program by a considerable amount.

 User Action:  If you do not want execution  of  your  program  slowed
     down, then you must cancel the watchpoint.

WRITE_FAILED

 Message:  an attempt to write into a memory location failed

 Severity:  Error This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

WRITE_INTO_KERNEL

 Message:  cannot write into the debugger kernel's address space

 Severity:  Error This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

WRITE_INTO_KERNEL_STACK

 Message:  cannot write into the debugger kernel's stack

 Severity:  Error This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

ZERLENDST

 Message:  zero length DST record has been ignored (compiler error)

 Severity:  Informational

ZEROINCR

 Message:  increment for ranged examine is zero; exiting loop

 Severity:  Informational

Multiprocess

     To debug a multiprocess  program,  you  must  first  establish  a
     multiprocess debugger configuration, as explained in the subtopic
     Multiprocess_Configuration.  Other subtopics  describe  concepts,
     commands,  and  qualifiers  used in multiprocess debugging.  Type
     HELP New_Features V5.0MP for summary descriptions of commands and
     qualifiers associated with multiprocess debugging.

Additional information available:

Activation OptionsAdvanced ConceptsCommand BroadcastGlobal Section Watchpoints
Multiprocess ConfigurationProcess InformationProgram ExecutionPrompt Suffix
Screen Mode FeaturesSpecifying ProcessesTermination OptionsVisible Process

Activation Options

     You can bring a process under debugger  control  in  any  of  the
     following ways:

      o  You execute the image with the DCL RUN[/DEBUG] command.

      o  If one or  more  processes  in  the  same  job  tree  as  the
         debugging   session  are  waiting  to  be  connected  to  the
         debugger, you enter one of the following debugger commands:

          -  A command that starts execution, such as STEP.

          -  The CONNECT  command,  without  specifying  a  parameter.
             This  is  preferable  if  you  do not want the program to
             execute.  Type HELP CONNECT for more information.


      o  You enter the CONNECT command, specifying a process  that  is
         running an image.  This interrupts the execution of the image
         and brings it under debugger control.

      o  You  enter  a  CTRL/Y - DEBUG  sequence  from  DCL  level  to
         interrupt  an image that is running without debugger control.
         Type HELP CTRL-Y for more information.

      o  A  program  that  is  not  under  debugger  control   signals
         SS$_DEBUG.  Type HELP SS$_DEBUG for more information.

     An image is debuggable if it was not linked with the /NOTRACEBACK
     qualifier.   Also, full symbolic information is available only if
     the image's modules were compiled  and  linked  with  the  /DEBUG
     qualifier.

     When a process comes under debugger control, it is  initially  in
     the  "activated"  state (as indicated in a SHOW PROCESS display).
     This condition is traced by default, as if you  had  entered  the
     command  SET TRACE/ACTIVATING.  As for a one-process program, the
     debugger prompt is displayed when the first process  comes  under
     debugger  control.   This  enables you to enter debugger commands
     before the main image has started execution.

     Within a given debugging session, the debugger assigns a  process
     number  sequentially,  starting  with  process 1, to each process
     that comes under debugger control.

Advanced Concepts

     The debugging configuration (default or multiprocess) is entirely
     controlled  by  the  definition  of  DBG$PROCESS.  If some of the
     processes  in  a  job  tree   have   different   definitions   of
     DBG$PROCESS,  the  resulting  debugging configuration can be very
     confusing.  The value of DBG$PROCESS is checked when  the  kernel
     debugger is first invoked.

     Consider the following scenario:

     $ DEFINE/JOB DBG$PROCESS MULTIPROCESS
     $ RUN TEST

               VAX DEBUG X5.0-3 MP

     DBG_1> SET BREAK/ACTIVATING;GO
     break at program activation in %PROCESS_NUMBER 2
     DBG_2> SHOW PROCESS/ALL
      Number  Name          Hold  State            Current PC
          1 SMITH                 interrupted      TEST\%LINE 50
     *    2 SMITH_1               activated        SUB1\%LINE 71
     DBG_2> SPAWN DEFINE DBG$PROCESS DEFAULT
     DBG_2> SET BREAK %LINE 100;GO ! Assume that TEST creates a new process

               VAX DEBUG V5.0-3 MP

     break at %LINE 100 in %PROCESS_NUMBER 2
     DBG> SHOW PROCESS/ALL
      Number  Name          Hold  State            Current PC
     *    3 SMITH_2               activated        MYPROG\%LINE 10
     DBG_2> SHOW PROCESS/ALL
      Number  Name          Hold  State            Current PC
          1 SMITH                 interrupted      TEST\%LINE 50
     *    2 SMITH_1               break            SUB1\%LINE 100
     DBG>

     The VMS job tree at this point is  symbolized  in  the  following
     figure,  which  shows  a  mixed separate-process and multiprocess
     configuration:

                            SMITH
                           +--------+
                           | TEST   |
                          /|--------|\
               SMITH_1   / |kernel  | \ SMITH_2
               +--------+  |debugger|  +--------+
               |  SUB1  |  +--------+  | SUB2   |
               |--------|      |       |--------|
               |kernel  |      |       |kernel  |
               |debugger|      |       |debugger|
               +--------+      |       +--------+
                   |           |           |
                 +--------------+      +--------+
                 |     main     |      |main    |
                 |   debugger   |      |debugger|
                 +--------------+      +--------+

Command Broadcast

     By default, process-specific commands are executed in the context
     of  the  visible  process.  The DO command enables you to execute
     commands in the  context  of  one  or  more  processes  that  are
     currently  under  debugger  control.  This is also referred to as
     "broadcasting" commands to processes.

     Use the DO command without a qualifier to execute commands in the
     context  of  all  of  the  processes.  For example, the following
     command executes the SHOW CALLS command for  all  processes  that
     are  currently under debugger control (processes 1 and 2, in this
     case):

       DBG_1> DO (SHOW CALLS)
       For %PROCESS_NUMBER 1
          module name     routine name       line       rel PC    abs PC
         *MAIN_PROG       MAIN_PROG            21      0000001E  0000041E
       For %PROCESS_NUMBER 2
          module name     routine name       line       rel PC    abs PC
         *TEST            TEST                1+2      0000000B  0000040B
     As indicated in this example, the debugger identifies the process
     associated with any debugger output.

     Use the DO  command  with  the  /PROCESS=  qualifier  to  execute
     commands  in the context of specific processes.  For example, the
     following command executes the  commands  SET  MODULE  START  and
     EXAMINE X in the context of process 2:

       DBG_1> DO/PROCESS=(%PROC 2) (SET MODULE START; EXAMINE X)

Global Section Watchpoints

     You can set watchpoints in global sections.  A global section  is
     a  region of virtual memory that is shared among all processes of
     a multiprocess program.  A watchpoint that is set on  a  location
     in  a  global section (a global section watchpoint) triggers when
     any process modifies the contents of that location.

     Note  that,  when  setting  watchpoints  on  arrays  or  records,
     performance is improved if you specify individual elements rather
     than the entire structure with the SET WATCH command.

     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.  For example:

       DBG_1> SET WATCH ARR(1)
       DBG_1> SHOW WATCH
       watchpoint of PPL3\ARR(1)

     When  ARR  is  subsequently  mapped  to  a  global  section,  the
     watchpoint   is   automatically   treated  as  a  global  section
     watchpoint and an informational message is issued.  For example:

       DBG_1> GO
       %DEBUG-I-WATVARNOWGBL, watched variable PPL3\ARR(1) has been remapped
               to a global section
       predefined trace on activation at routine PPL3 in %PROCESS_NUMBER 2
            1:         PROGRAM PPL3
       predefined trace on activation at routine PPL3 in %PROCESS_NUMBER 3
            1:         PROGRAM PPL3
       watch of PPL3\ARR(1) at PPL3\%LINE 93 in %PROCESS_NUMBER 2
           93:             ARR(1) = INDEX
          old value: 0
          new value: 1
       break at PPL3\%LINE 94 in %PROCESS_NUMBER 2
           94:              ARR(I) = I

     Once the watched location is mapped  to  a  global  section,  the
     watchpoint is visible from each process.  For example:

       DBG_2> DO (SHOW WATCH)
       For %PROCESS_NUMBER 1
         watchpoint of PPL3\ARR(1) [global-section watchpoint]
       For %PROCESS_NUMBER 2
         watchpoint of PPL3\ARR(1) [global-section watchpoint]
       For %PROCESS_NUMBER 3
         watchpoint of PPL3\ARR(1) [global-section watchpoint]

Multiprocess Configuration

     The multiprocess configuration enables one debugging  session  to
     communicate with and control images running in several processes.
     To establish the multiprocess configuration, enter the  following
     command before invoking the debugger:

        $ DEFINE/JOB DBG$PROCESS MULTIPROCESS

     Use the /JOB qualifier to make the logical definition  job  wide.
     This  ensures that any subprocesses that are created (spawned) by
     the program being  debugged  can  be  controlled  from  the  same
     debugging  session.   The  debugging  configuration  (default  or
     multiprocess)  depends  only  on  the   current   definition   of
     DBG$PROCESS.   It  does  not  depend on whether a program runs in
     more than one process.

     Type HELP Debugging_Configurations for more information.

Additional information available:

Example

Example

        $ DEFINE/JOB DBG$PROCESS MULTIPROCESS
        $ RUN PROG1
          ...
        DBG_1>

     The   DEFINE/JOB    command    establishes    the    multiprocess
     configuration.   This  is  demonstrated  by  the process-specific
     prompt suffix,  "_1",  which  is  displayed  initially  when  the
     debugger  is  invoked with the RUN command.  The suffix indicates
     that execution is suspended in process 1, the first process  that
     was  brought  under debugger control.  Process 1 is currently the
     visible process -- the  context  for  executing  process-specific
     commands like STEP and EXAMINE.

Process Information

     The SHOW PROCESS command enables you to obtain information  about
     any  processes that are currently under control of your debugging
     session.  If you do not specify a process, the  command  displays
     information  about  the  visible process.  Type HELP SHOW PROCESS
     for  complete  information  about  the  command,  including   the
     possible process states identified in a SHOW PROCESS display.

Program Execution

     When you enter a command that starts program execution,  such  as
     STEP or GO, the command is executed in the context of the visible
     process.   However,  images  in  any   other   unheld   processes
     (processes  that  have  not  been  placed  on  hold  with  a  SET
     PROCESS/HOLD command) are also allowed to execute.  Similarly, if
     you  use the DO command to broadcast a command to start execution
     in one or more processes, the command is executed in the  context
     of  each specified unheld process, but images in any other unheld
     processes are also allowed to execute.   In  all  cases,  a  hold
     condition   is   ignored   in  the  visible  process.   (See  the
     Holding_Processes subtopic for additional information  about  the
     behavior of processes when on hold.)

     Once execution is started, the way in which it continues  depends
     on  whether  the  command SET MODE [NO]INTERRUPT was entered.  By
     default (SET MODE INTERRUPT), execution  continues  until  it  is
     suspended   in   any   process.   At  that  point,  execution  is
     interrupted in any other processes that  were  executing  images,
     and the debugger prompts for input.

Additional information available:

SET_MODE_NOINTERRUPT

Holding Processes

Holding Processes

     A command that starts execution is executed in the context of the
     visible  process,  but it also causes execution to start in other
     processes.  If you want to inhibit execution in a process, put it
     on  hold.   For  example,  the following SET PROCESS/HOLD command
     puts process 2 on hold.  The subsequent STEP command is  executed
     in the context of process 1, the visible process.  Execution also
     starts in any other processes that are not on hold,  but  not  in
     process 2:

       DBG_1> SET PROCESS/HOLD %PROC 2
       DBG_1> STEP

     A SHOW PROCESS display indicates whether a process  is  on  hold.
     For example:

       DBG_1> SHOW PROCESS/ALL
        Number  Name          Hold  State            Current PC
       *    1 JONES                 step             MAIN_PROG\%LINE 24
            2 JONES_1         HOLD  interrupted      TEST\%LINE 3+1
       DBG_1>

     To "unhold" a process,  enter  the  command  SET  PROCESS/NOHOLD,
     specifying  the  process  that  you  want  released from the hold
     condition.

     Note that a hold condition is ignored  in  the  visible  process.
     Therefore,  the  command SET PROCESS/HOLD/ALL is a convenient way
     to confine execution to the visible process.   In  the  following
     example, execution starts only in the visible process:

       DBG_1> SET PROCESS/HOLD/ALL
       DBG_1> STEP

     This feature is useful if, for example, you want to use the  CALL
     command  to  execute  a  dump  routine  that  is  not part of the
     execution stream of your program.

     The preceeding discussions also apply if you use the  DO  command
     to  broadcast  a  GO, STEP, or CALL command to several processes.
     The GO, STEP or CALL command is executed in the context  of  each
     specified  unheld process, and execution also starts in any other
     unheld process.  The following example illustrates the  execution
     behavior  when  all processes are placed on hold and commands are
     broadcast to all processes.  Execution starts only in the visible
     process (process 1, in this example):

       DBG_1> SET PROCESS/HOLD/ALL
       DBG_1> DO (EXAMINE X; STEP)
       For %PROCESS_NUMBER 1
         MAIN_PROG\X:    78
       For %PROCESS_NUMBER 2
         TEST\X:    29
       stepped to MAIN_PROG\%LINE 26 in %PROCESS_NUMBER 1
       26:     K = K + 1
       DBG_1>

SET_MODE_NOINTERRUPT

     The command SET MODE NOINTERRUPT provides an alternative mode  of
     execution  to  the  default  mode (SET MODE INTERRUPT).  SET MODE
     NOINTERRUPT allows execution to continue without interruption  in
     other  processes  when  it is suspended in some process.  This is
     especially useful if, for example, you want to broadcast  a  STEP
     command  to  several  processes  with the DO command and complete
     execution of the STEP in all these processes.  For example:

       DBG_1> SET MODE NOINTERRUPT
       DBG_1> DO (STEP)

     In this example, the DO command executes the STEP command in  the
     context  of  all processes currently under debugger control.  The
     visible process and any other unheld processes  start  execution.
     Because  the command SET MODE NOINTERRUPT was entered, the prompt
     is displayed only after the STEP has completed (or execution  has
     been  otherwise  suspended  at a breakpoint or watchpoint) in all
     processes.

     When SET MODE NOINTERRUPT is in  effect,  as  long  as  execution
     continues  in one or more processes, the debugger does not prompt
     for input.  In such cases, use CTRL/C to interrupt all  processes
     and display the prompt.

     Type HELP SET MODE NOINTERRUPT for more information.

Prompt Suffix

     In a multiprocess  configuration,  "dynamic  prompt  setting"  is
     enabled   by   default.    This  means  that  the  prompt  has  a
     process-specific suffix that indicates the process number of  the
     visible   process.    The   debugger  assigns  a  process  number
     sequentially, starting with process 1, to each process that comes
     under debugger control within a given debugging session.

     Dynamic prompt setting, as well as  the  process-specific  prompt
     suffix  are  controlled  by  the  command  SET PROMPT/[NO]SUFFIX.
     Unless dynamic prompt setting is disabled (SET  PROMPT/NOSUFFIX),
     the debugger prompt always identifies the visible process.

Screen Mode Features

     Screen mode displays, whether predefined  or  user  defined,  are
     associated  with  the  visible process, by default.  For example,
     SRC shows the source code where execution  is  suspended  in  the
     visible process, OUT shows the output of commands executed in the
     context of the visible process, and so on.

     By using the /PROCESS qualifier with the SET DISPLAY and  DISPLAY
     commands   you  can  create  process-specific  displays  or  make
     existing displays process specific, respectively.   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  for  the  PROMPT  display.   For  example,  the
     following  command  creates  the  automatically  updated   source
     display  SRC_3,  which  shows  the source code where execution is
     suspended in process 3:

       DBG_2> SET DISPLAY/PROCESS=(%PROC 3) SRC_3 AT RS23 -
                           SOURCE (EXAM/SOURCE .%SOURCE_SCOPE\%PC)

     You  assign  attributes  to  process-specific  displays  as   for
     displays  that are not.  For example, the following command makes
     display SRC_3 the current scrolling and source  display  --  that
     is,  the  output of SCROLL, TYPE, and EXAMINE/SOURCE commands are
     then directed at SRC_ 3:

       DBG_2> SELECT/SCROLL/SOURCE SRC_3

     If you enter a DISPLAY/PROCESS  or  SET  DISPLAY/PROCESS  command
     without  specifying  a  process,  the  specified  display is then
     specific to the process that was the  visible  process  when  you
     entered  the  command.   For example, the following command makes
     OUT_X specific to process 2:

       DBG_2> DISPLAY/PROCESS OUT_X

     The /SUFFIX qualifier appends a process identifying  suffix  that
     denotes  the  visible  process to a display name.  This qualifier
     may be used directly after a display name  in  any  command  that
     specifies  a  display  (for example, SET DISPLAY, EXTRACT, SAVE).
     It is especially useful within command procedures, in conjunction
     with  display  definitions or with key definitions that are bound
     to display definitions.

     In a multiprocess configuration,  the  predefined  tracepoint  on
     process activation automatically creates a new source display and
     a new instruction display for each new process that  comes  under
     debugger  control.  The displays have the names SRC_n and INST_n,
     respectively, where n is the process number.  These processes are
     initially  marked as removed.  They are automatically canceled by
     the predefined tracepoint on process termination.

Additional information available:

Keypad Definitions

Keypad Definitions

     Several predefined keypad key sequences enable you  to  configure
     your  screen  with  the  process-specific  source and instruction
     displays  that  are  created  automatically  when  a  process  is
     activated.   The  following  table identifies the relevant keypad
     keys and their general effect.   Use  the  SHOW  KEY  command  to
     determine the exact commands issued by these key combinations.

       Key:     State:    Command_Invoked_or_Function:

       KP9      GOLD   SET PROCESS/VISIBLE %NEXT_PROCESS.
                       Makes the next process in the process
                       list the visible process.

       KP9      BLUE   Displays two predefined process-
                       specific source displays, SRC_n.
                       These are located at Q1 and Q2,
                       respectively, for the visible process
                       and for the next process on the
                       process list.

       KP7      BLUE   Displays two sets of predefined
                       process-specific source and
                       instruction displays, SRC_n and
                       INST_n. These consist of source and
                       instruction displays for the visible
                       process at Q1 and RQ1, respectively,
                       and source and instruction displays
                       for the next process on the process
                       list at Q2 and RQ2, respectively.

       KP3      BLUE   Displays three predefined process-
                       specific source displays, SRC_n.
                       These are located at S1, S2, and
                       S3, respectively, for the previous,
                       current (visible), and next process on
                       the process list.

       KP1      BLUE   Displays three sets of predefined
                       process-specific source and
                       instruction displays, SRC_n and
                       INST_n. These consist of source and
                       instruction displays for the visible
                       process at S2 and RS2, respectively;
                       source and instruction displays for
                       the previous process on the process
                       list at S1 and RS1, respectively; and
                       source and instruction displays for
                       the next process on the process list
                       at S3 and RS3, respectively.

Specifying Processes

     When specifying processes in debugger commands, you can  use  any
     of   the  forms  listed  in  the  following  table,  except  when
     specifying processes with the CONNECT command.

     The CONNECT command is used to bring a process that  is  not  yet
     known  to  the  debugger under debugger control.  Therefore, when
     specifying a process with the CONNECT command, you can  use  only
     its  VMS  process  name or VMS process identification (PID).  You
     cannot use its (debugger) process number or any  of  the  process
     built-in symbols (for example, %NEXT_PROCESS).

       [%PROCESS_NAME] process-name    The VMS process name, if that
                                       name contains no spaces or
                                       lowercase characters[1].

       [%PROCESS_NAME] "process-name"  The VMS process name, if that
                                       name contains spaces or lowercase
                                       characters. You can also use
                                       apostrophes (') instead of
                                       quotation marks (").

       %PROCESS_PID process_id         The VMS process identification
                                       number (PID, a hexadecimal number).

       %PROCESS_NUMBER process-number  The number assigned to a process
       (or %PROC process-number)       when it comes under debugger control.
                                       A new number is assigned sequentially
                                       starting with 1, to each process.
                                       If a process is released from debug-
                                       ger control (with the EXIT or QUIT
                                       command), the number is not reused
                                       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-group-name              A symbol defined with the
                                       DEFINE/PROCESS_GROUP command to
                                       represent a group of processes.

       %NEXT_PROCESS                   The next process in the debugger's
                                       circular process list after the
                                       visible process.

       %PREVIOUS_PROCESS               The previous process in the
                                       debugger's circular process list
                                       before the visible process.

       %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.
       _______________________________________________________
       [1]The process name can include the asterisk wildcard
       character (*)

     You can omit the  %PROCESS_NAME  built-in  symbol  when  entering
     commands.  For example:

       DBG_2> SHOW PROCESS %PROC 2, JONES_3

     You can define  a  symbol  to  represent  a  group  of  processes
     (DEFINE/PROCESS_GROUP).   This  enables  you to enter commands in
     abbreviated form.  For example:

       DBG_1> DEFINE/PROCESS_GROUP SERVERS=FILE_SERVER, NETWORK_SERVER
       DBG_1> SHOW PROCESS SERVERS

        Number  Name          Hold  State            Current PC
       *    1 FILE_SERVER           step             FS_PROG\%LINE 37
            2 NETWORK_SERVER        break            NET_PROG\%LINE 24

     The  built-in  symbols   %VISIBLE_PROCESS,   %NEXT_PROCESS,   and
     %PREVIOUS_PROCESS  are  useful  in control structures (IF, WHILE,
     REPEAT, and so on) and in command procedures.

Termination Options

     When the main image of a process runs to completion, the  process
     goes  into  the  "terminated" debugging state.  This condition is
     traced by  default,  as  if  you  had  entered  the  command  SET
     TRACE/TERMINATING.

     When a process is in the terminated state, it is still  known  to
     the  debugger and appears in a SHOW PROCESS/ALL display.  You can
     enter commands to examine variables, and so on.   When  the  last
     image  of  the  program  exits,  the  debugger  gains control and
     displays its prompt.

     To end the entire debugging session, use the EXIT or QUIT command
     without  specifying  any parameters.  When you do not specify any
     parameters, the behavior of EXIT and QUIT is analogous  to  their
     behavior  for  the default debugging configuration (QUIT does not
     execute any user-declared exit handlers).

     To release  selected  processes  from  debugger  control  without
     ending  the  debugging  session,  use  the EXIT or QUIT commands,
     specifying one or more processes to be  released.   For  example,
     the  following command terminates the image running in process 2,
     and releases the process from debugger control:

       DBG_3> EXIT %PROC 2
       DBG_3>

     Subsequently, process  2  does  not  appear  in  a  SHOW  PROCESS
     display.  Type HELP EXIT and HELP QUIT for more information.

Visible Process

     The visible process is the process that is  the  default  context
     for issuing process-specific commands.  Process-specific commands
     are those that start execution (STEP, GO, and so  on)  and  those
     used  for looking up symbols, setting breakpoints, looking at the
     call stack and registers, and  so  on.   Commands  that  are  not
     process  specific  are those that do not depend on the mapping of
     virtual  memory  but,  rather,  affect   the   entire   debugging
     environment -- for example, keypad mode and screen mode commands.

     Unless dynamic prompt setting is disabled (SET  PROMPT/NOSUFFIX),
     the  debugger prompt suffix always identifies the visible process
     (for example, DBG_1>).  The SET PROMPT command  provides  several
     options for tailoring the prompt-string prefix and suffix to your
     needs.

     When you invoke the debugger, the visible process  is  the  first
     process  that  comes  under  debugger control, namely the process
     running the main program.  Within a given debugging session,  the
     debugger  assigns  a  process  number sequentially, starting with
     process 1, to each process that comes under debugger control.

Additional information available:

SET_PROCESS

Dynamic Process Setting

Dynamic Process Setting

     By  default,  "dynamic   process   setting"   is   enabled   (SET
     PROCESS/DYNAMIC).   As a result, whenever the debugger interrupts
     execution and displays its prompt, the process in which execution
     is  suspended becomes the visible process automatically.  Dynamic
     process setting occurs  in  the  following  situations:   when  a
     breakpoint or watchpoint is triggered, at an exception condition,
     on the completion of a STEP command, or  when  the  last  process
     performs  an  image exit.  Dynamic process setting is illustrated
     in the following example, which also illustrates  dynamic  prompt
     setting:

       DBG_1> SHOW PROCESS/ALL
        Number  Name          Hold  State            Current PC
       *    1 JONES                 step             MAIN_PROG\%LINE 22
            2 JONES_1               interrupted      TEST\%LINE 4
       DBG_1> DO/PROCESS=(%PROC 2) (SET BREAK %LINE 11)
       DBG_1> GO
       break at TEST\%LINE 11 in %PROCESS_NUMBER 2
       DBG_2> SHOW PROCESS/ALL
        Number  Name          Hold  State            Current PC
            1 JONES                 interrupted      MAIN_PROG\%LINE 28
       *    2 JONES_1               break            TEST\%LINE 11
       DBG_2>

     In this example, initially process 1 is the visible  process,  as
     indicated by the prompt suffix and the SHOW PROCESS display.  The
     DO command sets  a  breakpoint  in  the  context  of  process  2.
     Execution  is resumed with the GO command and is suspended at the
     breakpoint in process 2.  Process 2 is now the  visible  process,
     as indicated by the prompt suffix and the SHOW PROCESS display.

     When dynamic process setting is disabled (SET PROCESS/NODYNAMIC),
     the  visible  process remains unchanged until you specify another
     process with the SET PROCESS/VISIBLE command.

     If you have entered the command SET  MODE  NOINTERRUPT  and  then
     started  execution  in several processes with the DO command, the
     prompt is displayed only after execution has  been  suspended  in
     all  processes.   In  this  case,  the  visible  process  remains
     unchanged, unless the last process performs an  image  exit  (and
     thereby becomes the visible process).

SET_PROCESS

     Use the SET PROCESS command (with the default /VISIBLE qualifier)
     to  establish  another  process  as  the  visible  process.   For
     example, the following SET PROCESS command makes  process  2  the
     visible process:

       DBG_1> SET PROCESS %PROC 2
       DBG_2>

     In this example, because dynamic prompt  setting  is  enabled  by
     default,  the  SET  PROCESS  command  has  also caused the prompt
     string suffix to change.  It now indicates that process 2 is  the
     visible  process.  All process-specific commands are now executed
     in the context of process 2.

New Features

Additional information available:

V4.2V4.4V4.6V5.0V5.0MP

V4.2

     This section points out which features and commands  are  new  in
     version  4.2  of  the  debugger.   These are documented in detail
     elsewhere in this help library:

     Ada language support. See help on LANGUAGE ADA.
     Aggregate watchpoints. See help on SET WATCH aggregate.
     Dynamic module setting. See help on SET MODE DYNAMIC.
     Enable and Disable AST. See help on ENABLE and DISABLE.
     Exception lexicals. See help on "Lexical %EXC".
     Exit handlers. See help on SHOW EXIT_HANDLERS.
     Instruction display. See help on "Screen Instruction-display".
     Large terminal support. See help on SET TERMINAL.
     Noline mode. See help on SET MODE NOLINE.
     Parameters to SHOW MODULE. See help on SHOW MODULE Parameters.
     Scroll mode. See help on SET MODE SCROLL.
     Setting the debugger prompt. See help on SET PROMPT.
     %SOURCE_SCOPE. See help under "Screen Source-display".

V4.4

     This section points out which features and commands  are  new  in
     version 4.4 of the debugger.

     DIBOL language support. See help on "Language DIBOL".
     DISPLAY/[NO]POP and DISPLAY/[NO]PUSH.
     EXAMINE/TYPE
     New screen windows. See help on "Screen_Features Windows".
     Scan language support. See help on "Language SCAN".
     Scope default of 0,1,2,3,...N. See help on "SET SCOPE Default".
     SELECT/INPUT, SELECT/ERROR, SELECT/PROGRAM.
     SET ATSIGN and SHOW ATSIGN.
     SET EDITOR and SHOW EDITOR.
     Shareable Image support. See the "Shareable_Image" subtopic.
     SHOW STACK
     SS$_DEBUG signal parameters. See help on "SS$_DEBUG".
     STEP/[NO]JSB and STEP/[NO]SHARE.

     There are also various new screen features that are discussed  in
     the subtopics:

Additional information available:

Display AttributesExtracting DisplaysKey DefinitionsMoving Displays
PROMPT DisplayResizing DisplaysVertically Divided Windows
Shareable ImagesWindow Definitions

Display Attributes

     In addition to the attributes INSTRUCTION,  OUTPUT,  SCROLL,  and
     SOURCE, the debugger now provides the following attributes, which
     are also selected with the SELECT command:

          ERROR ---  A  display  with  the  ERROR  attribute  displays
          debugger diagnostic messages.

          INPUT --- A display with the  INPUT  attribute  echoes  your
          debugger input.

          PROGRAM --- A display with the  PROGRAM  attribute  displays
          program  output.   Currently, only the new predefined PROMPT
          display can have the PROGRAM attribute.

          PROMPT --- A display with the PROMPT attribute is where  the
          debugger   prompts  for  input.   Currently,  only  the  new
          predefined PROMPT display can have the PROMPT attribute.

     For example, the following command causes  your  input,  debugger
     output,  and debugger diagnostic messages to be logged in the OUT
     display in the proper sequence:

          DBG> SELECT/INPUT/ERROR OUT

     Type HELP Screen_Features Display_Attributes for  information  on
     assigning display attributes.

Extracting Displays

     You can now save screen displays into a file, or  create  a  file
     with all the debugger commands necessary to re-create the current
     screen  state  at  a  later  time.   Type  HELP  EXTRACT  for   a
     description of the EXTRACT command.

Key Definitions

     The default definitions for keypad keys KP7 and MINUS  have  been
     changed  to  accommodate changes in predefined display and window
     definitions.  The new definitions are as follows:

     KP7        = DISPLAY SRC AT LH1, INST AT RH1, OUT AT S45,PROMPT AT S6
     GOLD KP7   = DISPLAY INST AT LH1, REG AT RH1, OUT AT S45,PROMPT AT S6
     BLUE KP7   = Not defined
     MINUS      = DISPLAY %NEXTDISP AT S12345
     GOLD MINUS = Not defined
     BLUE MINUS = DISPLAY SRC AT H1, OUT AT S45, PROMPT AT S6 (this is the default)

     See the "Window_Definitions" sub-topic for  more  information  on
     the new windows.

Moving Displays

     You can move a display vertically and/or horizontally across  the
     screen  by  means  of  the  MOVE  command.   Type HELP MOVE for a
     description of the MOVE command.

PROMPT Display

     There is a new  PROMPT  predefined  display  where  the  debugger
     prompts for input, forces program output, and (by default) prints
     debugger diagnostic messages.  By default,  PROMPT  occupies  the
     bottom  sixth  of  the  screen  (the predefined window S6).  On a
     VT100 or VT200 series terminal, S6 includes lines 21 through 24.

     The PROMPT display is of the new display kind "PROGRAM".   PROMPT
     is  the  only display of that kind (no other PROGRAM displays can
     be created).  Note that, compared to other displays,  PROMPT  has
     several  restrictions.   To  eliminate  possible  confusion  when
     manipulating that display:

      o  PROMPT can never be hidden by another display.  It is  always
         on top of the display "pasteboard".

      o  PROMPT can be moved anywhere on the screen, expanded to  fill
         the  full  screen  height, and shrunk down to two lines.  But
         PROMPT must always occupy the full width of the  screen  and,
         therefore,   can   not   be   moved,   expanded,   or  shrunk
         horizontally.


     Type HELP Screen_Features Display_Attributes for  information  on
     assigning  display  attributes to various displays, including the
     PROMPT display.

Resizing Displays

     You can expand and contract  displays  by  means  of  the  EXPAND
     command.   Type  HELP  EXPAND  for  a  description  of the EXPAND
     command.

Vertically Divided Windows

     Previously, display windows had to occupy the full width  of  the
     screen (columns 1-80).  Now, windows can be defined to occupy any
     rectangular region of the screen.  Windows occupying the left  or
     right  half  of the screen (columns 1-40 and 42-80, respectively)
     are predefined.  With these predefined  displays,  column  41  is
     reserved as a border.

     To observe the effect, invoke the debugger, use the  command  SET
     MODE  SCREEN, then press keypad key 7 (KP7).  That key definition
     has been changed to show the SRC display in the top left half  of
     the  screen  (LH1), the INST display in the top right half (RH1),
     the OUT display under these two, and the new PROMPT display under
     OUT.

Shareable Images

     With version 4.4 of the debugger, you can debug shareable  images
     in  the  same  way  as  you debug your main image.  That is, full
     symbol table information is now available for shareable images.

     To build a shareable image with symbol table, you  would  compile
     your  modules  with the /DEBUG qualifier, and then link the image
     with the /SHARE and /DEBUG qualifiers.  For example:
     $ LINK/SHARE/DEBUG FOO

     Then, once you have run your main program with the debugger,  you
     can load the symbol table information for the shareable image FOO
     using the command:
     DBG> SET IMAGE FOO

     See the individual help topics for information  on  the  commands
     "SET IMAGE", "CANCEL IMAGE", and "SHOW IMAGE".

Window Definitions

     Previously, the bottom sixth of the  screen  (lines  21-24  on  a
     VT100  or  VT200  series terminal) could not be used for defining
     display windows.  That area was reserved for the debugger prompt,
     debugger  diagnostic messages, and program output.  Also, windows
     had to occupy the full width of the screen.

     Now, windows can be defined to occupy any rectangular  region  of
     the  screen.   The  SET WINDOW, SET DISPLAY, and DISPLAY commands
     now  accept  horizontal  (column)  as  well  as  vertical  (line)
     coordinates.   The  general  form  of  a  window specification is
     illustrated for the SET WINDOW command:
          SET WINDOW wname AT (start-line,line-count
                                 [,start-column,column-count])

     Type "HELP SET WINDOW", "HELP SET DISPLAY",  and  "HELP  DISPLAY"
     for more information.

     Old and new default  windows  have  been  defined  to  cover  the
     greater  usable  screen  height  and  to  account  for vertically
     defined windows.   For  example,  on  a  VT100  or  VT200  series
     terminal,  FS (full screen) now covers lines 1-24, H1 lines 1-12,
     H2 lines 13-24, and so on.  A new symbol  prefix,  S,  denotes  a
     multiple  of  one  sixth  of the screen.  For example, S56 is the
     bottom two sixths of the screen.  And for each of the  full-width
     predefined windows (for example, FS, H2, T12, Q3, S45, and so on)
     there is also a left-half and  a  right-half  predefined  window.
     These  window  names  have  the  prefix  L  and  R, respectively.
     Examples of predefined windows follow:

          Window   Location
          Name     (start-line,line-count,start-column,column-count)

          FS       (1,23,1,80)
          LFS      (1,23,1,40)
          RH1      (1,11,42,39)
          LH2      (13,11,1,40)
          LT12     (1,15,1,40)
          Q234     (7,17,1,80)
          RS56     (17,7,42,39)

V4.6

     This section points out which features and commands  are  new  in
     version 4.6 of the debugger.

     ADA Predefined Breakpoints
     Call from exception break.
     Nonstatic watchpoints.
     Step from exception break.

     See the subtopics for details.

Additional information available:

ADA-Predefined-BreakpointsCall-Exception-BreakNonstatic-Watchpoints
Step-Exception-Break

ADA-Predefined-Breakpoints

     If any portion of your program is written in the ADA  programming
     language,  then  two breakpoints are automatically established on
     Debugger  startup.   These  breakpoints   are   on   ADA   Events
     "Dependents_Exception" and "Exceptions_Terminated".  Whenever you
     perform  the  "SHOW  BREAK"  command,   these   breakpoints   are
     displayed.

Call-Exception-Break

     Prior to version 4.6, the debugger did not allow you to CALL from
     an  exception  break.   The  CALL  command is now allowed in this
     situation.  For example:

     Earlier versions of DEBUG:

     DBG> SET BREAK/EXC
     DBG> GO
     %SYSTEM-F-ACCVIO, access violation, ...
     break on exception preceding BLIHANDLER\SUBR\%LINE 38
         38: a = ..a;
     DBG> CALL PRIME(7)
     %DEBUG-W-STEFROEXC, call from exception break is not allowed

     Version 4.6 of DEBUG:

     DBG> SET BREAK/EXC
     DBG> GO
     %SYSTEM-F-ACCVIO, access violation, ...
     break on exception preceding BLIHANDLER\SUBR\%LINE 38
         38: a = ..a;
     DBG> CALL PRIME(7)
     value returned is 00000001

     There are some restrictions associated with issuing a  CALL  from
     an   exception   breakpoint:    Breakpoints,   tracepoints,   and
     watchpoints  are  not  triggered  within  the   CALLed   routine.
     (Normally,  you  could set a breakpoint within a routine, call it
     with the CALL command, and break within the routine).  But  since
     most  people  use  CALL  to  call  their own dumping or debugging
     routines, they do not want to  set  breakpoints  in  the  dumping
     routine, and this restriction does not matter.

Nonstatic-Watchpoints

     Starting with version 4.6, it is possible to set  watchpoints  on
     variables  which  are on the stack or allocated to registers.  To
     implement  these  watchpoints  the  debugger  must  trace   every
     instruction.  (Watchpoints of static variables are implemented by
     write-protecting the page and  catching  the  access  violation).
     Therefore, watches of stack or register variables are slower than
     watches of static variables.

     When you set a watchpoint, the debugger  determines  whether  the
     watched  location  is  a  stack  location or register, and if so,
     gives an informational that you are setting a stack  or  register
     watchpoint.  The information is also displayed on SHOW WATCH:

     DBG> SET WATCH I
     %DEBUG-I-WPTTRACE, non-static watchpoint, tracing every instruction
     DBG> SHOW WATCH
     watchpoint of EIGHTQUEENS\TRYCOL\I [tracing every instruction]

     The watchpoint then operates like any other watchpoint, e.g:

     DBG> GO
     watch of EIGHTQUEENS\TRYCOL\I at EIGHTQUEENS\TRYCOL\%LINE 46
         46:       i := i + 1 ;
        old value: 0
        new value: 1

     Since you are  watching  a  variable  local  to  a  routine,  the
     watchpoint  is  automatically  cancelled when you return from the
     routine:

     DBG> STEP/RETURN
     stepped on return from routine EIGHTQUEENS\TRYCOL
         59: end ; (* trycol *)
     DBG> STEP
     stepped to EIGHTQUEENS\%LINE 69
         69:    writeln ;
     %DEBUG-I-WATCHVAR, watched variable TRYCOL\I has gone out of scope
     %DEBUG-I-WATCHCAN, watchpoint now cancelled

     For  a  recursive  routine,  it  is  possible  to  have  separate
     watchpoints   for  the  same  variable  at  different  levels  of
     recursion.  For example, in the  above  example,  if  TRYCOL  was
     recursive,  you could have watchpoints of TRYCOL 0\I, TRYCOL 1\I,
     and so on.

     For more  information  see  the  help  on  SET  WATCH,  subtopics
     /STATIC, /NOSTATIC, /INTO, and /OVER.

Step-Exception-Break

     Prior to version 4.6, the debugger would not allow  you  to  STEP
     from  an  exception  break.   Now, the STEP command is allowed in
     this situation, and the effect is that you step to the  start  of
     whatever  exception  handler  gets  control.   If  you  have  not
     declared any exception  handlers,  then  the  exception  is  just
     resignalled, and you end up back at the debugger prompt (that is,
     the STEP has no effect).  Here is an example:

     Earlier versions of DEBUG:

     DBG> SET BREAK/EXC
     DBG> GO
     %SYSTEM-F-ACCVIO, access violation, ...
     break on exception preceding BLIHANDLER\SUBR\%LINE 38
         38: a = ..a;
     DBG> STEP
     %DEBUG-W-STEFROEXC, step from exception break is not allowed

     Version 4.6:

     DBG> SET BREAK/EXC
     DBG> GO
     %SYSTEM-F-ACCVIO, access violation...
     break on exception preceding BLIHANDLER\SUBR\%LINE 38
         38: a = ..a;
     DBG> EX .FP  ! Check for a handler
     7FF00D68:       00000400
     DBG> EX ..   ! See what the handler is
     BLIHANDLER\HANDLER1:    entry mask ^M<R2,R3>
     DBG> STEP    ! STEP to the handler
     stepped to routine BLIHANDLER\HANDLER1

V5.0

     The new features and commands for V5.0 of  the  debugger  are  as
     follows:

     Dynamically reformatting register display
     EXAMINE/OPERANDS (and SET MODE [NO]OPERANDS)
     MACRO support enhancements
     New predefined windows for screen mode
     SET MODULE/CALLS
     SET PROMPT/[NO]POP
     SET MODE [NO]SEPARATE
     SPAWN/INPUT and /OUTPUT

     See the subtopics for details.

Additional information available:

SET_MODE_SEPARATESET_PROMPT

Dynamic Register DisplayEXAMINE OPERANDS QualifierMACRO Support
Screen Mode WindowsSET MODULE CALLS QualifierSPAWN qualifiers

Dynamic Register Display

     Register displays, such as the predefined display  REG,  are  now
     dynamic by default.  This means that the window dimensions adjust
     proportionally when you change the screen height or width with  a
     SET TERMINAL command.

     Also, a register display now reformats the displayed information,
     in  the  best  way  possible,  to the window in which it has been
     displayed.  The default window for REG remains RH1.  However,  if
     you   were  to  display  REG  in  window  Q3,  for  example,  the
     information would reformat automatically  to  fit  into  the  new
     window.

     Type HELP Screen_Features Register_Display for more information.

EXAMINE OPERANDS Qualifier

     In order to aid in debugging MACRO code,  a  /OPERANDS  qualifier
     has  been  added  to  the  EXAMINE  command.   If  you examine an
     instruction with  the  /OPERANDS  qualifier,  then  the  debugger
     displays  the  addresses  and contents of each of the instruction
     operands.  For example,

     DBG> EXAM/OPER .PC
     X\X$START+0C:   MOVL    B^04(R4),R7
          B^04(R4)   X\X$START\K (address 00001058) contains 00000016
          R7         R7 contains 00000000

     Type HELP EXAMINE/OPERANDS,  SET  MODE  OPERANDS,  and  SET  MODE
     NOOPERANDS for more information.

MACRO Support

     The following enhancements have been made to  MACRO  support,  to
     match the support available with other languages.

     The debugger now displays MACRO source  lines,  whether  you  are
     debugging in line mode or screen mode.

     Therefore, when  the  language  is  set  to  MACRO,  the  default
     behavior   of   the   STEP   command   is   now   STEP/LINE  (not
     STEP/INSTRUCTION, the previous behavior).

     When the language is set to MACRO,  the  debugger  interprets  an
     address  expression  used in a language expression as the current
     value stored at that address (not  the  address  denoted  by  the
     address  expression, the previous behavior).  This change affects
     how language expressions are evaluated by the commands  EVALUATE,
     DEPOSIT,  IF, FOR, REPEAT, and WHILE, and by WHEN clauses as used
     with the commands SET BREAK,  SET  TRACE,  and  SET  WATCH.   For
     example, the command DEPOSIT X = Y + 2 evaluates the sum of 2 and
     the current value of Y and deposits the resulting value into X.

     See also HELP LANGUAGE MACRO EXPRESSIONS  for  a  description  of
     additional enhancements.

Screen Mode Windows

     The predefined windows now include eighths of the screen  height,
     in  addition  to  halves,  thirds, quarters, and sixths, plus the
     right and left halves.  The letter "E" denotes  an  eighth.   For
     example, E2 denotes the top second eighth of the screen, and RE67
     denotes the right sixth and seventh eighths of the screen.

SET MODULE CALLS Qualifier

     SET  MODULE/CALLS  sets  all  the  modules  that  currently  have
     routines  on  the  call  stack.   These  are the modules that are
     listed when you enter a SHOW CALLS command.  You  would  use  the
     /CALLS  qualifier  to  set  modules  that  might  not  have  been
     dynamically set by the debugger.

SET_MODE_SEPARATE

     The SET MODE [NO]SEPARATE command applies only to VAXstations.

     Before V5.0, if you invoked  the  debugger  on  a  VAXstation,  a
     separate window was created for debugger input and output.

     Starting with V5.0 you have  control  over  this  behavior.   The
     command  SET MODE SEPARATE creates a separate window for debugger
     input and output.  The effect is as if you had defined  DBG$INPUT
     and DBG$OUTPUT to point to the newly created window.  The command
     SET MODE NOSEPARATE disables  this  behavior,  so  that  debugger
     input  and  output  are displayed in the window where you invoked
     the debugger.

     Type HELP SET MODE SEPARATE and  SET  MODE  NOSEPARATE  for  more
     information.   Also type HELP SET PROMPT/POP and SET PROMPT/NOPOP
     (a related feature).

SET_PROMPT

     The SET PROMPT command has  a  new  qualifier  "/[NO]POP".   This
     qualifier applies only to VAXstations.

     Before V5.0, if you were running  the  debugger  in  an  emulated
     terminal  window  on  a  VAXstation, the window popped over other
     windows and  attached  to  the  keyboard  whenever  the  debugger
     prompted for input.

     Starting with V5.0 you have  control  over  this  behavior.   The
     command  SET  PROMPT/POP  enables this behavior.  The command SET
     PROMPT/NOPOP (which is the default) disables  this  behavior,  so
     that  the  debugger  window does not automatically pop over other
     windows and does not attach to the  keyboard  when  the  debugger
     prompts for input.

     If you enter the SET PROMPT  command  without  specifying  a  new
     prompt  string, the prompt string is unchanged.  If you enter the
     command without the /[NO]POP qualifier, the  prompt  behavior  is
     set to /NOPOP, which is the default.

     Type HELP SET PROMPT/POP for more information.   Also  type  HELP
     SET MODE SEPARATE and SET MODE NOSEPARATE (a related feature).

SPAWN qualifiers

     Two new qualifiers have been added to the SPAWN command.

     The /INPUT qualifier specifies an input file  containing  one  or
     more DCL commands to be executed by the spawned subprocess.

     The /OUTPUT qualifier causes the output from the SPAWN  operation
     be written to the specified file.

     Type HELP SPAWN/INPUT and SPAWN/OUTPUT for more information.

V5.0MP

     The new features for  Version  V5.0MP  of  the  debugger  are  as
     follows:

     1.  You can now use the debugger in two  configurations,  default
         or  multiprocess  (depending on the definition of the logical
         name DBG$PROCESS).  Use the default  configuration  to  debug
         programs that run normally (without the debugger) in only one
         process (see the Default_Configuration  subtopic).   Use  the
         multiprocess   configuration   to  debug  programs  that  run
         normally   in   more    than    one    process    (see    the
         Multiprocess_Configuration   subtopic).    The  Compatibility
         subtopic explains the use of commands and other  features  in
         the default and multiprocess configurations.

     2.  You can now selectively display and cancel  user-defined  and
         predefined  breakpoints  and tracepoints (see the Breakpoints
         subtopic).

     Type HELP Release_Notes V5.0MP for more  information  about  this
     release.   In addition, type HELP Multiprocess for an overview of
     multiprocess debugging, and  type  HELP  Debugging_Configurations
     for a discussion of the two configurations.

Additional information available:

BreakpointsCompatibilityDefault ConfigurationMultiprocess Configuration

Breakpoints

     The SHOW BREAK and SHOW TRACE commands now have  /PREDEFINED  and
     /USER  qualifiers.   By  default,  the  SHOW BREAK and SHOW TRACE
     commands display both user defined and predefined breakpoints and
     tracepoints,  respectively.  /USER displays only the user defined
     breakpoints  or  tracepoints.   /PREDEFINED  displays  only   the
     predefined breakpoints or tracepoints.

     The CANCEL BREAK, CANCEL TRACE, and CANCEL ALL commands now  have
     /PREDEFINED  and /USER qualifiers.  By default, the CANCEL BREAK,
     CANCEL TRACE, and  CANCEL  ALL  commands  cancel  only  any  user
     defined  breakpoints  and  tracepoints.  /PREDEFINED cancels only
     predefined breakpoints and tracepoints.  /USER/PREDEFINED cancels
     both user defined and predefined breakpoints and tracepoints.

     See the command descriptions for complete information.

Compatibility

     All of the commands, qualifiers, and built-in  symbols  that  are
     provided  for  multiprocess  debugging are also understood in the
     default debugging  configuration  and  have  analogous  behaviors
     (where applicable).  For example:

     1.  The  EXIT  command  without  a  parameter  specified  ends  a
         debugging session in both configurations.

     2.  A DO command without  the  /PROCESS  qualifier  executes  the
         commands specified in all processes.

     3.  In the default configuration, the "visible"  process  is  the
         process that runs the entire program, and it is identified as
         process 1 in a SHOW PROCESS display.

     4.  Built-in symbols such as %PROCESS_NUMBER and %VISIBLE_PROCESS
         are interpreted correctly in the default configuration.

     This  compatibility  is  especially  useful   in   that   command
     procedures  used  for multiprocess debugging can also be used for
     debugging programs that run in only one process.

Default Configuration

     The default debugging configuration, like  the  V5.0  or  earlier
     debugger, is used to debug programs that run normally in only one
     process.  The  default  configuration  is  established  when  the
     logical  name  DBG$PROCESS  is  either undefined or has the value
     DEFAULT.  Differences between the default configuration  and  the
     V5.0 or earlier debugger are described in the subtopics.

Additional information available:

CTRL-C and CTRL-YTwo-Process Debugger

CTRL-C and CTRL-Y

     To interrupt program execution or the  execution  of  a  debugger
     command  from within a debugging session, you must now use CTRL/C
     rather than CTRL/Y.  Using CTRL/C  enables  you  to  abort  these
     operations  without  exiting the debugger (the debugger prompt is
     displayed after you enter CTRL/C).

     If your program already has a CTRL/C AST routine enabled, use the
     SET  ABORT_KEY  command to reassign the abort function to another
     control-key sequence.  The SHOW ABORT_KEY identifies the CTRL-key
     sequence that is currently assigned the abort function.

     As with previous versions  of  the  debugger,  you  can  use  the
     sequence  CTRL/Y - DEBUG  to  interrupt a program running without
     debugger control and then invoke the debugger.  Do not use CTRL/Y
     for other purposes when using the debugger.

     See the HELP topics CTRL-C, CTRL-Y, and (SET, SHOW) ABORT_KEY for
     more information.

Two-Process Debugger

     In VMS V5.0 or earlier versions, the  debugger  and  the  program
     being  debugged  ran  in  the  same  process.  Starting with this
     version, the debugger consists of  two  parts  (main  and  kernel
     debuggers).   In the default debugging configuration, the program
     being  debugged  runs  in  one  process  along  with  the  kernel
     debugger.  The main debugger runs in a subprocess.

     The new default configuration provides the  following  advantages
     over previous versions of the debugger.  The main debugger, which
     contains most of the debugger code, and the program run  entirely
     in  separate  processes,  with very little interference.  Another
     advantage is the ability to abort commands or  program  execution
     without leaving a debugging session (see the CTRL-C subtopic).

     Type HELP Debugging_Configurations for more  information  on  the
     default and multiprocess configurations.

Multiprocess Configuration

     The multiprocess debugging configuration, entirely new with  this
     version  of  the  debugger,  enables  you to debug programs whose
     images run in several processes.  The multiprocess  configuration
     is  established  when  the logical name DBG$PROCESS has the value
     MULTIPROCESS.

     The multiprocess configuration enables you to do the following:

     1.  Display detailed information about processes and  the  images
         running in those processes (SHOW PROCESS).

     2.  Set the debugging context to a particular process (which then
         becomes  the  visible  process).   This  enables  you  to set
         breakpoints, examine variables, display the call  stack,  and
         so on in the context of that process (SET PROCESS/[VISIBLE]).

     3.  Execute commands in the context of selected processes,  which
         may be other than the visible process (DO).

     4.  Keep selected processes from executing  when  you  start  the
         execution of the other processes (SET PROCESS/[NO]HOLD).

     5.  Control whether execution is interrupted in  other  processes
         when it is suspended in some process (SET MODE NOINTERRUPT).

     6.  Release  selected  processes  from  debugger  control  (EXIT,
         QUIT).

     7.  Abort the  execution  of  a  debugger  command  or  interrupt
         program  execution without interrupting the debugging session
         (CTRL/C, (SET, SHOW) ABORT_KEY).

     8.  Bring a spawned process that is waiting  to  connect  to  the
         debugger  under debugger control.  Interrupt an image that is
         running without debugger control in some  process  and  bring
         that process under debugger control (CONNECT).

     9.  Set  and  cancel  breakpoints  and  tracepoints  to   trigger
         automatically when processes come under debugger control (SET
         (BREAK,TRACE) /ACTIVATING, CANCEL (BREAK,TRACE) /ACTIVATING.)

    10.  Set  and  cancel  breakpoints  and  tracepoints  to   trigger
         automatically  when  processes  perform  an  image  exit (SET
         (BREAK,TRACE)     /TERMINATING,     CANCEL      (BREAK,TRACE)
         /TERMINATING).

    11.  Enable and disable convenience features to help you  identify
         the  process  that  is  the  current  debugging  context (the
         visible process) and its associated input/output:

          o  Dynamic  process  setting  (SET  PROCESS/DYNAMIC).   This
             feature is enabled by default.

          o  Dynamic prompt setting (SET PROMPT/SUFFIX).  This feature
             is enabled by default.


    12.  Create    process-specific    screen-mode    displays    (SET
         DISPLAY/PROCESS,  DISPLAY/PROCESS, plus /SUFFIX qualifier for
         display  names).   Several  keypad  key  sequences  are   now
         associated   with   process-specific   displays.    Type  the
         following command for information about new and  changed  key
         definitions:

            DBG> HELP Release_Notes V5.0MP Keypad

    13.  Set watchpoints in global sections -- that is, in regions  of
         memory  that are shared among all processes of a multiprocess
         program.  Such watchpoints are triggered whenever any process
         changes the value at the watched location.

     The following are the new and modified  commands  and  qualifiers
     associated with multiprocess debugging.

        CONNECT
        CTRL/C, CTRL/Y
        (SET,SHOW) ABORT_KEY
        DEFINE/PROCESS_GROUP
        DISPLAY, SET DISPLAY
            /[NO]PROCESS=
            /SUFFIX=
        DO
        EXIT, QUIT
        (SET,CANCEL) BREAK
            /ACTIVATING
            /TERMINATING
        (SET,CANCEL) TRACE
            /ACTIVATING
            /TERMINATING
        SET MODE [NO]INTERRUPT
        SET PROCESS
        SET PROMPT
        /[NO]SUFFIX=keyword
        SHOW PROCESS

Pathnames

     If you have multiple symbols with the same name, you may need  to
     use  pathnames  to  disambiguate symbol references.  For example,
     you may have a variable X in procedure A, another variable  X  in
     procedure  B  which  is  nested in procedure A, and still another
     variable X in procedure C.  If you say:

     DBG> EXAMINE X

     then the debugger attempts to resolve which X you mean, based  on
     your current PC.  If it cannot do so, it gives the error message:

     %DEBUG-W-NOUNIQUE, X is not unique.

     In this case, you can specify which X you want using pathnames:

     DBG> EXAMINE A\X

     DBG> EXAMINE A\B\X

     DBG> EXAMINE C\X

     Also see the help on "SET SCOPE".

Release Notes

Additional information available:

V4.2V4.4V4.6V5.0V5.0MP

V4.2

     This section notes any incompatible changes that have  been  made
     for version 4.2 of the debugger that you should be aware of.

     New features in version 4.2 are listed  seperately,  under  "HELP
     New_features".

Additional information available:

Register WindowsMacro-defaultsBasic-defaults

Register Windows

     In version 4.0 of the debugger, the register display  occupied  5
     lines of the screen.  Special windows were invented to accomodate
     a display of this size, and these were named R1, R2, R3, R12, and
     R23.

     For version 4.2 of the debugger, the register  display  has  been
     squeezed down to occupy just four lines.  This was done by making
     more efficient use of space and also by removing the  translation
     of  R0  as an error message.  (The translation of R0 can still be
     obtained by doing EXAMINE/CONDITION R0).

     Now that the register display occupies 4 lines, it  fits  in  the
     standard  windows Q1, Q2, Q3, and Q4 (one quarter of the screen).
     So the special purpose windows R1, R2, and R3 have been  dropped.
     If you refer to them in any command files, you should change your
     command file to use one of the "Q" (quarter) displays instead.

     Example:

      old DBG$INIT file:

     DISPLAY REG AT R1
     DISPLAY OUT AT R23

      new DBG$INIT file:

     DISPLAY REG AT Q1
     DISPLAY OUT AT Q234

Macro-defaults

     In version 4.0, the screen default for MACRO was to  display  the
     registers on the top of the screen, and the output display in the
     rest of the screen.  Because of the addition of  the  instruction
     display  in  version  4.2,  this  default  was  changed to be the
     assembly language instructions  (INST  display)  in  H1  and  the
     output  display in H2.  This make the MACRO default closer to the
     rest of the languages.

     If you want to display the registers for MACRO, you now  need  to
     specify  that  in  a DISPLAY command.  For example, the following
     puts  the  registers  in  the  top  quarter  and   the   assembly
     instructions in the second quarter:

     DBG> DISPLAY REG AT Q1
     DBG> DISPLAY INST AT Q2


Basic-defaults

     In version 4.0, the screen-mode defaults for language BASIC  were
     the  same as for language MACRO.  This was because, at that time,
     the BASIC compiler was not generating the  symbol  table  records
     needed to do source display.

     With version 2.4 of BASIC, source display is available  for  that
     language.   So the screen mode default for BASIC has been changed
     to be the source display in the top half of the screen,  and  the
     output  display in the bottom half of the screen (the same as for
     the other high-level languages).

V4.4

     This section notes any known bugs that could not be fixed in time
     for  the  version  4.4  release.  Also noted are any incompatible
     changes that have been made for Version 4.4 of the debugger  that
     you should be aware of.  New features are listed separately under
     HELP New_Features.

Additional information available:

Key DefinitionsRegister DisplayScreen ManagementShareable Images
VAXstationsWindow Definitions

Key Definitions

     The default definitions for keypad keys KP7 and MINUS  have  been
     changed  to  accommodate changes in predefined display and window
     definitions.  The new definitions are as follows:

     KP7        = DISPLAY SRC AT LH1, INST AT RH1, OUT AT S45,PROMPT AT S6
     GOLD KP7   = DISPLAY INST AT H1, OUT AT S45, PROMPT AT S6
     BLUE KP7   = Not defined
     MINUS      = DISPLAY %NEXTDISP AT S12345
     GOLD MINUS = Not defined
     BLUE MINUS = DISPLAY SRC AT H1, OUT AT S45, PROMPT AT S6

     Type  "HELP  New_Features  V4.4  Window_Definitions"   for   more
     information on the new window definitions.

Register Display

     The screen mode register display (REG) has  been  reformatted  to
     take  advantage  of  the  new  window capabilities.  REG is now a
     square display that fits in one of the  quarters  of  the  screen
     (for  example, the top left-hand window LH1 or the top right-hand
     window RH1).  If your debugger initialization file had a  command
     like

     DBG> DISPLAY REG AT Q3

     then you may want to change it to something like

     DBG> DISPLAY REG AT RH1

     to accommodate the re-shaped register display.

Screen Management

     In version 4.4 the  debugger  uses  the  SMG  screen  package  to
     implement  its  screen  mode.   If  your  program  also calls SMG
     routines, and you debug it with the debugger running on the  same
     terminal,  then  there probably will be interference between your
     program and the debugger.

     Our recommended solution  is  to  debug  the  program  using  two
     terminals.  For a description of how to do this, see Chapter 8 of
     the VMS Debugger Manual.

Shareable Images

     Support for debugging shareable images is new in version  4.4  of
     the debugger and is described under "New_Features".  There is one
     restriction you should  be  aware  of  when  debugging  shareable
     images.   The  shareable  image  must  have  been linked with the
     /DEBUG qualifier in order for shareable image debugging to  work.
     If  the  image was not linked with the /DEBUG qualifier, then the
     debugger may allow you to SET IMAGE to that image but then it may
     show you incorrect results.

     In summary:

     $ LINK/SHARE/DEBUG X    can SET IMAGE, everything OK
     $ LINK/SHARE X          can SET IMAGE, get incorrect results
     $ LINK/SHARE/NOTRACE X  cannot SET IMAGE


VAXstations

     In version 4.4, the debugger comes up in its own window when  you
     run it on the VAXstation.

     There is a problem with control-Y handling when the  debugger  is
     running  in  its own VAXstation window.  The control-Y is ignored
     when the keyboard is attached to the debugger  window.   To  make
     the  control-Y  take  effect  you must attach the keyboard to the
     original window (by pointing at it with the mouse), and then type
     the control-Y.

     We expect to fix this problem in a future release.

Window Definitions

     If you use predefined windows such as H2 in  your  initialization
     file or in your own command or key definitions then you should be
     aware of the following changes.

     Changes to display window  definitions  and  the  addition  of  a
     PROMPT predefined display have caused some incompatibilities with
     earlier versions of the debugger.

     Previously, the bottom sixth of the screen  (lines  21-24)  on  a
     VT100  or  VT200  series terminal) could not be used for defining
     display windows.  That area was reserved for the debugger prompt,
     debugger input, debugger diagnostic messages, and program output.
     Now, display windows can occupy any part of the screen, and a new
     predefined  PROMPT  display  shows  the debugger prompt, debugger
     input, and program output.

     The boundaries of the default  windows  have  been  redefined  to
     cover  the greater usable screen height.  For example, on a VT100
     or VT200 series terminal, FS (full screen) now covers lines 1-24,
     H1  lines  1-12, H2 lines 13-24, and so on.  A new symbol prefix,
     S, denotes a multiple of one sixth of the screen.   For  example,
     S56 is the bottom two sixths of the screen.  (There are other new
     predefined windows that occupy only the left or right  halves  of
     the      screen.       Type      "HELP      New_Features     V4.4
     Vertically_Divided_Windows".)

     The PROMPT display occupies S6  by  default,  but  can  be  moved
     elsewhere,  like any display.  Note that, to avoid confusion, the
     PROMPT display is always on top of the display  "pasteboard"  and
     therefore  hides the part of any display that overlaps the PROMPT
     window.

     By default, the OUT display is now at S45 (not, as previously, at
     H2),  so  it is not hidden by the PROMPT display.  And the keypad
     keys that manipulate display windows have been redefined so  that
     no display is positioned behind S6 (Type "HELP Release_Notes V4.4
     Key_Definitions").  If your debugger initialization file contains
     DISPLAY  or  SET  DISPLAY  commands  to  locate displays near the
     bottom of the screen (for example, at H2, T3,  or  Q34)  you  may
     want  to  modify these window definitions so the displays are not
     hidden.

     Type  "HELP  New_Features  V4.4  Window_Definitions"   for   more
     information on the new window definitions.

V4.6

     This section notes any known bugs that could not be fixed in time
     for  the  version  4.6  release.  Also noted are any incompatible
     changes that have been made for Version 4.6 of the debugger  that
     you should be aware of.  New features are listed separately under
     HELP New_Features.

Additional information available:

SET IMAGE CommandSET SCOPE CommandVAXstation support

SET IMAGE Command

     When you enter a SET IMAGE command, if  you  specify  a  list  of
     images, only the last image in the list is set.  For example:

          SET IMAGE A,B,C

     In this example, only image C is set.   Note  that  you  can  set
     images  A,  B,  and  C by issuing separate SET IMAGE commands for
     each image.

SET SCOPE Command

     Before issuing a SET SCOPE command, be sure that the module  that
     contains  the  elements  named  in the path name has already been
     set, either dynamically by the debugger or  by  means  of  a  SET
     MODULE command.  Use the SHOW MODULE command to determine whether
     a module is set --- that is, whether its symbols have been loaded
     into the run-time symbol table.

VAXstation support

     Previously, if the debugger detected that it  was  running  on  a
     VAXstation,  it  would create a separate emulated terminal window
     for its own input and  output.   This  meant  that  terminal  I/O
     performed  by  the program was logically and physically separated
     from DEBUG's I/O, particularly helpful when debugging screen mode
     applications.

     In order to remove a potential problem  on  the  VAXstation,  the
     method  DEBUG  uses  to  control  the  separate  window  has been
     changed.  Previously, DEBUG controlled the separate  window  with
     UIS$xxx  calls.   The  debugger now uses the new OSC sequences to
     communicate control functions to the terminal emulator.

     With this update, DEBUG's behavior  is  slightly  different.   It
     still  creates  a  separate  window,  but  only  if  both  of the
     following two conditions are met:

      o  You must be running the SDC release of VWS V3.0 (or higher).

      o  You must have the following system logical name defined:

         $ DEFINE/SYSTEM/EXEC UIS$VT_ENABLE_OSC_STRINGS TRUE


V5.0

     This section notes the following:

      o  Any known bugs that could not be fixed in  time  for  Version
         5.0.

      o  Any incompatible changes that have been made for Version 5.0.

      o  Any problems indicated in previous release  notes  that  have
         been corrected for Version 5.0.

     New features are listed separately under HELP New_Features.

Additional information available:

Corrected ProblemsDynamic Register DisplayMACRO SupportObsolete Commands
Screen Mode Line WrappingVAXstation DEBUG Separate Window Control

Corrected Problems

     Problems with the SET IMAGE and  SET  SCOPE  commands  that  were
     noted  in  the  V4.6 release notes have been corrected (type HELP
     RELEASE_NOTES V4.6 for a full description of the problems).

     Before Version 5.0, when you specified a list of images with  the
     SET  IMAGE  command, only the last image specified was set.  Now,
     all of the specified images are  set.   As  before,  the  current
     image is the last image in the list (the last image set).

     Previously, before issuing a SET SCOPE command,  you  had  to  be
     sure  that the module containing the path-name elements specified
     in the SET SCOPE command was set.  Now, if  that  module  is  not
     already set, the SET SCOPE command automatically sets it for you.

Dynamic Register Display

     Register displays, such as the predefined display  REG,  are  now
     dynamic by default.  This means that the window dimensions adjust
     proportionally when you change the screen height or width with  a
     SET TERMINAL command.

     Also, a register display now reformats the displayed information,
     in  the  best  way  possible,  to the window in which it has been
     displayed.  The default window for REG remains RH1.  However,  if
     you   were  to  display  REG  in  window  Q3,  for  example,  the
     information would reformat automatically  to  fit  into  the  new
     window.

     Type HELP Screen_Features Register_Display for more information.

MACRO Support

     Several enhancements have been made to MACRO support for  Version
     5.0,  to  match  the support available with other languages (type
     HELP  New_Features  for  more  information).    Some   of   these
     enhancements  result in different behavior from previous versions
     of the debugger.

     When the language is set to MACRO, the default  behavior  of  the
     STEP command is now STEP/LINE (not STEP/INSTRUCTION, the previous
     behavior).  This change was made  possible  because  source  line
     display is now available for MACRO programs.

     When the language is set to MACRO,  the  debugger  interprets  an
     address  expression  used in a language expression as the current
     value stored at that address (not  the  address  denoted  by  the
     address  expression, the previous behavior).  This change affects
     how language expressions are evaluated by the commands  EVALUATE,
     DEPOSIT,  IF, FOR, REPEAT, and WHILE, and by WHEN clauses as used
     with the commands SET BREAK,  SET  TRACE,  and  SET  WATCH.   For
     example, the command DEPOSIT X = Y + 2 evaluates the sum of 2 and
     the current value of Y and deposits the resulting value  into  X.
     Previously,  that  command evaluated the sum of 2 and the address
     of Y and deposited the resulting value into X.

     As before, you can obtain the address of an address expression by
     means of the EVALUATE/ADDRESS command.

Obsolete Commands

     The  following  commands  and  command  qualifiers  are  obsolete
     starting  with  VMS Version 5.0 and are no longer documented, for
     the reasons stated.  For compatibility  with  previous  versions,
     these  commands  and  qualifiers  will  be supported indefinitely
     except as indicated.

  ALLOCATE
     The debugger now allocates and deallocates memory  automatically.
     This command now has no effect.

  CANCEL EXCEPTION BREAK
     This command duplicates the effect of the  newer  command  CANCEL
     BREAK/EXCEPTION,  which  better  conforms  to the general command
     format for canceling breakpoints.

  SET EXCEPTION BREAK
     This command duplicates the  effect  of  the  newer  command  SET
     BREAK/EXCEPTION,  which  better  conforms  to the general command
     format for setting breakpoints.

  SET MODULE/ALLOCATE
     The debugger now allocates and deallocates memory  automatically.
     This qualifier now has no effect.

  UNDEFINE
     This command duplicates the effect of the newer  command  DELETE,
     which conforms to the analogous DCL command DELETE.

  UNDEFINE/KEY
     This  command  duplicates  the  effect  of  the   newer   command
     DELETE/KEY,   which   conforms   to  the  anologous  DCL  command
     DELETE/KEY.

Screen Mode Line Wrapping

     The change described affects how  very  long  lines  of  debugger
     output are presented in the OUTPUT display or in a DO display ---
     for example, when you enter an EXAMINE command  to  examine  long
     ASCII strings.

     Before Version 5.0, the  debugger  wrapped  text  in  the  OUTPUT
     display  or in a DO display if the text was longer than the width
     of the terminal, regardless of the width of the display window.

     The debugger now wraps text in these displays only if it  exceeds
     255  characters.   If  there is any text beyond the right edge of
     the display window, a diamond-shaped  character  (or  a  question
     mark  for  terminals  that  do not support the diamond character)
     appears at the right edge.  This indication is analogous  to  the
     behavior of a text editor.

     To see the hidden text, enter the SCROLL/RIGHT command (or  press
     keypad-key 6 repeatedly, as needed).

VAXstation DEBUG Separate Window Control

     This note applies only to VAXstations.

     The default behavior of the debugger on VAXstations has changed.

     With the  addition  of  the  SET  MODE  [NO]SEPARATE  command,  a
     separate  window  for  debugger  input  and  output  is no longer
     created by default when you invoke the  debugger.   You  can  now
     control   the   creation  of  the  separate  window.   Type  HELP
     New_Features V5.0 SET_MODE_SEPARATE and HELP  SET  MODE  SEPARATE
     for more information.

     With the addition of the /[NO]POP qualifier  to  the  SET  PROMPT
     command,  the  debugger window no longer pops and attaches to the
     keyboard by default when the debugger prompts for input.  You can
     now  control  this  behavior.   Type  HELP  New_Features V5.0 SET
     PROMPT and HELP SET PROMPT/POP for more information.

     If you enter the SET PROMPT  command  without  specifying  a  new
     prompt  string, the prompt string is unchanged.  If you enter the
     command without the /[NO]POP qualifier, the  prompt  behavior  is
     set to /NOPOP, which is the default.

     The default behavior in V4.4, 4.5, and 4.6 was to pop the  window
     and attach it to the keyboard.

     To achieve the previous  behavior,  you  can  put  the  following
     commands in your DBG$INIT file:

     SET MODE SEPARATE
     SET PROMPT/POP

V5.0MP

     Type HELP New_Features V5.0MP for a summary  description  of  all
     new  features for this release of the debugger.  The release note
     subtopics describe the following:

     1.  Changes in  the  debugger  configuration  from  the  V5.0  or
         earlier debugger (Debugging_Configurations subtopic)

     2.  Compatibility  between  the  new  default  and   multiprocess
         debugging configurations (Compatibility subtopic)

     3.  Changes in the use of CTRL/Y and CTRL/C

     4.  Changes in debugger predefined keypad key definitions.

     5.  Changes in the  use  of  debugger  commands  in  DCL  command
         procedures (DCL_Command_Procedures subtopic).

     6.  System management considerations for  multiprocess  debugging
         (System_Management subtopic).

     7.  How the debugger automatically uses the single-process  (V5.0
         and  earlier)  debugger  configuration  if a separate process
         cannot be created for the main debugger image (Single_Process
         subtopic), and what to do in this case.

     8.  Any known restrictions (Restrictions subtopic)


Additional information available:

CompatibilityCTRL-Y ChangesDCL Command Procedures
Debugging ConfigurationsKeypad ChangesRestrictionsSingle Process
System Management

Compatibility

     All of the commands, qualifiers, and built-in  symbols  that  are
     provided  for  multiprocess  debugging are also understood in the
     default debugging  configuration  and  have  analogous  behaviors
     (where applicable).  For example:

     1.  The  EXIT  command  without  a  parameter  specified  ends  a
         debugging session in both configurations.

     2.  A DO command without  the  /PROCESS  qualifier  executes  the
         commands specified in all processes.

     3.  In the default configuration, the "visible"  process  is  the
         process  that  runs  the entire program.  It is identified as
         process 1 in a SHOW PROCESS display.

     4.  Built-in symbols such as %PROCESS_NUMBER and %VISIBLE_PROCESS
         are interpreted correctly in the default configuration.

     This compatibility is especially useful because it allows command
     procedures  used  for  multiprocess  debugging  to  be  used  for
     debugging programs that run in only one process.

CTRL-Y Changes

     Starting with this version of the  debugger,  use  CTRL/C  rather
     than  CTRL/Y from within a debugging session to interrupt program
     execution or the execution of a debugger command.   Using  CTRL/C
     enables  you  to  abort  these  operations  without  exiting  the
     debugger (the  debugger  prompt  is  displayed  after  you  enter
     CTRL/C).

     If your program already has a CTRL/C AST routine enabled, use the
     SET  ABORT_KEY  command to reassign the abort function to another
     control-key sequence.  The SHOW ABORT_KEY identifies the CTRL-key
     sequence that is currently assigned the abort function.

     As with previous versions  of  the  debugger,  you  can  use  the
     sequence  CTRL/Y - DEBUG  to  interrupt a program running without
     debugger control and then invoke the debugger.  Do not use CTRL/Y
     for other purposes when using the debugger.

     See the HELP topics CTRL-C, CTRL-Y, and (SET, SHOW) ABORT_KEY for
     more information.

DCL Command Procedures

     With previous versions of the  debugger,  you  could  use  a  DCL
     command  procedure  to  invoke  the  debugger  and issue debugger
     commands contained in that command procedure.  For example:

       $ ! Procedure to run PROG2 under debugger
       $ ! control and issue debugger commands
       $ !
       $ RUN PROG2
       SET BREAK %LINE 17
       GO
       EXIT
       $ SHOW SYSTEM
       $ LOGOUT

     Starting with this version of the debugger, you can no longer put
     debugger  commands  directly  into a command procedure.  Instead,
     you must create a temporary file containing the debugger commands
     and assign the logical name DBG$INPUT to point to that file.  For
     example:

       $ CREATE DEBUG_COMMANDS.TMP
       SET BREAK %LINE 17
       GO
       EXIT
       $ DEFINE/USER DBG$INPUT DEBUG_COMMANDS.TMP
       $ RUN PROG2
       $ DELETE DEBUG_COMMANDS.TMP;*
       $ SHOW SYSTEM
       $ LOGOUT

     This change applies to both the  default  configuration  and  the
     multiprocess configuration.

Debugging Configurations

     Starting with this version, the debugger consists of two parts:

     1.  A relatively small kernel  debugger  image  (DEBUG.EXE)  that
         runs in the same process as the image being debugged

     2.  A larger main debugger  image  (DEBUGSHR.EXE)  that  contains
         most of the debugger code and runs in a subprocess.

     This separation enables you to have two debugging configurations:

     1.  The default (non-multiprocess)  configuration.   The  program
         being  debugged (which may consist of several images) runs in
         one  process  along  with  the  kernel  debugger.   The  main
         debugger runs in a subprocess.

     2.  The multiprocess configuration.  The program  being  debugged
         (which  may  consist  of  several  images)  runs  in  several
         processes.  Each process  that  is  running  an  image  under
         debugger  control  is also running a local copy of the kernel
         debugger.  One main debugger runs in  a  separate  subprocess
         and  communicates  with  the  other  processes  through their
         kernel debuggers.

     The new default configuration replaces  the  V5.0  (and  earlier)
     configuration,   whereby  the  debugger  and  the  program  being
     debugged ran in the  same  process.   The  default  configuration
     provides   the   following  advantages  over  the  single-process
     configuration:

     1.  The main  debugger  and  program  run  entirely  in  separate
         processes, with very little interference.

     2.  Within  a  debugging  session,  you  can  interrupt   program
         execution  or  the  execution  of  a debugger command without
         aborting the debugging session.  By default, this is achieved
         by  pressing  CTRL/C.  However, if your program already has a
         CTRL/C AST service routine  enabled,  you  can  reassign  the
         abort  function to another CTRL-key sequence with the command
         SET ABORT_KEY.

     Type HELP Debugging_Configurations for more information.

Keypad Changes

     Several previously unused keypad key combinations now enable  you
     to  display  process-specific  source  and  instruction displays.
     Also note  that,  for  symmetry,  the  command  string  that  was
     previously  assigned  to  the  sequence  BLUE-KP3  (SELECT/SOURCE
     %NEXT_SOURCE) has been moved to the  previously  unused  sequence
     GOLD-COMMA.

     The following table summarizes the  new  and  changed  functions.
     Type  HELP  KEYPAD  for  summary  information  arranged in keypad
     layout.   To  obtain  complete  information  about  the   command
     bindings, use the command SHOW KEY/STATE=state key-name.


     Key:     State:    Command_Invoked_or_Function:

     COMMA    GOLD   SELECT/SOURCE %NEXT_SOURCE. Selects
                     the next source display in the display
                     list as the current source display.
                     This function was previously assigned
                     to KP3 in the BLUE state.

     KP9      GOLD   SET PROCESS/VISIBLE %NEXT_PROCESS.
                     Makes the next process in the process
                     list the visible process.

     KP9      BLUE   Displays two predefined process-
                     specific source displays, SRC_n.
                     These are located at Q1 and Q2,
                     respectively, for the visible process
                     and for the next process on the
                     process list.

     KP7      BLUE   Displays two sets of predefined
                     process-specific source and
                     instruction displays, SRC_n and
                     INST_n. These consist of source and
                     instruction displays for the visible
                     process at Q1 and RQ1, respectively,
                     and source and instruction displays
                     for the next process on the process
                     list at Q2 and RQ2, respectively.

     KP3      BLUE   Displays three predefined process-
                     specific source displays, SRC_n.
                     These are located at S1, S2, and
                     S3, respectively, for the previous,
                     current (visible), and next process on
                     the process list.

     KP1      BLUE   Displays three sets of predefined
                     process-specific source and
                     instruction displays, SRC_n and
                     INST_n. These consist of source and
                     instruction displays for the visible
                     process at S2 and RS2, respectively;
                     source and instruction displays for
                     the previous process on the process
                     list at S1 and RS1, respectively; and
                     source and instruction displays for
                     the next process on the process list
                     at S3 and RS3, respectively.

Restrictions

Additional information available:

Abort Key After SpawnDebugging Installed Writeable Images

Abort Key After Spawn

     If you use the SPAWN command to create a subprocess or  invoke  a
     spawned  editor  from  the  debugger, the debugger's abort key is
     disabled and remains disabled after you return  to  the  debugger
     prompt.   The  only  way to re-enable the abort key is to log out
     and log back in (and re-invoke the debugger).

Debugging Installed Writeable Images

     If you attempt to DEBUG an image that  is  installed  (using  the
     Install  Utility)  /WRITEABLE/SHARED,  then you will get an error
     similar to:

              VAX DEBUG Version V5.0-00 MP

       %DEBUG-I-CANTOPNIMG, cannot open image WRTSHR
       -RMS-E-FLK, file currently locked by another user
       -SYSTEM-W-ACCONFLICT, file access conflict


     This error occurs because DEBUG is unable to open an  image  file
     that  is  installed  /WRITEABLE  when it is running in a separate
     process.  One workaround for this problem is to not  install  the
     image.  If this isn't possible, another workaround is to make the
     following logical name assignment:

       $ DEFINE DBG$PROCESS NONE

     This definition causes the debugger to share the same process  as
     the  user  program  rather than running in a subprocess.  Digital
     encourages you to use this unsupported  configuration  only  when
     necessary, since it may not be provided in future releases of VAX
     DEBUG.  While this workaround may also  correct  other  problems,
     you are strongly encouraged to submit an SPR if you encounter any
     such  problems.   See  the  Single_Process  subtopic   for   more
     information.

Single Process

     When  you  invoke  the  debugger  in  either   the   default   or
     multiprocess  configuration,  if  a  separate  process  cannot be
     created to run the main debugger image, the debugger  issues  the
     following  messages  and  automatically  uses  the single-process
     (V5.0 and earlier) configuration:

       %DEBUG-E-CANTCREATEMAIN, could not create the VAX DEBUG subprocess
       -SYSTEM-F-EXQUOTA, exceeded quota
       %DEBUG-I-SHRPRC, VAX DEBUG will share user process

     Under these conditions, you should  be  aware  of  the  following
     differences   compared   to   the  new  default  or  multiprocess
     configurations:

     1.  Although you can use the debugger to  debug  a  program  that
         normally  runs  in  only  one  process,  you  cannot  use the
         additional debugger features  that  enable  you  to  debug  a
         multiprocess program.

     2.  To abort a debugger command or program execution from  within
         a  debugging session, do not use CTRL/C.  Instead, as for the
         V5.0 or earlier debugger, use the CTRL/Y --  DEBUG  sequence.
         CTRL/Y  returns  you  to  DCL  level.   The DCL command DEBUG
         invokes the debugger, which then displays its prompt.   Also,
         you  cannot  use  the  SET  ABORT_KEY command to reassign the
         abort function to another CTRL-key sequence.

     Type HELP Release_Notes V5.0MP System_Management for  information
     on  tuning  your  system  for multiprocess debugging (or ask your
     system manager to assist you).  In  most  cases  the  information
     provided  should  enable  you to tune your system so that you can
     run  the  debugger   in   the   new   default   or   multiprocess
     configuration.

System Management

     Having several users  debugging  programs  which  occupy  several
     processes  can place a load on a system.  The subtopics describes
     the resources used by the multiprocess debugger, so that you  can
     tune  your  system  for  this  activity.  Note that the subtopics
     cover only the resources used by the debugger.  You may  have  to
     tune your system to support the multiprocess programs themselves.

Additional information available:

User QuotasSystem Resources

User Quotas

     To do multiprocess debugging, each user  needs  sufficient  PRCLM
     quota to create an additional subprocess for the debugger, beyond
     the number of processes needed for the multiprocessing program.

     BYTLM, ENQLM, FILLM, and PGFLQUOTA are pooled quotas.   They  may
     need to be increased to account for the debugger subprocess.

      o  Each user's ENQLM quota should be increased by at  least  the
         number of processes being debugged.

      o  Each user's PGFLQUOTA may need to be increased.   If  a  user
         has   insufficient   PGFLQUOTA,  the  debugger  may  fail  to
         activate, or produce "virtual memory exceeded" errors  during
         execution.

      o  Each user's BYTLM and FILLM quotas may need to be  increased.
         The  debugger  requires enough BYTLM and FILLM quotas to open
         each image file  being  debugged,  the  corresponding  source
         files, and the DEBUG input, output, and log files.  The DEBUG
         SET MAX_SOURCE_FILES command can be used to limit the  number
         of source files kept open by the debugger at any one time.


System Resources

     The kernel and main debugger communicate through global sections.
     The  main  debugger  communicates  with  up to 8 kernel debuggers
     through  a  65-page  global  section.   Therefore,   the   SYSGEN
     parameters  GBLPAGES  and  GBLSECTIONS  may need to be increased.
     For  example,  if  there  are  10  users   using   the   debugger
     simultaneously, 10 global sections (GBLSECTIONS) using a total of
     650 global pages (GBLPAGES) are required by the debugger.

Screen Features

     The debugger provides a set of screen  features  designed  to  be
     used  on  VT-series  terminals  and  MicroVAX  workstations.  The
     command SET MODE SCREEN enables screen mode and SET MODE NOSCREEN
     disables  it.   In  screen mode, "screen displays" can be defined
     and viewed through windows on  the  terminal  screen.   A  screen
     display  is  a  data structure which contains lines of text.  The
     text may be normal debugger output, the text of a source file,  a
     special   register   display,   or  a  special  assembly-language
     instruction display.  The text of a display may be viewed through
     a  window  on  the  terminal  screen and can be scrolled back and
     forth through that window.  When screen mode is  first  set,  the
     debugger  provides  the  following predefined displays:  a source
     display (SRC), a debugger output display  (OUT),  and  a  special
     display   (PROMPT)   where   the   debugger  prompts  for  input.
     Optionally, a register display (REG) and an  instruction  display
     (INST) can also be displayed.

     Several screen features  are  designed  to  facilitate  debugging
     multiprocess      programs.       Type      HELP     Multiprocess
     Screen_Mode_Features for complete information.

Additional information available:

CommandsDisplay AttributesDisplay KindsExamplesInstruction Display
KeypadMoving DisplaysPredefined DisplaysPROMPT Display
Register DisplayResizing DisplaysScreen ModeScrollingSource Display
Windows

Commands

     A number of commands are used to control  the  debugger's  screen
     features.   They  are  grouped  here  according  to their general
     purpose.

     Control overall operation:  SET MODE SCREEN     SET TERMINAL
                                 SET MODE NOSCREEN   SHOW TERMINAL

     Create screen windows:      SET WINDOW          CANCEL WINDOW
                                 SHOW WINDOW

     Create screen displays:     SET DISPLAY         CANCEL DISPLAY
                                 SHOW DISPLAY

     Modify screen displays:     DISPLAY             SCROLL
                                 EXPAND              SELECT
                                 MOVE                SHOW SELECT

     Preserve screen displays:   EXTRACT             SAVE

     You can obtain further information  on  each  of  these  commands
     through  HELP.   The  most  frequently used commands are DISPLAY,
     SCROLL, EXPAND and MOVE.  The DISPLAY command is used  to  modify
     the  absolute  position  of  displays  on  the  screen, to modify
     display attributes,  and  to  refresh  the  screen,  among  other
     things.  The SCROLL command scrolls the text of a display through
     its screen window.  The  EXPAND  and  MOVE  commands  modify  the
     relative position of displays on the screen.

     The EXPAND, MOVE, and SET TERMINAL commands are especially useful
     for  manipulating  displays  on  the  larger screen of a MicroVAX
     workstation.

Display Attributes

     You can assign attributes to displays  by  means  of  the  SELECT
     command.  The possible display attributes are:

      o  ERROR  ---  A  display  with  the  ERROR  attribute  displays
         debugger diagnostic messages.

      o  INPUT --- A display with  the  INPUT  attribute  echoes  your
         debugger input.

      o  INSTRUCTION --- A  display  with  the  INSTRUCTION  attribute
         displays  the  decoded MACRO instruction stream of the module
         being debugged.  The keypad-key sequence  BLUE-COMMA  selects
         the  next  instruction  display  on  the  display list as the
         current instruction display.

      o  OUTPUT --- A  display  with  the  OUTPUT  attribute  displays
         debugger output that is not already being directed to another
         display (for example, diagnostic messages).   The  keypad-key
         sequence  GOLD-KP3  selects  the  next  output display on the
         display list as the current output display.

      o  PROGRAM --- A display  with  the  PROGRAM  attribute  is  the
         display where program input and output are forced.

      o  PROMPT --- A display with the PROMPT attribute is the display
         where the debugger prompts for input.

      o  SCROLL ---  A  display  with  the  SCROLL  attribute  can  be
         scrolled  with  the  SCROLL command (or keypad keys KP2, KP8,
         KP4, and KP6).  KP3 selects the next display on  the  display
         list  as  the  current  scrolling display (except for PROMPT,
         which cannot be scrolled).

      o  SOURCE --- A display with the SOURCE attribute  displays  the
         source  code of the module being debugged, if available.  The
         keypad-key sequence BLUE-KP3 selects the next source  display
         on the display list as the current source display.


     Although a display can have more than one attribute,  subject  to
     the kind of display it is, only one display can have a particular
     attribute.  That display is then known as the  "current"  display
     with  that  attribute  (for  example,  current scrolling display,
     current input display).

     In the following example, the display  OUT  is  selected  as  the
     current  input,  error, and scrolling display.  After the command
     is executed debugger input, debugger  output  (assuming  OUT  was
     previously selected for output), and debugger diagnostic messages
     are logged in the OUT display in the proper sequence, and OUT  is
     the current scrolling display:

          DBG> SELECT/INPUT/ERROR/SCROLL OUT

     Attributes can be assigned to the various display kinds  only  as
     follows:








                                  Display Kind:
                   DO  INSTRUCTION  OUTPUT  PROGRAM  REGISTER  SOURCE
     Attribute:
     ERROR                           yes      yes
     INPUT                           yes
     INSTRUCTION           yes
     OUTPUT                          yes      yes
     PROGRAM                                  yes
     PROMPT                                   yes
     SCROLL        yes     yes       yes      yes       yes     yes
     SOURCE                                                     yes

     You unselect one or more attributes (deassign  the  attribute(s))
     by  issuing  the SELECT command with the appropriate qualifier(s)
     but without specifying a display.   For  example,  the  following
     command unselects the INSTRUCTION and SCROLL attributes:

          DBG> SELECT/INSTRUCTION/SCROLL

     After the command is executed, no display has the INSTRUCTION  or
     SCROLL  attribute.   When the ERROR, OUTPUT, or PROGRAM attribute
     is unselected only the PROMPT display shows diagnostic  messages,
     debugger  output,  or  program  output,  respectively.   When the
     INPUT, INSTRUCTION, SCROLL, or SOURCE attribute is unselected, no
     display,  including  the PROMPT display, has that attribute.  The
     PROMPT attribute cannot be unselected.

     By default, when you invoke screen mode, the predefined  displays
     are selected for attributes as follows:

     Attribute:      Predefined display:
     ERROR                PROMPT
     INPUT
     INSTRUCTION
     OUTPUT               OUT
     PROGRAM              PROMPT
     PROMPT               PROMPT
     SCROLL               SRC
     SOURCE               SRC

Display Kinds

     There are five kinds of screen displays:  output displays, source
     displays,  register  displays,  instruction displays, and program
     displays (only  the  predefined  display  named  PROMPT  has  the
     display  kind  PROGRAM).  An output display holds normal debugger
     output lines up to some  maximum  number  of  lines.   An  output
     display   may   also  have  a  debugger  command  list  which  is
     automatically executed to create the display text each  time  the
     debugger  gets  control  from the user program.  A source display
     displays the program's source code.  The  output  from  TYPE  and
     EXAMINE/SOURCE  commands can be directed to a source display, and
     a source display can be automatically updated through a  list  of
     debugger  commands.  An instruction display is much like a source
     display, except that  it  holds  assembly  language  instructions
     instead  of source lines.  The output from an EXAMINE/INSTRUCTION
     command can  be  directed  to  an  instruction  display,  and  an
     instruction  display  can be automatically updated through a list
     of debugger commands.  A register display shows the  contents  of
     the  VAX  registers,  and is automatically updated as the program
     runs.  The register  display  is  primarily  intended  for  MACRO
     programmers.   Except  for  the  PROGRAM  display  named  PROMPT,
     displays of all kinds are created with the SET  DISPLAY  command.
     They  are  manipulated  on  the  screen with the DISPLAY command,
     which takes a number of qualifiers.

Examples

     The following command places the source display SRC in  the  left
     top half of the screen, the instruction display INST in the right
     top half, the output display OUT under these two  in  the  fourth
     and  fifth  sixths  of  the screen, and the PROMPT display in the
     bottom sixth.

     DBG> DISPLAY SRC AT LH1, INST AT RH1, OUT AT S45, PROMPT AT S6


     The following set of commands place the register display  REG  at
     the  top  of  the  screen,  create a new display WATCHABCD in the
     middle of the screen to watch variables A,B,C, and D,  and  place
     the OUT display below these, above the PROMPT display.

     DBG> DISPLAY REG AT T1
     DBG> SET DISP/MARK WATCHABCD AT T2 DO (EXAMINE A,B,C,D)
     DBG> DISP OUT AT S5

Instruction Display

     An instruction display gives you a  scrollable  window  into  the
     assembly-language  instruction  stream.   The  predefined display
     INST is an instruction display which is automatically updated  so
     that  the  arrow  points  to  the instruction at your current PC.
     DISPLAY INST makes it appear.  The numbers to  the  left  of  the
     instructions are line numbers.

     If you select the instruction display  using  "SELECT/INST  INST"
     (or,    PF4-COMMA   on   the   keypad),   then   output   of   an
     EXAMINE/INSTRUCTION  command  is  directed  to  the   instruction
     display.

     If you select the instruction diplay  as  the  scrolling  display
     using  SELECT/SCROLL INST (or by rotating the scrolling attribute
     with KP3), then you can scroll it up, down, left, or right.

     Pressing keypad-key KP7 places the predefined source display  SRC
     in  the  upper  left  half of the screen (LH1), INST in the upper
     right half of the screen (RH1), the predefined output display OUT
     below  these  two at S45, and the PROMPT display below OUT at S6.
     Pressing the combination BLUE-MINUS  redisplays  SRC  across  the
     entire   top   half   of   the   screen   (this  is  the  default
     configuration).

Keypad

     Many of the keypad keys are predefined to manipulate  screen-mode
     displays.  For example:

     KP8,  KP6,  KP2,  and  KP4   are   "scroll/up",   "scroll/right",
     "scroll/down", and "scroll/left", respectively.  The display that
     is scrolled is determined  by  which  display  has  the  "scroll"
     attribute.   This  attribute  can  be cycled through the displays
     using the KP3 key.

     There are a few predefined screen layouts that  can  be  selected
     with  keypad  keys:   (1) A source display on the top half of the
     screen, and an output display on most of the bottom  half,  above
     the  prompt  display.   This  is  the  default  layout  for  most
     languages.  The screen can always be put in this state  with  the
     keypad  key sequence BLUE-MINUS.  (2) A source display in the top
     left half, and instruction display in the top right half, and  an
     output  display  under these two, above the prompt display.  This
     can be selected with key KP7.  (3) An instruction display in  the
     top  left  half, a register display in the top right half, and an
     output display under these two, above the prompt  display.   This
     can always be selected with the key sequence GOLD-KP7.

     If  you  are  debugging  a  multiprocess  program,  several   key
     combinations enable you to manipulate process-specific source and
     instruction displays.  The debugger automatically  creates  these
     displays  whenever  a  new  process comes under debugger control.
     Type  HELP   Multiprocess   Screen_Mode_Features   for   complete
     information.

     Type  HELP  Keypad  for  diagrams  identifying   the   keypad-key
     functions.

Moving Displays

     You can move a display vertically and/or horizontally across  the
     screen  by  means  of  the  MOVE  command.   Type HELP MOVE for a
     description of the MOVE command.

Predefined Displays

     The debugger has five predefined  displays  which  are  available
     when you invoke screen mode:

     (1)  A  source  display  called  SRC,  which   is   automatically
     positioned at your current PC, can be repositioned using the TYPE
     or EXAMINE/SOURCE commands, and can be scrolled up and down using
     keys  KP8  and  KP2.   See  the  Source_Display subtopic for more
     information.

     (2) An assembly-language instruction display called  INST,  which
     is   automatically  positioned  at  your  current  PC.   INST  is
     initially removed but can be made to appear using "DISPLAY INST".
     It  can  be selected as the scrolling display by using key KP3 to
     rotate the  scroll  attribute  to  the  INST  display,  and  then
     scrolled   up   or   down   using   KP8   and   KP2.    See   the
     Instruction_Display subtopic for more information.

     (3) A register display called REG, which is automatically updated
     to  show  the current values of your registers.  REG is initially
     removed but can be made to appear with the command  DISPLAY  REG.
     See the Register_Display subtopic for more information.

     (4) An output  display  called  OUT,  where  debugger  output  is
     directed.   If  you want to intermix debugger input and output in
     the same display, you can copy debugger input to the OUT  display
     with "SELECT/INPUT OUT".

     (5) A prompt display called PROMPT, where  the  debugger  prompts
     for  input,  forces  program  output,  and  (by  default)  prints
     debugger diagnostic messages.  See  the  PROMPT_Display  subtopic
     for more information.

     If you are debugging a multiprocess program, in addition to these
     five displays the debugger automatically creates process-specific
     source and instruction displays  whenever  a  new  process  comes
     under     debugger     control.      Type    HELP    Multiprocess
     Screen_Mode_Features for complete information.

PROMPT Display

     The PROMPT predefined display is a  non-scrollable  display  that
     shows  the  debugger  prompt,  debugger  input,  and (by default)
     program output and debugger  diagnostic  messages.   By  default,
     PROMPT  occupies  the  bottom sixth of the screen (the predefined
     window S6).  On a VT100 or VT200  series  terminal,  S6  includes
     lines 21 through 24.

     The PROMPT display is of the display kind "PROGRAM".   PROMPT  is
     the  only  display of that kind (no other PROGRAM displays can be
     created).  Note that, compared  to  other  displays,  PROMPT  has
     several   restrictions,  to  eliminate  possible  confusion  when
     manipulating that display:

      o  PROMPT can never be hidden by another display.  It is  always
         on top of the display "pasteboard".

      o  PROMPT can be moved anywhere on the screen, expanded to  fill
         the  full  screen  height, and shrunk down to two lines.  But
         PROMPT must always occupy the full width of the  screen  and,
         therefore,   can   not   be   moved,   expanded,   or  shrunk
         horizontally.


     See the Display_Attributes subtopic for information on  assigning
     display  attributes  to  various  displays,  including the PROMPT
     display.

Register Display

     A register display is an automatically updated display that shows
     the  current  values  (in  hexadecimal format) of all VAX machine
     registers (R0 through R11), the four condition code bits  (C,  V,
     Z,  and  N)  of  the processor status longword (PSL), and the top
     several values on the stack and on  the  current  argument  list.
     Values  in a register display are highlighted when they change as
     you execute the program.

     The predefined  display  REG  is  a  register  display.   REG  is
     initially  marked  as  removed from the display pasteboard and is
     not visible.  You need to use the DISPLAY command (or the  keypad
     key  sequence  GOLD-7)  to  show  the  REG display.  The sequence
     GOLD-KP7 places the predefined instruction display  INST  in  the
     upper  left half of the screen (LH1), REG in the upper right half
     of the screen (RH1), the  predefined  output  display  OUT  below
     these  two  at  S45,  and  the  PROMPT  display  below OUT at S6.
     Pressing the sequence BLUE-MINUS redisplays SRC across the entire
     top half of the screen (this is the default configuration).

     Like other displays, register displays are  dynamic  by  default.
     This  means that the window dimensions adjust proportionally when
     you change the  screen  height  or  width  with  a  SET  TERMINAL
     command.   In  addition,  if  the window of a register display is
     resized,  the  debugger  automatically  reformats  the  displayed
     information to adapt to the new window size.  The debugger always
     displays the contents of registers R0 through R11,  AP,  FP,  SP,
     PC,  and  PSL.  If the resized window is too small to display all
     the  register  information,  you   can   scroll   vertically   or
     horizontally  to view any information that may be hidden.  If the
     resized window is  larger  than  necessary  to  display  register
     information,   the   debugger  fills  the  remaining  space  with
     information (in hexadecimal format) contained in the user stack.

Resizing Displays

     You can expand and contract  displays  by  means  of  the  EXPAND
     command.   Type  HELP  EXPAND  for  a  description  of the EXPAND
     command.

Screen Mode

     When the  debugger  is  invoked,  five  predefined  displays  are
     created automatically.  The first time you enter screen mode with
     the SET MODE SCREEN command,  the  debugger  puts  three  of  the
     displays  on the screen for you:  a source display (SRC) which is
     automatically updated as you STEP or GO through your program,  an
     output  display (OUT) which captures your normal debugger output,
     and a prompt display (PROMPT) where the debugger prompts for your
     input.   The  instruction display (INST) and the register display
     (REG) are  also  created  but  not  displayed  initially.   These
     capture    the   current   instruction   stream   and   registers
     respectively.  Except for the PROMPT display, each display can be
     scrolled  back  and  forth with the SCROLL command.  You can turn
     off screen mode with the command SET MODE NOSCREEN,  after  which
     you can use the terminal in the normal manner without the display
     windows.  The displays still exist, however, and can  be  brought
     back at any time by again entering SET MODE SCREEN.

     If you are debugging a multiprocess program, in addition to these
     five  predefined  displays  the  debugger  automatically  creates
     process-specific source and instruction displays whenever  a  new
     process  comes  under  debugger  control.  Type HELP Multiprocess
     Screen_Mode_Features for complete information.

Scrolling

     All screen displays except for the PROMPT display can be scrolled
     through their screen windows by entering the SCROLL command.  For
     example, SCROLL/UP SRC scrolls the window up  over  display  SRC.
     To  avoid  having  to  specify  the  display  name on your SCROLL
     commands, you can select the display you want to  scroll  as  the
     "current  scrolling  display"  with  the  SELECT  command.   Thus
     SELECT/SCROLL SRC followed by SCROLL/UP causes  the  debugger  to
     scroll up through display SRC even through SRC was not explicitly
     named on the SCROLL  command.   For  more  information,  see  the
     SCROLL and SELECT commands.

Source Display

     A source display gives you a scrollable window into  your  source
     code.   The  predefined source display SRC has associated with it
     the command "EXAMINE/SOURCE  .%SOURCE_SCOPE\%PC".   This  command
     causes  the  display to be automatically centered at your current
     source line.  The built-in symbol  %SOURCE_SCOPE  means  scope  0
     when  source lines are available in scope 0.  Otherwise, it means
     the same as scope N, where N is the first level  going  down  the
     stack where source lines are available.

     The significance of the %SOURCE_SCOPE symbol is that if  your  PC
     value  is at a location where source lines are not available (for
     example, in an RTL routine), the  debugger  attempts  to  display
     source lines in the caller of the current routine (that is, scope
     1 or 1 level down the stack).  If  source  lines  are  still  not
     available  at  that level, the debugger tries scope 2, and so on.
     If the source display shows source lines that are not  associated
     with the current routine, an informational message to that effect
     is displayed.

     Pressing  the  keypad-key  sequence   BLUE-MINUS   displays   the
     predefined  displays SRC in the top half of the screen, OUT below
     SRC at S45, and PROMPT at the bottom of the screen at  S6.   This
     is  the default.  Pressing keypad-key KP7 places SRC in the upper
     left half of the screen (LH1), the instruction  display  INST  in
     the  upper right half of the screen (RH1), OUT below these two at
     S45, and PROMPT below OUT at S6.

Windows

     A screen window is a rectangular region on  the  terminal  screen
     defined by the four quantities (RBEG, RLEN, CBEG, CLEN).  RBEG is
     the line number at which the window starts and RLEN is the number
     of  lines  of  text  in the window.  CBEG is the column number at
     which the window starts and CLEN is the number of columns (width)
     of  the  window.  If the CBEG and CLEN numbers are omitted from a
     window definition then the window defaults to the full  width  of
     the screen.

     The debugger provides a number of predefined windows for  regions
     such  as  the top half of the screen, the top left quarter of the
     screen, and so on.  For example:

     H1 = top half of screen = (1,11,1,80)
     H2 = bottom half of screen = (13,11,1,80)
     LH1 = top left quarter of screen = (1,11,1,40)

     There are also T1, T2, and  T3  for  thirds  of  the  screen,  Q1
     through Q4 for quarters, S1 through S6 for sixths, and E1 through
     E8 for eigths.  Each of these also has a "L" for left  half  (for
     example,  LQ1) and and "R" for right half (for example, RQ1).  FS
     denotes the full screen.

     You can see all defined windows through the SHOW WINDOW  command.
     You  can  also  define your own named windows with the SET WINDOW
     command, or delete window names with the CANCEL  WINDOW  command.
     Windows  are specified on the DISPLAY and SET DISPLAY commands to
     indicate where displays are to be shown on the terminal screen.

     Example:
     DBG> DISPLAY SRC AT LH1
     DBG> DISPLAY INST AT RH1
     DBG> DISPLAY OUT AT S4
     DBG> DISPLAY PROMPT AT S56

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026