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 Expression

Built in Symbols

Debugging Configurations

Keypad

Languages

Logical Names

Messages

Multiprocess

New Features

Pathnames

Release Notes

Screen Features

Examples

Parameters

%AP

%FP

%SP

%PC

%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

Examples

Parameters

Qualifiers

Multiprocess Programs

%ADDR

%DESCR

%REF

%VAL

/AST

/NOAST

ALL

BREAK

DISPLAY

IMAGE

MODE

MODULE

RADIX

SCOPE

SOURCE

TRACE

TYPE

WATCH

WINDOW

Parameters

Examples

Qualifiers

/PREDEFINED

/USER

Examples:

Parameters

Qualifiers

/ACTIVATING

/ALL

/BRANCH

/CALL

/EVENT

/EXCEPTION

/INSTRUCTION

/LINE

/PREDEFINED

/TERMINATING

/USER

Parameters

Qualifiers

/ALL

/SUFFIX

Parameters

Qualifiers

/ALL

/NORELATED

/RELATED

Qualifiers

/OVERRIDE

Qualifiers

/MODULE

/EDIT

Examples:

Parameters

Qualifiers

/ACTIVATING

/ALL

/BRANCH

/CALL

/EVENT

/EXCEPTION

/INSTRUCTION

/LINE

/PREDEFINED

/TERMINATING

/USER

Qualifiers

/OVERRIDE

Parameters

Qualifiers

/ALL

Parameters

Qualifiers

/ALL

Examples

Parameters

Example

Examples

Default Configuration

Multiprocess Configuration

Examples

Process Relationships

Default Configuration

Multiprocess Configuration

Example:

Parameters

Examples

Parameters

/ADDRESS

/COMMAND

/KEY

/LOCAL

/PROCESS_GROUP

/VALUE

key-names

/ECHO

/IF_STATE

/LOCK_STATE

/LOG

/NOECHO

/NOIF_STATE

/NOLOCK_STATE

/NOLOG

/NOSET_STATE

/NOTERMINATE

/SET_STATE

/TERMINATE

Examples

Parameters

symbol-name

Qualifiers

key-names

/ALL

/KEY

/ALL

/LOG

/NOLOG

/NOSTATE

/STATE

/LOCAL

Examples

Parameters

Qualifiers

Qualifiers

/ASCIC

/ASCID

/ASCII:n

/ASCIW

/ASCIZ

/BYTE

/D_FLOAT

/DATE_TIME

/FLOAT

/G_FLOAT

/H_FLOAT

/INSTRUCTION

/LONGWORD

/QUADWORD

/OCTAWORD

/PACKED:n

/TASK

/TYPE

/WORD

Examples

Parameters

Qualifiers

/CLEAR

/DYNAMIC

/GENERATE

/HIDE

/MARK_CHANGE

/NODYNAMIC

/NOMARK_CHANGE

/NOPOP

/NOPROCESS

/NOPUSH

/POP

/PROCESS

/PUSH

/REFRESH

/REMOVE

/SIZE:n

/SUFFIX

Examples

Parameters

Qualifiers

/PROCESS

Parameters

Qualifiers

/EXIT

/NOEXIT

Examples

Parameters

Qualifiers

Qualifiers

/ADDRESS

/BINARY

/CONDITION_VALUE

/DECIMAL

/HEXADECIMAL

/OCTAL

Aggregate

Parameters

Qualifiers

Qualifiers

/ASCIC

/ASCID

/ASCII:n

/ASCIW

/ASCIZ

/BINARY

/BYTE

/CONDITION_VALUE

/D_FLOAT

/DATE_TIME

/DECIMAL

/DEFAULT

/FLOAT

/G_FLOAT

/H_FLOAT

/HEXADECIMAL

/INSTRUCTION

/LINE

/LONGWORD

/NOLINE

/NOSYMBOL

/OCTAL

/OCTAWORD

/OPERANDS

/PACKED:n

/PSL

/PSW

/QUADWORD

/SOURCE

/SYMBOL

/TASK

/TYPE

/WORD

Ending Debugging Session

Exiting Command Procedures

Terminating Processes

Examples

Parameters

Parameters

Examples

Key Definitions

Parameters

Qualifiers

/DOWN

/LEFT

/RIGHT

/SUFFIX

/UP

Examples

Parameters

Qualifiers

/ALL

/APPEND

/SCREEN_LAYOUT

/SUFFIX

Parameters

Examples

Multiprocess Programs

Parameters

Parameters

Parameters

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

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

CANTPAST

CIREXLST

CLIBRDFAI

CLIBRDLCK

CMDNOTDW

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

DISNAMREQ

DISNOTSEL

DISPEXISTS

DISPRLENSIZ

DIVBYZERO

DSTERRG

DSTNESDEP

DWERR

DWNOT1PROC

DYNIMGSET

DYNMODSET

EDITDISVER

EDITERROR

EDITFILE

EDITNOFILE

EDITREVVER

ENABLEAST

ENTRYMASK

ENUMRANGE

ERRACTIMG

ERRASSIGN

ERRCLSFILE

ERRCRELNM

ERRDEASSIGN

ERRFAO

ERRGETDVI

ERRGETEF

ERRINSDEC

ERRINSIGNAL

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

INITERR

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

KEYNAMERR

KEYSTATERR

LASTCHANCE

LINEINFO

LOGFILEIS

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

NODEFSCPE

NODELIMTR

NODEPDEBUG

NODIRLISM

NODIRLIST

NOELABBODY

NOELABSPEC

NOEND

NOEPTSPEC

NOEVALEXPR

NOEVENTFAC

NOEXCBRE

NOEXHND

NOFIELD

NOFREE

NOGLOBALS

NOINPAVAIL

NOINPFOC

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

NOSCOPELIST

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

NOTINSCOPE

NOTINST

NOTNUMSCOPE

NOTORIGSRC

NOTPTR

NOTRACES

NOTRAZERO

NOTRECORD

NOTREE

NOTTASKVAL

NOTUISOSC

NOTUISV30

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

OBSOLETE_2

OPCDEC

OPNOTALLOW

OPSYNTAX

OUTPUTLOST

PACSIZREQ

PARENREQ

PARSTKOVR

PASTHRU

PATHNOTACP

PATHTLONG

PATHTOOLONG

PCNOTALL

PLICVTERR

PREDEPTNOT

PROFRANOT

PROMPTCLEN

PROMPTOCCL

PROMPTRLEN

PROVRFLOW

PSHVALNYI

PXCN

QUALREQ

QUOSTRLONG

READERR

REFUSED

REGMASKHIDDEN

REGMASKMISSING

REGREQ

RENAMENOT

RESUMERR

RETURNED

RNDFCTROUT

ROPRANDF

RPCDBBDT

RPCERR

RPCINVDSC

RPCOVF

RPCUNF

RPCUNKARG

RSTERR

SCALEADD

SCALESUB

SCRNOTORIGSRC

SCRTOBIG

SCRTOSMALL

SCRUNAOPNSRC

SCRUNAREASRC

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

TASKNONULL

TASKNOREGS

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

UNHANDLED

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

Examples

Key Definitions

Parameters

Qualifiers

/DOWN

/LEFT

/RIGHT

/SUFFIX

/UP

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.2

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

Ending Debugging Session

Exiting Command Procedures

Terminating Processes

Examples

Parameters

V4.2

V4.4

V4.6

V5.0

V5.2

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

CTRLY_CTRLC

Two Process Debugger

Single Process Debugger

Keypad

Abort After Spawn

DCL Command Procedures

System Management

User Quotas

System Resources

Parameters

Parameters

Qualifiers

/SUFFIX

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

Parameters

Qualifiers

/BOTTOM

/DOWN

/LEFT

/RIGHT

/SUFFIX

/UP

/TOP

Examples

Parameters

Qualifiers

range-format

/ALL

/IDENTIFIER

/NEXT

/STRING

Examples

Parameters

Qualifiers

/ERROR

/INPUT

/INSTRUCTION

/OUTPUT

/PROGRAM

/SCROLL

/SOURCE

/SUFFIX

ABORT_KEY

ATSIGN

BREAK

DEFINE

DISPLAY

EDITOR

EVENT_FACILITY

IMAGE

KEY

LANGUAGE

LOG

MARGINS

MAX_SOURCE_FILES

MODE

MODULE

OUTPUT

PROCESS

PROMPT

RADIX

SCOPE

SEARCH

SOURCE

STEP

TASK

TERMINAL

TRACE

TYPE

WATCH

WINDOW

Parameters

Example

Parameter

Examples

Parameters

Qualifiers

/ACTIVATING

/AFTER:n

/BRANCH

/CALL

/EVENT

/EXCEPTION

/INSTRUCTION

/INSTRUCTION

/INTO

/JSB

/LINE

/MODIFY

/NOJSB

/NOSHARE

/NOSILENT

/NOSOURCE

/NOSYSTEM

/OVER

/RETURN

/SHARE

/SILENT

/SOURCE

/SYSTEM

/TEMPORARY

/TERMINATING

ADDRESS

COMMAND

PROCESS_GROUP

VALUE

Parameters

Examples

Parameters

Qualifiers

/DYNAMIC

/HIDE

/MARK_CHANGE

/NODYNAMIC

/NOPROCESS

/POP

/PROCESS

/PUSH

/REMOVE

/SIZE:n

/SUFFIX

Qualifiers

/LOG

/NOLOG

/NOSTATE

/STATE

Parameters

Parameters

Parameters:

Parameters

DYNAMIC

G_FLOAT

INTERRUPT

KEYPAD

LINE

NODYNAMIC

NOG_FLOAT

NOINTERRUPT

NOKEYPAD

NOLINE

NOOPERANDS

NOSCREEN

NOSCROLL

NOSEPARATE

NOSYMBOLIC

OPERANDS

SCREEN

SCROLL

SEPARATE

SYMBOLIC

Parameters

Parameters

Qualifiers

/ALL

/CALLS

/NORELATED

/RELATED

LOG

NOLOG

NOSCREEN_LOG

NOTERMINAL

NOVERIFY

SCREEN_LOG

TERMINAL

VERIFY

Parameters

Examples

Parameters

Qualifiers

/ALL

/DYNAMIC

/HOLD

/NODYNAMIC

/NOHOLD

/VISIBLE

Examples

Parameters

Qualifiers

/SUFFIX

/NOPOP

/NOSUFFIX

/POP

BINARY

DECIMAL

DEFAULT

HEXADECIMAL

OCTAL

Parameters

Qualifiers

/INPUT

/OUTPUT

/OVERRIDE

Examples

Parameters

Qualifiers

Description

/CURRENT

/MODULE

ALL

IDENTIFIER

NEXT

STRING

Parameters

Examples

Parameters

Qualifiers

/MODULE

/EDIT

BRANCH

CALL

EXCEPTION

INSTRUCTION

INTO

JSB

LINE

NOJSB

NOSHARE

NOSILENT

NOSOURCE

NOSYSTEM

OVER

RETURN

SHARE

SILENT

SOURCE

SYSTEM

Parameters

Examples

Parameters

Selection Qualifiers

Attribute Qualifiers

Examples

/ALL

/ABORT

/ACTIVE

/HOLD

/PRIORITY

/RESTORE

/TIME_SLICE

/VISIBLE

Examples

Qualifiers

/PAGE

/WIDTH

Examples

Parameters

Qualifiers

/ACTIVATING

/AFTER:n

/BRANCH

/CALL

/EVENT

/EXCEPTION

/INSTRUCTION

/INSTRUCTION

/INTO

/JSB

/LINE

/MODIFY

/NOJSB

/NOSHARE

/NOSILENT

/NOSOURCE

/NOSYSTEM

/OVER

/RETURN

/SHARE

/SILENT

/SOURCE

/SYSTEM

/TEMPORARY

/TERMINATING

ASCIC

ASCID

ASCIW

ASCIZ

BYTE

D_FLOAT

DATE_TIME

FLOAT

G_FLOAT

H_FLOAT

INSTRUCTION

LONG

OCTAWORD

QUADWORD

WORD

Parameters

ASCII:n

PACKED:n

TYPE=(t)

Qualifiers

Examples

/OVERRIDE

Examples

Global Section Watchpoints

Parameters

Static Nonstatic Watchpoints

Qualifiers

/AFTER:n

/INTO

/NOSILENT

/NOSOURCE

/NOSTATIC

/OVER

/SILENT

/SOURCE

/STATIC

/TEMPORARY

Parameters

Examples

ABORT_KEY

AST

ATSIGN

BREAK

CALLS

DEFINE

DISPLAY

EDITOR

EVENT_FACILITY

EXIT_HANDLERS

IMAGE

KEY

LANGUAGE

LOG

MARGINS

MAX_SOURCE_FILES

MODE

MODULE

OUTPUT

PROCESS

RADIX

SCOPE

SEARCH

SELECT

SOURCE

STACK

STEP

SYMBOL

TASK

TERMINAL

TRACE

TYPE

WATCH

WINDOW

Parameters

Example

Examples

Qualifiers

/PREDEFINED

/USER

Parameters

Example

Example

Parameters

Qualifiers

/ALL

/SUFFIX

Example:

Qualifiers

/ALL

/BRIEF

/DIRECTORY

/NOSTATE

/STATE

Parameters

Example:

Qualifiers

/NORELATED

/NOSHARE

/RELATED

/SHARE

Examples

Parameters

Qualifiers

States

/ALL

/BRIEF

/DYNAMIC

/FULL

/HOLD

/NOHOLD

/VISIBLE

Qualifiers

/EDIT

Example

Argument List

Example

Parameters

Qualifiers

/ADDRESS

/DEFINED

/DIRECT

/GLOBAL

/LOCAL

/TYPE

/USE_CLAUSE

Parameters

Selection Qualifiers

Information Qualifiers

Examples

/ALL

/HOLD

/PRIORITY

/STATE

/CALLS

/FULL

/STATISTICS

/TIME_SLICE

Examples

Qualifiers

/PREDEFINED

/USER

Qualifiers

/OVERRIDE

Qualifiers

Parameters

/ALL

Parameters

Example

Qualifiers

/INPUT

/NOWAIT

/OUTPUT

/WAIT

Examples

Multiprocess Programs

Parameters

Qualifiers

/BRANCH

/CALL

/EXCEPTION

/INSTRUCTION

/INSTRUCTION

/INTO

/JSB

/LINE

/NOJSB

/NOSHARE

/NOSILENT

/NOSOURCE

/NOSYSTEM

/OVER

/RETURN

/SHARE

/SILENT

/SOURCE

/SYSTEM

Examples

Parameters

Example

Parameters

Example

Parameters

DEBUG DEBUG — VMS 5.2

     For more detailed help,  choose  one  of  the  additional  topics
     listed below:

Additional information available:

ATTACHCALLCANCELCONNECTCTRL_CCTRL_YCTRL_Z
DECLAREDEFINEDELETEDEPOSITDISABLEDISPLAYDO
EDITENABLEEVALUATEEXAMINEEXITEXITLOOPEXPAND
EXTRACTFORGOHELPIFMOVEQUIT
REPEATSAVESCROLLSEARCHSELECTSETSHOW
SPAWNSS$_DEBUGSTEPSYMBOLIZETYPE
WHILE

@file specAddress ExpressionBuilt in SymbolsDebugging Configurations
KeypadLanguagesLogical NamesMessagesMultiprocessNew Features
PathnamesRelease NotesScreen 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 Expression

     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


ATTACH

     The ATTACH command allows you to switch to another  process.   It
     is used in the same way as the ATTACH command in DCL.

 Format:

     ATTACH process-name

 Example:

     DBG> SPAWN          ! Create SMITH_1 subprocess
     $ ATTACH SMITH      ! attach back to parent
     DBG> ATTACH SMITH_1 ! attach to subprocess

Built in Symbols

     The debugger built-in symbols 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.

     %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%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)

     3 %LANGUAGE

%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

CALL

     The CALL command enables you to execute a routine that was linked
     with  your program, independently of the normal flow of execution
     of your program.  The program does not have to include a call  to
     that  routine.   One  common  use  of  the  command  is to invoke
     procedures that dump debugging information.

 Format:

       CALL routine-name [(argument [,...])]

     The CALL command is one of the four debugger  commands  that  can
     cause  your  program  to  execute  (the  others are GO, STEP, and
     EXIT).

     When you enter the CALL command at an exception  breakpoint,  any
     breakpoints, tracepoints, or watchpoints that were previously set
     within the called routine are disabled temporarily  so  that  the
     debugger  does  not  lose  the  exception context.  However, such
     eventpoints are active  if  you  enter  the  CALL  command  at  a
     location other than an exception breakpoint.

     When you enter a CALL command, the debugger takes  the  following
     action:

     1.  Saves the current values of the general registers.

     2.  Constructs an argument list.

     3.  Executes a call to the routine specified in the  command  and
         passes any arguments.

     4.  Executes the routine.

     5.  Displays the value returned by the routine  in  R0.   By  VMS
         convention,  after a called routine has executed, register R0
         contains the function return  value  (if  the  routine  is  a
         function)  or the procedure completion status (if the routine
         is a procedure that returns a status  value).   If  a  called
         procedure  does  not return a status value or function value,
         the value in R0 may be meaningless, and the "value  returned"
         message can be ignored.

     6.  Restores the values of the general registers  to  the  values
         they had just before the CALL command was executed.

     7.  Issues the prompt.


Additional information available:

ExamplesParametersQualifiersMultiprocess Programs

Examples

     1   DBG> CALL SUB1(X)
         value returned is 19
         DBG>

     This command calls the routine SUB1, passing the address  of  "X"
     as  the  required  parameter  (by  default,  the  address  of the
     argument specified is passed).  The routine is a  function  whose
     returned value is 19.

     2   DBG> CALL SUB(%REF 1)
         value returned is 1
         DBG>

     This command passes a pointer to a memory location containing the
     numeric literal 1, into the routine SUB.

     3   DBG> SET MODULE SHARE$LIBRTL
         DBG> CALL LIB$SHOW_VM
          1785 calls to LIB$GET_VM, 284 calls to LIB$FREE_VM, 122216 bytes
             still allocated, value returned is 00000001
         DBG>

     This example shows  how  you  could  call  the  run-time  library
     routine  LIB$SHOW_VM  (in  the shareable image LIBRTL) to display
     virtual memory statistics.  The  SET  MODULE  command  makes  the
     universal  symbols  (routine names) in LIBRTL visible in the main
     image.  See the description of the /SHARE qualifier of  the  SHOW
     MODULE command for more information on this subject.

Parameters

 routine-name

     Specifies the name or the virtual address of the procedure to  be
     called.

 argument

     Specifies an argument that is required by the routine.  Arguments
     can  be  passed  by  address  (the  default),  by  descriptor, by
     reference, and by value, as described in the subtopics.

     The debugger assumes that the called routine conforms to the  VMS
     procedure  calling  standard (see the VAX Architecture Handbook).
     However, note that the debugger  does  not  know  about  all  the
     argument-passing   mechanisms   for   all   supported  languages.
     Therefore, you may need to specify how to pass  parameters--  for
     example,  use  CALL  SUB1(%VAL  X) rather than CALL SUB1(X).  See
     your language  documentation  for  complete  information  on  how
     arguments are passed to routines.

Additional information available:

%ADDR%DESCR%REF%VAL

%ADDR

     Passes the argument by address.  This is the default.

 Format

       CALL routine-name (%ADDR address-expression)

     The debugger evaluates the address  expression  and  passes  that
     address  to the routine specified.  For simple variables (such as
     X), the address of X is passed into the  routine.   This  passing
     mechanism  is how FORTRAN implements ROUTINE(X).  In other words,
     for named  variables,  using  %ADDR  corresponds  to  a  call  by
     reference  in  FORTRAN.  For other expressions, however, you must
     use the %REF function to  call  by  reference.   For  complex  or
     structured variables (such as arrays, records, and access types),
     the address is passed when you  specify  %ADDR,  but  the  called
     routine  may not handle the passed data properly.  Do not specify
     a literal value (a number or an expression composed  of  numbers)
     when using %ADDR.

%DESCR

     Passes the argument by descriptor.

 Format

       CALL routine-name (%DESCR language-expression)

     The debugger evaluates  the  language  expression  and  builds  a
     VAX-standard descriptor to describe the value.  The descriptor is
     then passed to  the  routine  you  named.   You  would  use  this
     technique to pass strings to a FORTRAN routine.

%REF

     Passes the argument by reference.

 Format

       CALL routine-name (%REF language-expression)

     The debugger evaluates  the  language  expression  and  passes  a
     pointer  to  the  value,  into  the called routine.  This passing
     mechanism corresponds to the way FORTRAN passes the result of  an
     expression.

%VAL

     Passes the argument by value.

 Format

       CALL routine-name (%VAL language-expression)

     The debugger evaluates the language  expression  and  passes  the
     value directly to the called routine.

Qualifiers

     You can specify whether you want  the  delivery  of  asynchronous
     system  traps (ASTs) enabled or disabled during the routine call.
     By default, if you do not specify /AST  or  /NOAST,  delivery  of
     ASTs  is  enabled in the called routine if, and only if, delivery
     was enabled before the CALL command was issued.

Additional information available:

/AST/NOAST

/AST

     Specifies that ASTs can be  delivered  during  execution  of  the
     called routine.

/NOAST

     Specifies that ASTs cannot be delivered during execution  of  the
     called routine.

Multiprocess Programs

     If you are using  the  multiprocess  debugging  configuration  to
     debug a multiprocess program (if the logical name DBG$PROCESS has
     the value MULTIPROCESS), note the following additional points:

     1.  The CALL command is executed in the context  of  the  visible
         process,  but images in any other unheld processes (processes
         that have not been  put  on  hold  with  a  SET  PROCESS/HOLD
         command)  are  also  allowed  to  execute.  If you use the DO
         command to broadcast a CALL command to one or more processes,
         the CALL 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 in
         the visible process is ignored.

     2.  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.


CANCEL

     Cancels breakpoints, tracepoints, and watchpoints,  and  restores
     scope and source directory search list and user-set entry/display
     modes, radix, and types to their default  values.   Also  cancels
     screen  displays  and  windows.  The item canceled depends on the
     keyword specified in the command.

 Format:

     CANCEL keyword [/qualifier] [parameters]

Additional information available:

ALLBREAKDISPLAYIMAGEMODEMODULERADIX
SCOPESOURCETRACETYPEWATCHWINDOW

Parameters

Parameters

 keyword

     Specifies the item to be canceled.  Keyword can  be  ALL,  BREAK,
     DISPLAY,  IMAGE,  MODE,  MODULE,  RADIX,  SCOPE,  SOURCE,  TRACE,
     TYPE/OVERRIDE, WATCH, or WINDOW,

 qualifier

     Depends on the keyword specified.

 parameters

     Depends on the keyword specified.

ALL

     Cancels all breakpoints, tracepoints, and watchpoints.   Restores
     some modes established with the SET MODE command to their default
     values.  Restores the scope and type to their default values.

 Format:

       CANCEL ALL [/qualifier]

     The CANCEL ALL command performs the following steps:

     1.  Cancels all breakpoints, tracepoints, and watchpoints.   This
         is  equivalent  to  entering  the  commands CANCEL BREAK/ALL,
         CANCEL TRACE/ALL, and CANCEL  WATCH/ALL.   Depending  on  the
         type  of  program  (for  example  Ada, multiprocess), certain
         predefined   breakpoints   or   tracepoints   may   be    set
         automatically  when  you  invoke  the  debugger.   By default
         (CANCEL   ALL/USER),   only   user    defined    breakpoints,
         tracepoints,  and watchpoints are canceled -- those that were
         previously set explicitly with the SET BREAK, SET TRACE,  and
         SET  WATCH  commands.   If  you  specify  /PREDEFINED but not
         /USER, all predefined  (but  no  user  defined)  breakpoints,
         tracepoints,  and  watchpoints  are canceled.  If you specify
         both /PREDEFINED and /USER, all predefined and  user  defined
         breakpoints, tracepoints, and watchpoints are canceled.

     2.  Restores the scope search list to its default value (0,1,2, .
         .   .   ,n).  This is equivalent to entering the CANCEL SCOPE
         command.

     3.  Restores  the  data  type  for  memory  locations  that   are
         associated  with  a compiler generated type to the associated
         type.   Restores  the  type  for  locations  that   are   not
         associated  with  a  compiler  generated  type  to  "longword
         integer".  This is equivalent to entering the commands CANCEL
         TYPE/OVERRIDE and SET TYPE LONGWORD.

     4.  Restores some modes established with the SET MODE command  to
         their  default  values.   This  is equivalent to entering the
         following command:

            DBG> SET MODE LINE,SYMBOLIC,NOG_FLOAT

     5.  The CANCEL ALL command does not affect the  current  language
         setting or modules included in the run-time symbol table (SET
         MODULE).

     CANCEL ALL does not affect the current language  setting  or  the
     modules included in the debugger symbol table.

Additional information available:

ExamplesQualifiers

Examples

     1    DBG> CANCEL ALL

     This command cancels all user defined  breakpoints,  tracepoints,
     and  watchpoints  and  restores  scopes, types, and some modes to
     their default values.  In this example, there are  no  predefined
     breakpoints, tracepoints, or watchpoints.

     2    DBG> CANCEL ALL
          %DEBUG-I-PREDEPTNOT, predefined eventpoint(s) not canceled

     This command cancels all user defined  breakpoints,  tracepoints,
     and  watchpoints  and  restores  scopes, types, and some modes to
     their default values.  In this example, there are some predefined
     breakpoints,  tracepoints,  or  watchpoints,  and  these  are not
     canceled, by default.

     3    DBG> CANCEL ALL/PREDEFINED

     This command cancels all predefined breakpoints, tracepoints, and
     watchpoints  and  restores scopes, types, and some modes to their
     default values.  No user  defined  breakpoints,  tracepoints,  or
     watchpoints are affected.

Qualifiers

Additional information available:

/PREDEFINED/USER

/PREDEFINED
     Cancels  all  predefined  (but  no  user  defined)   breakpoints,
     tracepoints, and watchpoints.

/USER
     Cancels  all  user  defined  (but  no  predefined)   breakpoints,
     tracepoints,  and  watchpoints.   CANCEL  ALL/USER  is assumed by
     default unless you specify /PREDEFINED.

BREAK

     Cancels breakpoints.

 Format:

       CANCEL BREAK [/qualifier] [address-expression [,...]]

     Breakpoints may be user  defined  or  predefined.   User  defined
     breakpoints  are those that you set explicitly with the SET BREAK
     command.  Predefined breakpoints, which depend  on  the  type  of
     program you are debugging (for example, Ada or multiprocess), are
     established automatically when you invoke the debugger.  Use  the
     SHOW BREAK command to identify all breakpoints that are currently
     set.  Any predefined breakpoints are identified as such.

     User defined and predefined  breakpoints  are  set  and  canceled
     independently.   For example, a location or event may have both a
     user defined and a predefined  breakpoint.   Canceling  the  user
     defined breakpoint does not affect the predefined breakpoint, and
     conversely.

     To  cancel  only  user  defined  breakpoints,  do   not   specify
     /PREDEFINED with the CANCEL BREAK command (/USER is the default).
     To cancel only predefined breakpoints,  specify  /PREDEFINED  but
     not   /USER.    To   cancel  both  user  defined  and  predefined
     breakpoints, specify both /USER and /PREDEFINED.

     In general, note that the effect of the CANCEL BREAK  command  is
     symmetrical  with  that of the SET BREAK command (even though the
     SET BREAK command is used only with  user  defined  breakpoints).
     Thus,

     to cancel  a  breakpoint  that  was  established  at  a  specific
     location,  specify  that  same location (address expression) with
     the CANCEL  BREAK  command.   To  cancel  breakpoints  that  were
     established  on  a  class  of instructions or events, specify the
     class of instructions or events with the corresponding  qualifier
     (for  example,  /LINE, /BRANCH, /ACTIVATING, /EVENT=, and so on).
     See the qualifier descriptions for more specific information.

Additional information available:

Examples:ParametersQualifiers

Examples:

     1   DBG> SET BREAK/SILENT A\B DO (EX X)
         DBG> CANCEL BREAK A\B

     This CANCEL BREAK command cancels the effect of the SET BREAK command


     2   DBG> SET BREAK/INST WHEN (A .NE. 0)
         DBG> CANCEL BREAK/INST

     This CANCEL BREAK command cancels the effect of the SET BREAK command

     3   DBG> CANCEL BREAK MAIN\LOOP+10

     This command cancels the user defined breakpoint set
     at the address expression MAIN\LOOP+10.


     4   DBG> CANCEL BREAK/ALL

     This command cancels all user defined breakpoints.


     5   DBG> CANCEL BREAK/ALL/USER/PREDEFINED

     This command cancels all user defined and predefined breakpoints.


     6   DBG_1> CANCEL BREAK/ACTIVATING

     This command cancels a previous user defined SET
     BREAK/ACTIVATING command. As a result, the debugger
     does not suspend execution when a new process is
     brought under debugger control.

     7   DBG> CANCEL BREAK/EVENT=DEPENDENTS_EXCEPTION/PREDEFINED

     This command cancels the predefined breakpoint set on
     dependent exceptions. This breakpoint is predefined
     for Ada programs.

Parameters

 address-expression

     Specifies a breakpoint to be canceled.  Do not use  the  asterisk
     wildcard  character  (*).   Do  not specify an address expression
     when using any of the qualifiers except for /EVENT,  /PREDEFINED,
     or /USER.

Qualifiers

Additional information available:

/ACTIVATING/ALL/BRANCH/CALL/EVENT/EXCEPTION
/INSTRUCTION/LINE/PREDEFINED/TERMINATING
/USER

/ACTIVATING
     Note:   This  qualifier  applies  to  a  multiprocess   debugging
     configuration (when DBG$PROCESS has the value MULTIPROCESS).

     Cancels the effect of a previous SET BREAK/ACTIVATING command.

/ALL
     By default, cancels all user defined breakpoints.  When used with
     /PREDEFINED,  cancels  all  predefined  breakpoints  but  no user
     defined breakpoints.   Specify  both  /USER  and  /PREDEFINED  to
     cancel all breakpoints.

/BRANCH
     Cancel effect of SET BREAK/BRANCH.

/CALL
     Cancel effect of SET BREAK/CALL.

/EVENT=event-name
     Cancel effect of the command
         SET BREAK/EVENT=event-name [expression[, expression...]]

 Format:
     CANCEL BREAK/EVENT=event-name [expression[, expression...]]

     The event-name keyword and  expression  parameter(s)  cancel  the
     breakpoint(s)  which was set with the same keyword and expression
     parameter.  If the expression parameter was omitted  on  the  SET
     command,  the  expression parameter should also be omitted on the
     CANCEL command.

/EXCEPTION
     Cancel effect of SET BREAK/EXCEPTION.

/INSTRUCTION
     Cancel  effect  of  the  command  SET  BREAK/INSTRUCTION  or  SET
     BREAK/INSTRUCTION=(opcode-list).

/LINE
     Cancel effect of SET BREAK/LINE.

/PREDEFINED
     Cancels a specified predefined breakpoint without  affecting  any
     user  defined  breakpoints.   When  used  with  /ALL, cancels all
     predefined breakpoints.

/TERMINATING
     Cancels the effect of a previous SET BREAK/TERMINATING command.

/USER
     Cancels a specified user defined breakpoint without affecting any
     predefined  breakpoints.   When  used with /ALL, cancels all user
     defined breakpoints.  CANCEL BREAK/USER  is  assumed  by  default
     unless you specify /PREDEFINED.

DISPLAY

     Cancels  a  specified  screen  display  or  cancels  all   screen
     displays.   You  must  specify  the  names  of the displays to be
     cancelled or the /ALL qualifier, but not  both.   When  a  screen
     display  is  cancelled, it is deleted entirely:  Its contents are
     lost, it is removed from the screen display  list,  and  all  its
     memory is released to the memory pool.

 Format:

     CANCEL DISPLAY [/qualifier] [disp_name [,disp_name...]]

 Example:

     CANCEL DISPLAY OUT

     The above cancels the output display and thus  causes  input  and
     output to be intermixed.

Additional information available:

ParametersQualifiers

Parameters

 disp_name

     The name of a screen display to be cancelled.

Qualifiers

Additional information available:

/ALL/SUFFIX

/ALL
     Specifies that all screen displays be cancelled.

/SUFFIX[=process-identifier-type]
     Note:   This  qualifier  applies  to  a  multiprocess   debugging
     configuration (when DBG$PROCESS has the value MULTIPROCESS).  Use
     this qualifier only directly after a display name.

     Appends a process-identifying suffix  to  a  display  name.   The
     suffix  denotes  the  visible  process.   This  qualifier is used
     primarily  in  command   procedures   when   specifying   display
     definitions   or  key  definitions  that  are  bound  to  display
     definitions.  Use any of  the  following  process-identifier-type
     keywords:

        PROCESS_NAME     The display-name suffix is the VMS process name.

        PROCESS_NUMBER   The display-name suffix is the process number
                         (as shown in a SHOW PROCESS display).

        PROCESS_PID      The display-name suffix is the VMS process
                         identification number (PID).

     If  you  specify  /SUFFIX  without  a  process-identifier-   type
     keyword,  the  process  identifier type used for the display-name
     suffix is, by default, the same  as  that  used  for  the  prompt
     suffix (see SET PROMPT/SUFFIX).

IMAGE

     Cancels a previously "set" shareable image (see the help  on  SET
     IMAGE  and SHOW IMAGE).  Cancelling an image deallocates the data
     structures that were built when the image was set.  If you cancel
     the  "current  image",  then  "current image" reverts back to the
     main image.  You cannot cancel the main image.

     Format:

     CANCEL IMAGE [/ALL] [image-name [,...]]

     Example:  say you want to  set  a  breakpoint  on  routine  R  in
     shareable image SHARE:

     DBG> SET IMAGE SHARE
     DBG> SET BREAK R
     DBG> CANCEL IMAGE SHARE

MODE

     Cancels radix mode, symbolic/nosymbolic mode and  G_float/D_float
     mode   settings   established  by  the  SET  MODE  command,  thus
     reestablishing language-specific default mode values.

 Format:

     CANCEL MODE

MODULE

     Removes symbols declared in the specified  module(s)  or  in  all
     modules  from  the  debugger  symbol table.  If debugger response
     time becomes a problem, it may help to cancel  modules  that  you
     are  not  referencing.   This  removes symbols from those modules
     from the debugger symbol table and thus may speed up searches  of
     the symbol table.

     You can remove the symbols  from  one  module,  from  a  list  of
     modules, or from all modules.

 Format:

     CANCEL MODULE [/qualifier] [ module[,module,...] ]

 Examples:

     DBG> CANCEL MODULE A,B,C
     DBG> CANCEL MODULE/ALL

Additional information available:

ParametersQualifiers

Parameters

 module(s)

     Specifies the name of the  module(s)  whose  symbols  are  to  be
     removed from the symbol table.

Qualifiers

Additional information available:

/ALL/NORELATED/RELATED

/ALL
     Specifies that symbols in all modules be removed from the  symbol
     table.

/NORELATED
     (Meaningful for language ADA only).   This  qualifier  tells  the
     debugger  to  cancel only the module or modules specified in this
     command.   In  language  ADA,  "related"  modules  may  also   be
     cancelled unless this qualifier is specified.

 Example:

     DBG> CANCEL MODULE/NOREL M  ! Cancel only M
     DBG> CANCEL MODULE/RELAT M  ! Cancel M and all the
                                    ! packages it imports.

/RELATED
     (Meaningful for  language  ADA  only).   This  qualifier  is  the
     default.   It  enables  automatic  module  cancelling and thereby
     cancels all those modules that are related to this one.

RADIX

     Cancels radix mode settings established by the SET RADIX command,
     thus reestablishing language-specific default radix mode values.

 Format:

     CANCEL RADIX

     CANCEL RADIX/OVERRIDE

Additional information available:

Qualifiers

Qualifiers

     /OVERRIDE is the only qualifier allowed.   CANCEL  RADIX/OVERRIDE
     cancels the effect of a previous SET RADIX/OVERRIDE command.

Additional information available:

/OVERRIDE

/OVERRIDE
     Cancels radix mode settings established by the SET RADIX/OVERRIDE
     command.

SCOPE

     Cancels the current scope search  list  established  by  the  SET
     SCOPE  command.  The scope search list is set back to its default
     value of 0,1,2,3,4,...,N.   As  a  result  of  the  CANCEL  SCOPE
     command, symbols without pathname prefixes are looked up relative
     to the current PC.  See the help on "SET SCOPE default" for  more
     precise details on what this means.

 Format:

     CANCEL SCOPE

SOURCE

     Cancels the current source directory search list  established  by
     previous SET SOURCE commands.

     The CANCEL SOURCE command without the /MODULE  qualifier  cancels
     the effect of a previous SET SOURCE command.

     The CANCEL SOURCE/MODULE=modname command cancels the effect of  a
     previous  SET  SOURCE/MODULE=modname  command  in  which the same
     module name was specified.

     The CANCEL SOURCE/EDIT command cancels the effect of  a  previous
     SET  SOURCE/EDIT.   The use of the /EDIT qualifier means that the
     source directory search list is only to be applied  on  the  EDIT
     command.

 Format:

     CANCEL SOURCE [/MODULE=modname] [/EDIT]

 Examples:

     DBG> SET SOURCE [],SRC$
     DBG> CANCEL SOURCE ! Cancels effect of above
     DBG> SET SOURCE/MODULE=M []
     DBG> CANCEL SOURCE/MODULE=M ! Cancels effect of above

Additional information available:

Qualifiers

Qualifiers

Additional information available:

/MODULE/EDIT

/MODULE=modname
     Specifies the name of a  module  for  which  a  source  directory
     search list is to be canceled.

/EDIT
     Cancels the effect of a  previous  SET  SOURCE/EDIT.   The  /EDIT
     qualifier  means that the source directory search list is only to
     be used on the EDIT command.

TRACE

     Cancels tracepoints.

 Format:

       CANCEL TRACE [/qualifier] [address-expression [,...]]

     Tracepoints may be user  defined  or  predefined.   User  defined
     tracepoints  are those that you set explicitly with the SET TRACE
     command.  Predefined tracepoints, which depend  on  the  type  of
     program you are debugging (for example, Ada or multiprocess), are
     established automatically when you invoke the debugger.  Use  the
     SHOW TRACE command to identify all tracepoints that are currently
     set.  Any predefined tracepoints are identified as such.

     User defined and predefined  tracepoints  are  set  and  canceled
     independently.   For example, a location or event may have both a
     user defined and a predefined  tracepoint.   Canceling  the  user
     defined tracepoint does not affect the predefined tracepoint, and
     conversely.

     To  cancel  only  user  defined  tracepoints,  do   not   specify
     /PREDEFINED with the CANCEL TRACE command (/USER is the default).
     To cancel only predefined tracepoints,  specify  /PREDEFINED  but
     not   /USER.    To   cancel  both  user  defined  and  predefined
     tracepoints, specify both /USER and /PREDEFINED.

     In general, note that the effect of the CANCEL TRACE  command  is
     symmetrical  with  that of the SET TRACE command (even though the
     SET TRACE command is used only with  user  defined  tracepoints).
     Thus,

     to cancel  a  tracepoint  that  was  established  at  a  specific
     location,  specify  that  same location (address expression) with
     the CANCEL  TRACE  command.   To  cancel  tracepoints  that  were
     established  on  a  class  of instructions or events, specify the
     class of instructions or events with the corresponding  qualifier
     (for  example,  /LINE, /BRANCH, /ACTIVATING, /EVENT=, and so on).
     See the qualifier descriptions for more specific information.

Additional information available:

Examples:ParametersQualifiers

Examples:

     1   DBG> SET TRACE X DO (SHOW CALLS)
         DBG> CANCEL TRACE X

     This CANCEL TRACE command cancels the effect of the SET TRACE command


     2   DBG> SET TRACE/INST WHEN (A .NE. 0)
         DBG> CANCEL TRACE/INST

     This CANCEL TRACE command cancels the effect of the SET TRACE command

     3   DBG> CANCEL TRACE MAIN\LOOP+10

     This command cancels the user defined tracepoint at
     the location MAIN\LOOP+10.


     4   DBG> CANCEL TRACE/ALL

     This command cancels all user defined tracepoints.


     5   DBG_1> CANCEL TRACE/TERMINATING

     This command cancels a previous user defined SET
     TRACE/TERMINATING command. As a result, a tracepoint
     is not triggered when a process performs an image exit.

Parameters

 address-expression

     Specifies a tracepoint to be canceled.  Do not use  the  asterisk
     wildcard  character  (*).   Do  not specify an address expression
     when using any of the qualifiers except for /EVENT,  /PREDEFINED,
     or /USER.

Qualifiers

Additional information available:

/ACTIVATING/ALL/BRANCH/CALL/EVENT/EXCEPTION
/INSTRUCTION/LINE/PREDEFINED/TERMINATING
/USER

/ACTIVATING
     Note:   This  qualifier  applies  to  a  multiprocess   debugging
     configuration (when DBG$PROCESS has the value MULTIPROCESS).

     Cancels the effect of a previous SET TRACE/ACTIVATING command.

/ALL
     Cancel all tracepoints.

/BRANCH
     Cancel effect of SET TRACE/BRANCH.

/CALL
     Cancel effect of SET TRACE/CALL.

/EVENT=
     Cancel effect of the command
         SET TRACE/EVENT=event-name [expression[, expression...]]

 Format:
     CANCEL TRACE/EVENT=event-name [expression[, expression...]]

     The event-name keyword and  expression  parameter(s)  cancel  the
     tracepoint(s)  which was set with the same keyword and expression
     parameter.  If the expression parameter was omitted  on  the  SET
     command,  the  expression parameter should also be omitted on the
     CANCEL command.

/EXCEPTION
     Cancel effect of SET TRACE/EXCEPTION.

/INSTRUCTION
     Cancel    effect    of    SET    TRACE/INSTRUCTION     or     SET
     TRACE/INSTRUCTION=(opcode-list).

/LINE
     Cancel effect of SET TRACE/LINE.

/PREDEFINED
     Cancels a specified predefined tracepoint without  affecting  any
     user  defined  tracepoints.   When  used  with  /ALL, cancels all
     predefined tracepoints.

/TERMINATING
     Cancels the effect of a previous SET TRACE/TERMINATING command.

/USER
     Cancels a specified user defined tracepoint without affecting any
     predefined  tracepoints.   When  used with /ALL, cancels all user
     defined tracepoints.  CANCEL BREAK/USER  is  assumed  by  default
     unless you specify /PREDEFINED.

TYPE

     Cancels  the  debugger  override  type  established  by  the  SET
     TYPE/OVERRIDE  command, thus setting the current override type to
     "none."

     As a result of the CANCEL TYPE/OVERRIDE command, program entities
     are  interpreted  in  compiler-generated  types or in the default
     type.

 Format:

     CANCEL TYPE/OVERRIDE

Additional information available:

Qualifiers

Qualifiers

Additional information available:

/OVERRIDE

/OVERRIDE
     Must be specified.  The minimum abbreviation is /OVERR.

WATCH

     Cancels the specified watchpoint(s).

     If  you  specify  an  address-expression  as  a  parameter,   the
     watchpoint  at the location denoted by that address-expression is
     canceled.  If you specify /ALL, all watchpoints are canceled.

 Format:
      CANCEL WATCH [/qualifier]
              [address-expression [,address-expression...]]

 Examples:
     DBG> SET WATCH A[1] DO (SHOW CALLS)
     DBG> CANCEL WATCH A[1] ! Cancels effect of above
     DBG> CANCEL WATCH/ALL  ! Cancels all watchpoints

Additional information available:

ParametersQualifiers

Parameters

 address-expression

     Specifies the location of the watchpoint to be canceled.

Qualifiers

Additional information available:

/ALL

/ALL
     Specifies that all watchpoints be canceled.

WINDOW

     Cancels one  or  more  specified  screen  window  definitions  or
     cancels  all such definitions.  You must specify the names of the
     screen windows to be cancelled or the  /ALL  qualifier,  but  not
     both.    When  a  screen  window  definition  is  cancelled,  the
     corresponding window name is  no  longer  available  for  use  in
     DISPLAY or SET DISPLAY commands.  The command does not affect any
     existing screen displays.

 Format:

     CANCEL WINDOW [/ALL] [wind-name [,wind-name...]]

 Example:

     CANCEL WINDOW Q1,Q2

Additional information available:

ParametersQualifiers

Parameters

 wind-name

     The name of a screen window to be cancelled.

Qualifiers

Additional information available:

/ALL

/ALL
     Specifies that all screen window definitions be cancelled.   Note
     that  this  cancels all predefined as well as user-defined window
     definitions.

CONNECT

     Note:  This command applies  only  to  a  multiprocess  debugging
     configuration (when DBG$PROCESS has the value MULTIPROCESS).

     Interrupts an image that is running without debugger  control  in
     another  process  and brings that process under debugger control.
     When used without a parameter, brings any spawned process that is
     waiting to connect to the debugger under debugger control.

 Format:

       CONNECT [/qualifier] [process-spec[, . . . ]]

     When you specify a process, the CONNECT command  enables  you  to
     interrupt  an  image  that is running without debugger control in
     that process and bring the process under debugger  control.   The
     command  is  useful  if,  for example, you run a debuggable image
     with the DCL command RUN/NODEBUG or  if  your  program  issues  a
     LIB$SPAWN  run-time library call or a $CREPRC system service call
     that does not invoke the debugger.

     You can bring a process under debugger  control  in  this  manner
     only  if  that  process  is  in  the same job tree as the process
     running the debugging  session  (the  process  running  the  main
     debugger  image,  DEBUGSHR.EXE),  and  only  if the image was not
     linked with the /NOTRACEBACK  qualifier.   Also,  you  have  full
     symbolic  information  for  that  image  only if its modules were
     compiled and linked with the /DEBUG command qualifier.

     When the process is brought under debugger control, execution  of
     the image is suspended at the point at which it was interrupted.

     When used without a parameter, the  CONNECT  command  brings  any
     processes  that  are waiting to connect to your debugging session
     under debugger control.  If no process is waiting, you can  press
     CTRL/C to abort the CONNECT command.

     By default, a tracepoint is triggered when a process  is  brought
     under debugger control.  This predefined tracepoint is equivalent
     to that resulting from entering the command SET TRACE/ACTIVATING.
     The  process is then known to the debugger and is identified in a
     SHOW PROCESS display.

Additional information available:

ExamplesParameters

Examples

     1   DBG_1> CONNECT

     This command brings any processes that are waiting to
     be connected to the debugger under debugger control.

     2   DBG_1> CONNECT JONES_3

     This command interrupts the image running in process
     JONES_3 and brings the process under debugger control.
     Process JONES_3 must be in the same job tree as the
     process where the debugger was invoked. Also, the
     image must not have been linked with the /NOTRACEBACK qualifier.

Parameters

 process-spec

     Specifies a process in  which  an  image  to  be  interrupted  is
     running.   The  process  must  be  in  the  same  job tree as the
     debugging session.  Use any of the following forms:

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


CTRL_C

     When  entered  from  within  a  debugging  session,  aborts   the
     execution  of  a debugger command or interrupts program execution
     without interrupting the debugging session.  This is useful when,
     for  example, the program is executing an infinite loop that does
     not have a breakpoint, or you want to abort  a  debugger  command
     that  takes a long time to complete.  The debugger prompt is then
     displayed, so that you can enter debugger commands.

 Format:

       <CTRL/C>

     After a CTRL/C interruption,  any  processes  of  a  multiprocess
     program  that  were  executing  images  are  in the "interrupted"
     state.

     If your program already has a CTRL/C AST service routine enabled,
     use  the  SET  ABORT_KEY  command  to assign the debugger's abort
     function to another CTRL-key sequence.  Note, however, that  many
     CTRL-  key  sequences  have VMS predefined functions, and the SET
     ABORT_KEY command enables you to override such  definitions  (see
     the  VMS  DCL  Concepts Manual).  Some of the CTRL-key characters
     not used by the VMS operating system are G, K, N, and P.

     If your program does  not  have  a  CTRL/C  AST  service  routine
     enabled,  and you assign the debugger's abort function to another
     CTRL-key sequence, the CTRL/C sequence then behaves  like  CTRL/Y
     ---  that is, it interrupts the debugging session and returns you
     to DCL level.

     Do not use CTRL/Y from within a debugging  session.   Always  use
     either CTRL/C or an equivalent CTRL-key sequence established with
     the SET ABORT_KEY command.

     Note that you can use the SPAWN and ATTACH commands to leave  and
     return  to  a  debugging  session  without  losing  the debugging
     context.

Additional information available:

Example

Example

         DBG> GO
           ...
         <CTRL/C>

         %DEBUG-W-ABORTED, command aborted by user request
         DBG> EXAMINE/BYTE 1000:101000  !should have typed 1000:1010
         1000: 0
         1004: 0
         1008: 0
         1012: 0
         1016: 0
         <CTRL/C>
         %DEBUG-W-ABORTED, command aborted by user request
         DBG>

     This example shows how to use the CTRL/C sequence to,
     first, interrupt program execution, and then, abort
     the execution of a debugger command.

CTRL_Y

     Pressing CTRL/Y at DCL level enables you to  interrupt  an  image
     that  is  running  without debugger control, so that you can then
     invoke the debugger with the DCL DEBUG command.

 Format:

       <CTRL/Y>

     Note that you can bring an image under debugger control only  if,
     as  a  minimum, that image was linked with the /TRACEBACK command
     qualifier (/TRACEBACK is a LINK command default).  Also, you  can
     reference  all of the image's symbols while debugging only if its
     modules  were  compiled  and  linked  with  the  /DEBUG   command
     qualifier   (in   that  case,  you  could  use  the  DCL  command
     RUN/NODEBUG to execute the image without the debugger).

     When you press CTRL/Y to interrupt the image's execution, control
     is  passed  to the DCL command interpreter.  If you then type the
     DCL DEBUG command, the interrupted image is brought under control
     of  the  debugger.   The  debugger  sets  its  language dependent
     parameters to the source language of the module  where  execution
     was  interrupted and displays its prompt.  You can then determine
     where execution was suspended by issuing  a  SHOW  CALLS  command
     (and  a  SHOW  PROCESS  command,  in  the  case of a multiprocess
     program).

     When a new debugging session is started, a process is created  to
     run  the  main  debugger  image  (DEBUGSHR.EXE) that controls the
     session.  The main  debugger  process  is  a  subprocess  of  the
     process  that  is running the image to be debugged.  The debugger
     displays its banner when a new session is started.

     Other details about the effect  of  a  CTRL/Y  -  DEBUG  sequence
     depends on the debugging configuration (default or multiprocess),
     which is determined by the current definition of the logical name
     DBG$PROCESS  in  the  process  where  the  interrupted  image was
     executing.

     Do not use CTRL/Y from within a debugging session.  Instead,  use
     CTRL/C  (or  an equivalent CTRL-key sequence established with the
     SET_ABORT_KEY command) This enables you to abort the execution of
     a  debugger  command  or  to  interrupt program execution without
     interrupting the debugging session.

Additional information available:

ExamplesDefault ConfigurationMultiprocess Configuration

Examples

     1   $ RUN/NODEBUG TEST_B
             ...
         <CTRL/Y>
          Interrupt
         $ DEBUG

                  VAX DEBUG Version *****

         %DEBUG-I-INITIAL, language is ADA, module set to SWAP
         DBG>

     The  RUN/NODEBUG  command  executes  the  image  TEST_B   without
     debugger  control.   Execution  is  interrupted with CTRL/Y.  The
     DEBUG command then  causes  the  debugger  to  be  invoked.   The
     debugger   displays   its  banner,  sets  the  language-dependent
     parameters to the language (Ada, in  this  case)  of  the  module
     (SWAP)  where execution was interrupted, and displays the prompt.
     This is the default debugging configuration, as indicated by  the
     DBG> prompt.


     2   $ DEFINE/JOB DBG$PROCESS MULTIPROCESS
         $ RUN/NODEBUG PROG2
             ...
         <CTRL/Y>
         Interrupt
         $ DEBUG
                  VAX DEBUG Version *****

         %DEBUG-I-INITIAL, language is FORTRAN, module set to SUB4
         predefined trace on activation at SUB4\%LINE 12 in %PROCESS_NUMBER 1
             12:       K = K + 1
         DBG_1>

     The  DEFINE/JOB  command  establishes  a  multiprocess  debugging
     configuration.   The RUN/NODEBUG command executes the image PROG2
     without debugger control.  The CTRL/Y - DEBUG sequence interrupts
     execution  and  invokes  the  debugger.   The  VAX  DEBUG  banner
     indicates that a new debugging session  has  been  started.   The
     process-specific   prompt  (DBG_1>)  indicates  that  this  is  a
     multiprocess configuration and that  execution  is  suspended  in
     process  1,  which  is  running PROG2.  The activation tracepoint
     identifies the location  where  execution  was  interrupted  (and
     where the debugger took control of the process).

Default Configuration

     The default debugging configuration is achieved when  DBG$PROCESS
     is either undefined or has the value DEFAULT.  In this case a new
     default debugging session is started every time  you  invoke  the
     debugger with the CTRL/Y -- DEBUG sequence.

Multiprocess Configuration

     The  multiprocess  debugging  configuration  is   achieved   when
     DBG$PROCESS  has  the  job-wide definition MULTIPROCESS.  In this
     case, the effect of a CTRL/Y -- DEBUG sequence is as follows:

      o  If a multiprocess debugging session does not already exist in
         the  same  job  tree  as  the process running the interrupted
         image, a new multiprocess debugging session is created.

      o  If a multiprocess debugging session  already  exists  in  the
         same  job  tree,  the  interrupted image and its process come
         under control of that session.  In  this  case  the  debugger
         does not display its banner.

     Note that, within a debugging session, you can  use  the  CONNECT
     command  to  connect  an  image  that is running without debugger
     control in another  process  (of  the  same  job  tree)  to  that
     debugging session.

CTRL_Z

     Pressing CTRL/Z  causes  orderly  termination  of  the  debugging
     session.  It is identical in effect to the EXIT command.

 Format:

       <CTRL/Z>

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        |
                   +-----------------------+

DECLARE

     This command is only valid inside a debugger  command  procedure.
     The  command  is  used  to bind the actual parameters to names of
     formal parameters inside the command procedure.

     In the simplest case, this could look like DECLARE A,B,C.   Then,
     if three parameters were passed in to the command procedure, they
     can be referenced inside the command procedure by the names A, B,
     and C.  The number of parameters to the procedure is given by the
     symbol %PARCNT (type HELP Built_in_Symbols %PARCNT).

 Format:

     DECLARE name [:kind] [, name [:kind] ...]

Additional information available:

Example:Parameters

Example:

     $ CREATE DUMPMEM.COM
     DECLARE P1:ADDRESS,P2:VALUE
     EXAMINE P1:P1+P2

Parameters

 name

     The name of the  formal  parameter.   This  can  be  composed  of
     alphabetics  (A-Z)  and  numerics  (0-9)  and  must start with an
     alphabetic.

 kind

     Can be any of ADDRESS, COMMAND, or VALUE,  corresponding  to  the
     three kinds of DEFINE symbols.

DEFINE

     When used with the /ADDRESS, /COMMAND, /PROCESS_GROUP, or  /VALUE
     qualifier  (/ADDRESS  is the default), the DEFINE command is used
     to assign a symbolic name (a string) to an address expression,  a
     debugger command, a group of processes, or a value, respectively.
     This enables you to define an abbreviated name or string that you
     can  then  use  to  refer  to  an  address, a command, a group of
     processes, or a value.

     When used with /KEY, the DEFINE  command  is  used  to  assign  a
     string  to  a  function  key.  See the /KEY subtopic for complete
     information on DEFINE/KEY.

     See the  /PROCESS_GROUP  subtopic  for  complete  information  on
     DEFINE/PROCESS_GROUP.

 Format for /ADDRESS /COMMAND or /VALUE:

       DEFINE [/qualifier] symbol=expression [,symbol=expression ...]

Additional information available:

ExamplesParameters

/ADDRESS/COMMAND/KEY/LOCAL/PROCESS_GROUP
/VALUE

Examples

     Note:   See  the  /KEY  subtopic  for  additional   examples   of
     DEFINE/KEY.   See  the  /PROCESS_GROUP  subtopic  for examples of
     DEFINE/PROCESS_GROUP.


     ! In the following example we define a short name "X" for a
     ! program location whose name is long. Note that DEFINE/ADDRESS
     ! is the default, so we do not need to specify it here.
     !
     DBG> DEFINE X = ROUTINENAME\SUBROUTINENAME\VARNAME
     DBG> EX X
     ROUTINENAME\SUBROUTINENAME\VARNAME: 17

     ! The following abbreviates a debugger command.
     !
     DBG> DEF/COM Z = "STEP/SILENT; EX ARR[I]"
     DBG> Z     ! This now does the above command

     ! The following redefines the keypad key KP0
     !
     DBG> DEF/KEY/TERM/NOECHO KP0 "STEP/SILENT; EX ARR[I]"


Parameters

 symbol

     Specifies the name of the symbol to be defined.  The  symbol  can
     be composed of alphanumeric (A-Z and 0-9) characters and must not
     start with a numeric.

     For DEFINE/KEY, key-name must be the name of a keypad key.

 expression

     For DEFINE/ADDRESS, any address expression.

     For DEFINE/COMMAND or DEFINE/KEY, any string enclosed  in  quotes
     (").  Quotes inside quotes must be doubled.

     For DEFINE/VALUE, any language expression in  the  currently  set
     language.

/ADDRESS

     This specifies that the expression is to  be  interpreted  as  an
     address.   The  defined  symbol can then be used anywhere that an
     address expression  is  allowed,  for  example,  in  the  EXAMINE
     command,  in  the  SET WATCH command, and so on.  /ADDRESS is the
     default.

 Example:

     DBG> DEFINE X = PROGRAM\VARNAME[4].COMPNAME
     DBG> SET WATCH X
     DBG> EXAM X

/COMMAND

     This specifies that the expression is  to  be  interpreted  as  a
     string  containing  a  debugger  command.  The defined symbol can
     then be used as a debugger command, and it is expanded  into  the
     given  string.  You can also define just the initial portion of a
     debugger command.

 Example:

     DBG> DEF/COM EB = "EXAM/BINARY/LONG "
     DBG> EB Y
     PROGRAM\Y: 11000111 00000000 10000001 01111110

/KEY

     DEFINE/KEY equates a string to a keypad key.  This command  gives
     the  same  capabilities  as  DEFINE/KEY  in DCL, and has the same
     syntax.

     You must have mode set  to  "KEYPAD".   Default  definitions  are
     provided  (see  "HELP  KEYPAD").   DEFINE/KEY lets you change the
     default definitions.

 Format:

       DEFINE/KEY [/qualifiers]  key-name  "key-definition"

 Examples

     DBG> DEFINE/KEY/NOECHO/TERMINATE KP0 "STEP"
     DBG> DEFINE/KEY/IF_STATE=GOLD KP1 "EXAMINE X"

Additional information available:

key-names

/ECHO/IF_STATE/LOCK_STATE/LOG/NOECHO/NOIF_STATE
/NOLOCK_STATE/NOLOG/NOSET_STATE/NOTERMINATE
/SET_STATE/TERMINATE

key-names

        Key-name        LK201           VT100-type      VT52-type

        PF1             PF1             PF1             PF1
        PF2             PF2             PF2             PF2
        PF3             PF3             PF3             PF3
        PF4             PF4             PF4             PF4
        KP0,...,KP9     0,1,...,9       0,1,...,9       0,1,...,9
        PERIOD          .               .               .
        COMMA           ,               ,               ,
        MINUS           -               -               -
        ENTER           Enter           ENTER           ENTER
        UP              ^               ^               ^
        DOWN            V               V               V
        LEFT            <-              <-              <-
        RIGHT           ->              ->              ->
        E1              Find            N/A             N/A
        E2              Insert Here     N/A             N/A
        E3              Remove          N/A             N/A
        E4              Select          N/A             N/A
        E5              Prev Screen     N/A             N/A
        E6              Next Screen     N/A             N/A
        HELP            Help            N/A             N/A
        DO              Do              N/A             N/A
        F6,F7,...,F20   F6,F7,...,F20   N/A             N/A

/ECHO

     (Default) Specifies that the keypad definition be echoed  on  the
     terminal when the key is used.

/IF_STATE=state-name

     Specifies that the key definition applies  only  to  that  state.
     So, for example, if the PF1 key sets you to "GOLD" state, and you
     enter

      DEFINE/KEY/IF_STATE=GOLD KP0 "EXAMINE X"

     then the sequence "PF1", "KP0" expands to "EXAMINE X".

/LOCK_STATE

     Specifies that the state set by the  SET_STATE  qualifier  is  to
     remain the active state until explicitly changed.

/LOG

     (Default)  Controls  whether  the  system  displays   a   message
     indicating that the key definition has been successfully created.

/NOECHO

     Specifies that  the  keypad  definition  not  be  echoed  on  the
     terminal when the key is used.

/NOIF_STATE

     (Default) Specifies that the key is to be defined for the current
     state only.

/NOLOCK_STATE

     (Default) Specifies that the state transition  specified  by  the
     current  key take effect only until the next terminator character
     is typed, or until after the next function key is pressed.

/NOLOG

     Inhibits display of the message confirming the key definition.

/NOSET_STATE

     (Default) Do not change the current state when the  function  key
     being defined is entered.

/NOTERMINATE

     (Default) Specifies that the key expansion does not terminate the
     command.

/SET_STATE=state-name

     Specifies that using the key has the effect of putting  you  into
     the specified state when the key being defined is used.

/TERMINATE

     Specifies that the keypad key terminates the command.

/LOCAL

     Specifies that the symbol definition  is  local  to  the  command
     procedure  and  is  deleted when the command procedure is exited.
     This qualifier is only valid for /ADDRESS, /COMMAND, and /VALUE.

/PROCESS_GROUP

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

     The DEFINE/PROCESS_GROUP command assigns a  symbolic  name  to  a
     list  of  process specifications.  You can then use the symbol in
     any command where a list of process  specifications  is  allowed.
     The command does not verify the existence of a specified process.
     This enables you to specify processes that do not yet exist.

 Format

       DEFINE/PROCESS_GROUP  process-group-name [=process-spec[, . . . ]]

     To   identify   a   symbol   that   was    defined    with    the
     DEFINE/PROCESS_GROUP   command,   use   the  SHOW  SYMBOL/DEFINED
     command.   To  delete  a  symbol  that  was  defined   with   the
     DEFINE/PROCESS_GROUP command, use the DELETE command.

Additional information available:

ExamplesParameters

Examples

     1   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

     This DEFINE/PROCESS_GROUP command assigns the symbolic
     name SERVERS to the process group consisting of FILE_
     SERVER and NETWORK_SERVER. The SHOW PROCESS SERVERS
     command displays information about the processes that
     make up the group SERVERS.


     2   USER_3> DEFINE/PROCESS_GR G1 = %PROCESS_NUMBER 1,%VISIBLE_PROCESS
         USER_3> SHOW SYMBOL/DEFINED G1
         defined G1
             bound to: "%PROCESS_NUMBER 1, %VISIBLE_PROCESS"
             was defined /process_group
         USER_3> DELETE G1

     This DEFINE/PROCESS_GROUP command assigns the symbolic
     name G1 to the process group consisting of process
     1 and the visible process (process 3). The command
     SHOW SYMBOL/DEFINED G1 identifies the defined symbol
     G1. The command DELETE G1 deletes the symbol from the
     DEFINE symbol table.


     3   DBG_2> DEFINE/PROCESS_GROUP A = B,C,D
         DBG_2> DEFINE/PROCESS_GROUP B = E,F,G
         DBG_2> DEFINE/PROCESS_GROUP E = I,J,A
         %DEBUG-E-NORECSYM, recursive PROCESS_GROUP symbol definition
           encountered at or near "A"

     This series of DEFINE/PROCESS_GROUP commands
     illustrate valid and invalid uses of the command.

Parameters

 process-group-name

     Specifies a symbolic name to be assigned to  a  list  of  process
     specifications.    The   symbolic   name   can   be  composed  of
     alphanumeric characters and underscores.  The  debugger  converts
     lowercase   alphabetic   characters   to  uppercase.   The  first
     character must not be a number.  The symbolic  name  must  be  no
     more than 31 characters long.

 process-spec

     Specifies a process.  Use any of the following forms:

     [%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.
                                     Process numbers appear in a
                                     SHOW PROCESS display.

     process-group-name              A symbol defined with the
                                     DEFINE/PROCESS_GROUP command to
                                     represent a group of processes.
                                     Do not specify a recursive
                                     symbol definition.

     %NEXT_PROCESS                   The 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 (*)

     If you do not specify a process, the symbolic name is created but
     contains no process entries.

/VALUE

     Specifies that the expression is to be interpreted as a value  in
     the  current  language.   The  defined  symbol  can  then be used
     anywhere a value expression is allowed, such as  in  an  EVALUATE
     command.

 Example:

     ! The following defines an abbreviation for a double-floating
     number.
     !
     DBG> DEF/VAL F = 1.103763783D27
     DBG> EVAL F + 1.0D27
     2.103763783D27

DELETE

     The command DELETE "symbol-name" deletes a symbol definition that
     was established with the DEFINE command.  (Note that, to delete a
     key definition, you must use the command  DELETE/KEY  "key-name".
     See the /KEY subtopic for information).

 Format:
      DELETE[/qualifier] [symbol-name[,...]]

 Examples:

     DBG> DEFINE A = MAIN\VAR1
     DBG> EXAM A
     MAIN\VAR1: 5
     DBG> DELETE A  ! Cancels effect of "DEFINE A"
     DBG> EXAM A
     %DEBUG-E-NOSYMBOL, symbol 'A' is not in the symbol table

Additional information available:

symbol-nameQualifiers

symbol-name

     symbol-name can be any name that was previously defined with  the
     DEFINE command

Qualifiers

Additional information available:

key-names

/ALL/KEY

key-names

        Key-name        LK201           VT100-type      VT52-type

        PF1             PF1             PF1             PF1
        PF2             PF2             PF2             PF2
        PF3             PF3             PF3             PF3
        PF4             PF4             PF4             PF4
        KP0,...,KP9     0,1,...,9       0,1,...,9       0,1,...,9
        PERIOD          .               .               .
        COMMA           ,               ,               ,
        MINUS           -               -               -
        ENTER           Enter           ENTER           ENTER
        UP              ^               ^               ^
        DOWN            V               V               V
        LEFT            <-              <-              <-
        RIGHT           ->              ->              ->
        E1              Find            N/A             N/A
        E2              Insert Here     N/A             N/A
        E3              Remove          N/A             N/A
        E4              Select          N/A             N/A
        E5              Prev Screen     N/A             N/A
        E6              Next Screen     N/A             N/A
        HELP            Help            N/A             N/A
        DO              Do              N/A             N/A
        F6,F7,...,F20   F6,F7,...,F20   N/A             N/A

Additional information available:

/ALL/LOG/NOLOG/NOSTATE/STATE/LOCAL

/ALL
     Deletes all key definitions in the specified states.

/LOG
     Prints an informational message for each key deleted.  (Default)

/NOLOG
     Inhibits informational messages for the deleted keys.

/NOSTATE
     (Default) The DELETE command applies to the current state only.

/STATE=(state-name[,...])
     Deletes key definitions for the given state(s).

/LOCAL
     Deletes the (local) definition of the specified symbol  from  the
     current  command procedure.  The symbol must have been previously
     defined with the DEFINE/LOCAL command.

/ALL

     Delete  all  global  definitions  established  with  the   DEFINE
     command.   If  you  specify /LOCAL, deletes all local definitions
     established with the DEFINE command that are associated with  the
     current  command  procedure (but not the global definitions).  Do
     not specify a symbol name with /ALL.

/KEY

     DELETE/KEY deletes a key definition that was established with the
     DEFINE/KEY command or was established by default by the debugger.
     This provides the same capability as the DCL command DELETE/KEY.

 Format:

     DELETE/KEY[/qualifier] [key-name]

 Examples:

     DBG> DEFINE/KEY F6 "STEP"
     DBG> DELETE/KEY F6 ! Cancels effect of above

DEPOSIT

     The DEPOSIT command is used to  change  the  contents  of  memory
     locations  in  your program.  The value specified to the right of
     the equal sign is deposited into the location  specified  to  the
     left  of  the equal sign.  Type conversion is done, if necessary,
     according to the rules of the currently set language.   In  other
     words,  "DEPOSIT  A  =  B"  should  have  the  same effect as the
     assignment statement "A = B" in your program.  (Note - for PASCAL
     and ADA, substitute ":=" for "=" in the above sentence).

     You can also  change  the  assembly-language  instructions  being
     executed   using   the   DEPOSIT/INSTRUCTION  command.   See  the
     qualifier /INSTRUCTION for details.


 Format:

     DEPOSIT [/qualifier] address-expression = expression

     DEPOSIT [/qualifier] address-expression  :=  expression  (PASCAL,
     ADA)

Additional information available:

ExamplesParametersQualifiersQualifiers

Examples

     DBG> DEPOSIT L = 10
     DBG> DEPOSIT/FLOAT L = 1.1
     DBG> DEPOSIT/INSTRUCTION %LINE 100 = 'MOVL R0,R1'
     DBG> DEP X = %HEX 10

Parameters

 address-expression

     Specifies the location to be deposited.

 expression

     Specifies the value to be deposited.  This is usually a  constant
     (for  example,  "DEPOSIT  X  =  2"),  but it may be an expression
     (e..g., "DEPOSIT X = X + 2").

Qualifiers

     The  qualifiers  on  DEPOSIT  are  used  to  override  the   type
     information associated with the location.  For example, suppose F
     is a floating point number.  If you do

     DBG> DEPOSIT F = 1

     then the debugger converts integer 1 to floating 1.0, and put the
     1.0  into  location F.  But if you want to put integer 1 into the
     location, you need to override the  type  of  F  with  the  /LONG
     (integer longword) qualifier:

     DBG> DEPOSIT/LONG F = 1

     See the individual subtopics for a description of each qualifier.

Qualifiers

Additional information available:

/ASCIC/ASCID/ASCII:n/ASCIW/ASCIZ/BYTE/D_FLOAT
/DATE_TIME/FLOAT/G_FLOAT/H_FLOAT/INSTRUCTION
/LONGWORD/QUADWORD/OCTAWORD/PACKED:n
/TASK/TYPE/WORD

/ASCIC

     Deposit a counted ascii string into the target.  This is a string
     in  which  the  first  byte  specifies  the  length.  /AC is also
     accepted as an abbreviation for /ASCIC.  For example:

     DBG> DEPOSIT/AC X = "111"
     DBG> EXAM/HEX/LONG X
     X: 31313103

/ASCID

     The target of the deposit must contain a string descriptor.   The
     expression  on  the right-hand side must be a string.  The string
     is deposited into the address given by the string descriptor.  If
     the  lengths  do not match then the string is either truncated on
     the right or padded with  blanks  on  the  right.   /AD  is  also
     accepted.

     Example:

     DBG> EXAM/QUAD/HEX D
     D: 7FFF0000 01E00004
     DBG> DEP/AD D = "ABCD"
     DBG> EXAM/ASCII:4 7FFF0000
     7FFF0000: "ABCD"
     DBG> EXAM/AD D
     D: "ABCD"

/ASCII:n

     Deposits "n" bytes of  string  into  the  target  location.   The
     expression  on  the  right-hand-side  must  be  a string.  If its
     length is not "n" then it is truncated or padded with  blanks  on
     the  right.   If "n" is omitted then the debugger uses the actual
     length of the data item at the target location.

     Example:

     DBG> DEPOSIT/ASCII:5 X = "ABCDE"
     DBG> EXAM/ASCII:5 X
     X: "ABCDE"

/ASCIW

     A "asciw string" (a string with a word count at the beginning) is
     depositing  into the target location.  The right-hand-side of the
     deposit must specify a string.

     /AW is also accepted.

     Example:

     DBG> DEPOSIT/AW X = "11"
     DBG> EXAM/HEX/LONG X
     X: 31310002

/ASCIZ

     The right-hand-side must be a string.  The  string  is  deposited
     into the target followed by a zero byte indicating end of string.
     /AZ is also accepted.

     Example:

     DBG> DEP/AZ X = "AAA"
     DBG> EXA/LONG/HEX X
     X: 00313131

/BYTE

     One byte is deposited into the target location.

     Example:

     DBG> EXA/HEX X
     X: 0FFFFFFFF
     DBG> DEP/BYTE X = 0
     DBG> EXA/HEX X
     X: 0FFFFFF00

/D_FLOAT

     Specifies that the D_floating type (length 8 bytes) be associated
     with the target of the deposit.  The right-hand-side is converted
     to d_float and deposited into the specified location.

     Example:

     DBG> DEP/D_ X = 1.1
     DBG> EXA/D_ X
     X: 1.1000000000000000

/DATE_TIME

     The right-hand-side is a string representing a date and time (for
     example, "14-Oct-1984 12:00:00").  The date and time is converted
     to  the  quadword  representation  used  by  VMS   to   represent
     date-time.   This quadword representation is deposited into eight
     bytes at the target address.

     Example:

     DBG> DEP/DATE_TIME X = "14-Oct-1984 12:00:00"
     DBG> EXA/DATE_TIME X
     X: "14-Oct-1984 12:00:00"

/FLOAT

      The right-hand-side is converted to floating point, and the
     floating
     point value is deposited into the location specified by the
     left-hand-side.
      Example:

     DBG> DEP/F X = 1.1
     DBG> EXA/FLOAT X
     X: 1.100000

/G_FLOAT

     The right-hand-side is converted to  floating  point  (G-format),
     and  the  floating  point  value  is  deposited into the location
     specified by the left-hand-side.

     Example:

     DBG> DEP/G_FLOAT X = 1.1
     DBG> EXA/G_FLOAT X
     X: 1.100000000000000

/H_FLOAT

     The right-hand-side is converted to  floating  point  (H-format),
     and  the  floating  point  value  is  deposited into the location
     specified by the left-hand-side.

     Example:

     DBG> DEP/H_FLOAT X = 1.1
     DBG> EXA/H_FLOAT X
     X: 1.10000000000000000000000000000

/INSTRUCTION

     The  right-hand-side  must  be  a  string  representing   a   VAX
     instruction.   The  instruction  is  deposited  into the location
     specified by the left hand side.

     Example:

     DBG> DEP/INS %LINE 100 = 'MOVL  2,B4(R1)'
     DBG> E/I %LI 100
     %LINE 100: "MOVL  2,B4(R1)"

/LONGWORD

      A longword is deposited into the target location.
      Example:

     DBG> EXA/HEX X
     X: 0FFFFFFFF
     DBG> DEP/LONG X = 0
     DBG> E/HEX X
     X: 00000000

/QUADWORD

     A quadword (8 bytes) is deposited into the target location.

     Example:

     DBG> EXA/QUAD/HEX X
     X: 0FFFFFFFF FFFFFFFF
     DBG> DEP/QUAD X = 0
     DBG> EXA/QUAD/HEX X
     X: 00000000 00000000

/OCTAWORD

     An octaword (16 bytes) is deposited into the target location.

     Example:

     DBG> E/OCTAW/HEX X
     X: 00000000 00000000 00000000 00000000
     DBG> DEP/OCTAW X = -1
     DBG> EXA/OCTAW/HEX X
     X: 0FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF

/PACKED:n

     The  right  hand  side  is  converted   to   a   packed   decimal
     representation  (length n nibbles) before doing the deposit.  "n"
     nibbles ((n+1)/2 bytes) are deposited into the left hand side.

     Example:

     DBG> DEP/PACKED:5 X = 12345
     DBG> EXA/PACKED:5 X
     X: 12345

/TASK

     The location given by "address-expression" is interpreted as  the
     address  of  an  Ada task object.  The right-hand "expression" is
     interpreted as an Ada task value and deposited  in  the  location
     specified by "address-expression".

     Example:

     DBG> EXAMINE  VAR
     SAMPLE.VAR:  0
     DBG> DEPOSIT/TASK  VAR = %TASK 2
     DBG> EXAMINE/HEX  VAR
       0016A040
     DBG> EXAMINE/TASK  VAR
     SAMPLE.VAR:  %TASK 2

/TYPE=(expression)

     Treat the left-hand-side as if it were  of  the  specified  type.
     (Note  -  this  qualifier  is  normally only used on EXAMINE, for
     example, "EXAMINE/TYPE=(T) 1000".  See the help on EXAMINE  /TYPE
     for more information.  The /TYPE qualifier is supplied on DEPOSIT
     for completeness.

/WORD

     A word (2 bytes) is deposited into the target location.

     Example:

     DBG> EXA X
     X: 0FFFFFFFF
     DBG> DEP/WORD X = 0
     DBG> EXA X
     X: 0FFFF0000

DISABLE

     Disables ASTs in the user program.  ASTs can be disabled during a
     debugging  session  using the command "DISABLE AST", and they can
     be  re-enabled  using  the  command  "ENABLE  AST".   Temporarily
     disabling  ASTs  in  this  fashion  allows  the  user  to prevent
     interrupts from occuring while he is debugging a particular piece
     of code.

 Format

       DISABLE AST

     Example:

     DBG> SHOW AST
     ASTs are enabled
     DBG> DISABLE AST
     %DEBUG-I-DISABLEAST, ASTs were enabled, are now disabled
     DBG> SHOW AST
     ASTs are disabled

DISPLAY

     The DISPLAY command may be used to create a display or modify  an
     existing display.

 Format:

       DISPLAY  [disp-name [AT w-spec] [disp-kind]] [, . . . ]

     To create a display, specify a name that is not already used as a
     display  name  (the  SHOW DISPLAY command identifies all existing
     displays).

     By default, the DISPLAY command places a specified display on top
     of the display pasteboard, ahead of any other displays but behind
     the PROMPT  display,  which  cannot  be  hidden.   The  specified
     display thus hides the portions of other displays (except for the
     PROMPT display) that share the same region of the screen.

     Type HELP Keypad for keypad-key definitions associated  with  the
     DISPLAY command.

Additional information available:

ExamplesParametersQualifiers

Examples

     1.  DBG> DISPLAY REG

     This command shows the predefined register display, REG,  at  its
     current window location.


     2.  DBG> DISPLAY/PUSH INST

     This command pushes display INST to the  bottom  of  the  display
     pasteboard, behind all other displays.


     3.  DBG> DISPLAY NEWDISP AT RT2
         DBG> SELECT/INPUT NEWDISP

     In this example,  the  DISPLAY  command  shows  the  user-defined
     display  NEWDISP  at  the  right middle third of the screen.  The
     SELECT/INPUT  command  selects  NEWDISP  as  the  current   input
     display.  NEWDISP now echoes debugger input.


     4.  DBG> DISPLAY DISP2 AT RS45
         DBG> SELECT/OUTPUT DISP2

     In this example, the DISPLAY  command  creates  a  display  named
     DISP2  essentially  at the right bottom half of the screen, above
     the PROMPT display, which is located at S6.  This  is  an  output
     display by default.  The SELECT/OUTPUT command then selects DISP2
     as the current output display.


     5.  DBG> SET WINDOW TOP AT (1,8,45,30)
         DBG> DISPLAY NEWINST AT TOP INSTRUCTION
         DBG> SELECT/INST NEWINST

     In this example, the SET WINDOW command creates  a  window  named
     TOP  starting  at  line 1 and column 45, and extending down for 8
     lines and to the right  for  30  columns.   The  DISPLAY  command
     creates  an  instruction  display  named  NEWINST to be displayed
     through TOP.  The SELECT/INST  command  selects  NEWINST  as  the
     current instruction display.


     6.  DBG> DISPLAY CALLS AT Q3 DO (SHOW CALLS)

     This command creates a DO display named CALLS at window Q3.  Each
     time  the debugger gains control from the program, the SHOW CALLS
     command is executed and the output is displayed in display CALLS,
     replacing any previous contents.


     7.  DBG> DISPLAY/MARK EXAM AT Q2 DO (EXAMINE A,B,C)

     This command creates a DO display named EXAM at window  Q2.   The
     display  shows  the  current  values  of  variables  A,  B, and C
     whenever the debugger prompts for input.  Any changed values  are
     highlighted.


     8.  DBG_3> DISPLAY/PROCESS OUT_X AT S4

     This command makes display OUT_X specific to the visible  process
     (process 3) and puts the display at window S4.


     9.  DBG_2> DISPLAY/PROCESS OUT_/SUFFIX AT S45 OUTPUT

     This command creates  an  output  display  at  window  S45.   The
     /PROCESS qualifier, by default, makes the display specific to the
     visible process  (process  2,  in  this  example).   The  /SUFFIX
     qualifier  appends a process-identifying suffix, that denotes the
     visible process, to the  display  name  OUT_.   By  default,  the
     /SUFFIX qualifier appends the same process identifier suffix that
     appears on the prompt.   Therefore,  the  full  display  name  is
     OUT_2.

Parameters

 disp-name

     Specifies the display to be created  or  modified.   If  you  are
     creating  a  new display, specify a name that is not already used
     as a display name.

     If you are modifying an existing display, you may specify any  of
     the following:

      o  A predefined display:  SRC, OUT, PROMPT, INST, REG

      o  A  display  previously  created  with  the  DISPLAY  (or  SET
         DISPLAY) command

      o  A  pseudo-display  name:   %CURDISP,  %CURSCROLL,  %NEXTDISP,
         %NEXTINST, %NEXTOUTPUT, %NEXTSCROLL, %NEXTSOURCE

     You  must  specify  this  parameter  unless  you  use   /GENERATE
     (parameter optional), or /REFRESH (parameter not allowed).

     You may specify more than one  display,  each  with  an  optional
     window specification (w-spec) and display kind (disp-kind).

 w-spec

     Specifies the screen  window  at  which  the  display  is  to  be
     positioned.  You may specify any of the following:

      o  A predefined window.  For example, RH1 (right top half).

      o  A window  definition  previously  established  with  the  SET
         WINDOW command.

      o  A window specification of the  form  (start-line,  line-count
         [,start-column,   column-count]).    The   specification  can
         include expressions  which  may  be  based  on  the  built-in
         symbols %PAGE and %WIDTH (for example, %WIDTH/4).

     If you omit the w-spec parameter, the screen position depends  on
     whether you are specifying an existing display or a new display:

      o  If you are specifying an existing display,  the  position  of
         the display is not changed.

      o  If you are specifying a new  display,  it  is  positioned  at
         window  H1 or H2, alternating between H1 and H2 each time you
         create another display.


 disp-kind

     Specifies the display kind.  Valid keywords are the following:

        DO (command[; . . . ])  Specifies an automatically updated output
                               display. The commands are executed in the
                               order listed each time the debugger gains
                               control. Their output forms the contents
                               of the display. If you specify more than
                               one command, they must be separated by
                               semicolons.

        INSTRUCTION            Specifies an instruction display. If
                               selected as the current instruction display
                               with the SELECT/INSTRUCTION command,
                               it displays the output from subsequent
                               EXAMINE/INSTRUCTION commands.

        INSTRUCTION (command)  Specifies an automatically updated
                               instruction display. The command specified
                               must be an EXAMINE/INSTRUCTION command. The
                               instruction display is updated each time
                               the debugger gains control.

        OUTPUT                 Specifies an output display. If selected
                               as the current output display with the
                               SELECT/OUTPUT command, it displays any
                               debugger output that is not directed
                               to another display. If selected as the
                               current input display with the SELECT/INPUT
                               command, it echoes debugger input. If
                               selected as the current error display
                               with the SELECT/ERROR command, it displays
                               debugger diagnostic messages.

        REGISTER               Specifies an automatically updated register
                               display. The display is updated each time
                               the debugger gains control.

        SOURCE                 Specifies a source display. If selected
                               as the current source display with
                               the SELECT/SOURCE command, it displays
                               the output from subsequent TYPE or
                               EXAMINE/SOURCE commands.

        SOURCE (command)       Specifies an automatically updated source
                               display. The command specified must be a
                               TYPE or EXAMINE/SOURCE command. The source
                               display is updated each time the debugger
                               gains control.

     You cannot change the display kind of the PROMPT display.

     If you omit the disp-kind parameter, the display kind depends  on
     whether you are specifying an existing display or a new display:

      o  If you are specifying an existing display, the  display  kind
         is not changed.

      o  If you are specifying a new display,  an  OUTPUT  display  is
         created.


Qualifiers

Additional information available:

/CLEAR/DYNAMIC/GENERATE/HIDE/MARK_CHANGE
/NODYNAMIC/NOMARK_CHANGE/NOPOP/NOPROCESS
/NOPUSH/POP/PROCESS/PUSH/REFRESH/REMOVE/SIZE:n
/SUFFIX

/CLEAR

     Erases the entire contents of a specified display.   Do  not  use
     /CLEAR  when  creating  a new display.  Do not use /GENERATE with
     /CLEAR.

/DYNAMIC

     Controls whether  a  display  automatically  adjusts  its  window
     dimensions  proportionally  when  the  screen  height or width is
     changed by a SET TERMINAL command.  By  default  (/DYNAMIC),  all
     user-defined  and  predefined  displays,  adjust their dimensions
     automatically.

/GENERATE

     Regenerates  the  contents  of   a   specified   display.    Only
     automatically  generated displays are regenerated.  These include
     DO displays, register displays, source (cmd-list)  displays,  and
     instruction  (cmd-list)  displays.   The  debugger  automatically
     regenerates all these kinds of displays before each  prompt.   If
     no   display  is  specified,  regenerates  the  contents  of  all
     automatically generated displays.   Do  not  use  /GENERATE  when
     creating a new display.  Do not use /CLEAR with /GENERATE.

/HIDE

     Places  a  specified  display  at  the  bottom  of  the   display
     pasteboard.   This  hides  the specified display behind any other
     displays that share the same region of the  screen.   You  cannot
     hide the PROMPT display.  /HIDE has the same effect as /PUSH.

/MARK_CHANGE

     Controls whether the lines that change in a DO display each  time
     it   is   automatically   updated   are  marked.   When  you  use
     /MARK_CHANGE, any lines in which some contents have changed since
     the  last time the display was updated are highlighted in reverse
     video.  This qualifier is particularly useful when you  want  any
     variables  in  an automatically updated display to be highlighted
     when they change.  /NOMARK_CHANGE (default)  specifies  that  any
     lines  that  change  in  DO  displays are not to be marked.  This
     qualifier cancels the effect of a previously entered /MARK_CHANGE
     qualifier  on  the  specified  display.   This  qualifier  is not
     applicable to other kinds of displays.

/NODYNAMIC

     Specifies that a display  is  not  to  automatically  adjust  its
     window dimensions when you change the screen height or width with
     a SET TERMINAL command.

/NOMARK_CHANGE

     Specifies that changed lines of a DO(debug-cmd-list) display  are
     not  marked  when  the  display  is  automatically updated.  This
     qualifier cancels the effect of an earlier /MARK_CHANGE qualifier
     for  the specified displays.  This qualifier is not applicable to
     other kinds of displays.

/NOPOP

     Does not pop the specified screen displays to the  front  of  the
     other  displays.   This  qualifier preserves the pasting order of
     all the displays.  This  has  the  same  effect  as  the  /NOPUSH
     qualifier.

/NOPROCESS

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

     Causes the specified display to always  be  associated  with  the
     visible process, which may change during program execution.  This
     is the default behavior.

/NOPUSH

     Does not push or hide the specified  screen  displays  under  any
     other  displays.   This  qualifier preserves the pasting order of
     all the displays.   This  has  the  same  effect  as  the  /NOPOP
     qualifier.

/POP

     Pops the specified screen displays to  the  front  of  all  other
     displays  that  occupy  the  same  region on the terminal screen.
     This is the default action of the DISPLAY command.

/PROCESS[=(process-spec)]

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

     Causes the specified display to be process specific --  that  is,
     the  specified  display  is  associated  only  with  a particular
     process.   The  contents  of  a  process-specific   display   are
     generated  and  modified in the context of that process.  You can
     make any display process specific, except for the PROMPT display.

     /PROCESS=(process-spec)  causes  the  specified  display  to   be
     associated  with  the  specified  process.   You must include the
     parentheses.  Use any of the following process-spec forms:

     [%PROCESS_NAME] 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.
                                     Process numbers appear in a
                                     SHOW PROCESS display.

     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 (*)

     /PROCESS causes the specified display to be associated  with  the
     process  that  was  the  visible process when the DISPLAY/PROCESS
     command was executed.   If  you  do  not  specify  /PROCESS,  the
     current  process-specific  behavior  (if  any)  of  the specified
     display remains unchanged.  See also /SUFFIX.

/PUSH

     Pushes the specified screen displays  under  any  other  displays
     that  occupy  the same region on the terminal screen.  The effect
     is to make  visible  any  displays  that  were  occluded  by  the
     specified  displays.   This  has  the  same  effect  as the /HIDE
     qualifier.

/REFRESH

     Refreshes the terminal screen.  If you specify this qualifier, do
     not specify command parameters.

/REMOVE

     Marks the specified display as being removed.  A removed  display
     does  not appear on the screen unless explicitly requested with a
     later DISPLAY command.  Although a removed display is not visible
     on the screen, the display and its contents are preserved.

/SIZE:n

     Sets the maximum size of a display to n lines.  If  more  than  n
     lines  are  written  to the display, the oldest lines are lost as
     the new lines are added.  If you omit this qualifier, the maximum
     size of the display is as follows:


     1.  If you specify an  existing  display,  the  maximum  size  is
         unchanged

     2.  If you are creating a display, the default size is 64 lines

     For an output or DO display, /SIZE:n specifies that  the  display
     should  hold  the n most recent lines of output.  For a source or
     instruction display, n gives the number of source lines or  lines
     of  instructions  that  can be placed in the memory buffer at any
     one time.  However, you can scroll  a  source  display  over  the
     entire  source code of the module whose code is displayed (source
     lines are paged into the buffer as needed).  Similarly,  you  can
     scroll an instruction display over all of the instructions of the
     routine  whose  instructions  are  displayed  (instructions   are
     decoded from the image as needed).

/SUFFIX[=process-identifier-type]

     Note:   This  qualifier  applies  to  a  multiprocess   debugging
     configuration (when DBG$PROCESS has the value MULTIPROCESS).  Use
     this qualifier only directly after a display name.

     Appends a process-identifying suffix  to  a  display  name.   The
     suffix  denotes  the  visible  process.   This  qualifier is used
     primarily  in  command   procedures   when   specifying   display
     definitions   or  key  definitions  that  are  bound  to  display
     definitions.  Use any of  the  following  process-identifier-type
     keywords:

        PROCESS_NAME     The display-name suffix is the VMS process name.

        PROCESS_NUMBER   The display-name suffix is the process number
                         (as shown in a SHOW PROCESS display).

        PROCESS_PID      The display-name suffix is the VMS process
                         identification number (PID).

     If  you  specify  /SUFFIX  without  a  process-identifier-   type
     keyword,  the  process  identifier type used for the display-name
     suffix is, by default, the same  as  that  used  for  the  prompt
     suffix (see SET PROMPT/SUFFIX).  See also /[NO]PROCESS.

DO

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

     The DO command executes commands in the context of  one  or  more
     processes.   By  default, commands are executed in the context of
     the visible process.  The  DO  command  enables  you  to  execute
     commands  in  the context of specific processes or all processes.
     The DO command is equivalent to entering  a  SET  PROCESS/VISIBLE
     command  for  each  process specified with the /PROCESS qualifier
     (or for all processes, if /PROCESS is  not  specified)  and  then
     entering  the specified commands.  To change the visible process,
     use the SET PROCESS command.

 Format:

       DO [/qualifier]  (command[; . . . ])

Additional information available:

ExamplesParametersQualifiers

Examples

     1   DBG_2> DO (SHOW CALLS)
         For %PROCESS_NUMBER 1
             module name     routine name    line       rel PC    abs PC
            *MAIN_MODULE     MAIN              31      0000001E  0000041E
         For %PROCESS_NUMBER 2
             module name     routine name    line       rel PC    abs PC
            *SUB_MODULE      SUB                4      0000000B  0000040B

     This command executes a SHOW CALLS command in the
     context of all processes.


     2   DBG_3> DO/PROCESS=(%PROC 2,%PROC 1) (EVAL/ADDR X;EXAM X)
         For %PROCESS_NUMBER 2
           %DEBUG-E-NOSYMBOL, symbol 'X' is not in the symbol table
         For %Process_number 1
           512
           TEST\X: 1

     This command executes the two commands EVAL/ADDR X and
     EXAM X in the context of processes 2 and 1.

Parameters

 command

     Specifies a debugger command  that  is  to  be  executed  in  the
     context of the processes specified.

Qualifiers

Additional information available:

/PROCESS

/PROCESS=(process-spec[, . . . ])

     Specifies one or more processes in whose context the commands are
     to  be  executed.   You must include the parentheses even if only
     one process is specified.  If you do not  specify  /PROCESS,  the
     commands  are  executed  in  the  context  of all processes (this
     effect is also achieved if  you  specify  the  asterisk  wildcard
     character (*) for process-spec).  Use any of the following forms:

     [%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.
                                     Process numbers appear in a
                                     SHOW PROCESS display.

     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 (*)

EDIT

     Note:  in order to use the default state of the EDIT command, you
     must have the LSE editor on your system.

     Typing EDIT while in screen mode causes you to begin editing  the
     file  that you were looking at in your source window.  If you use
     the LSE editor, the cursor is positioned at the place your source
     window  was  centered.   You  can optionally override the default
     file and start position by specifying a location in the same  way
     as   you   would  with  the  TYPE  command,  for  example,  "EDIT
     MODNAME\10".

     What EDIT actually does is invoke the editor specified in the SET
     EDITOR command.  The default is to SPAWN the command:

     $ LSEDIT/START_POSITION=(n,1) filespec

     (where "n" is a number corresponding to the central line in  your
     source window).

     See the SET EDITOR command for more details.

     Syntax:

     EDIT [/EXIT] [[module-name\] line-number]

Additional information available:

ParametersQualifiers

Parameters

     The normal usage is to not specify any parameters.  In this case,
     if you are using the LSE editor, the editing cursor is positioned
     on the same text that is displayed in the debugger source window.

     DBG> EDIT

     You can optionally give a module name and line number, specifying
     a different place that you want to come up in the editor:

     DBG> EDIT modname\line-number

     You can specify the line number by  itself,  in  which  case  the
     module  is  assumed  to  be the same as the one currently in your
     source window.

     DBG> EDIT line-number

Qualifiers

Additional information available:

/EXIT/NOEXIT

/EXIT

     /EXIT - specifies that you want to end the debugging session  and
     start  an editing session.  In this case, the debugger performs a
     $EXIT call after leaving the editor.

/NOEXIT

     /NOEXIT (default) - specifies  that  you  want  to  continue  the
     debugging session after you make your edits.

ENABLE

     Enables ASTs in the user program.  ASTs can be disabled during  a
     debugging  session  using the command "DISABLE AST", and they can
     be  re-enabled  using  the  command  "ENABLE  AST".   Temporarily
     disabling  ASTs  in  this  fashion  allows  the  user  to prevent
     interrupts from occuring while he is debugging a particular piece
     of code.

 Format

       ENABLE AST

     Example:

     DBG> SHOW AST
     ASTs are disabled
     DBG> ENAB AST
     %DEBUG-I-ENABLEAST, ASTs were disabled, are now enabled
     DBG> SHOW AST
     ASTs are enabled

EVALUATE

     Evaluates an expression  in  the  currently  set  language.   The
     debugger  interprets  the  parameter  in an EVALUATE command as a
     source-language expression, evaluates it in the semantics of  the
     source  language,  and  displays  its  value  as a literal in the
     source-language.

     If   an    expression    contains    symbols    with    different
     compiler-generated  types,  the debugger uses the type-conversion
     rules of the current language to evaluate the expression.

 Format:

     EVALUATE [/qualifier] expression [,expression,...]

Additional information available:

ExamplesParametersQualifiersQualifiers

Examples

     DBG> SET LANG FORT
     DBG> EVAL 1+1*2
     3
     DBG> EVAL 1+1.1
     2.10000
     DBG> EVAL 3 .EQ. X(1)
     True
     DBG> SET LAN PAS
     DBG> EVAL 3 = X[1]
     True

Parameters

 expression

     Any legal expression in the source language, where an  expression
     may   be   composed  of  one  or  more  operators,  operands,  or
     delimiters.  See the help on  "Languages  lang-name"  for  tables
     specifying  what  operators  and  datatypes are accepted for each
     language.

Qualifiers

     Allowed qualifiers are:  /ADDRESS, /CONDITION_VALUE, and the four
     radix  qualifiers (/DECIMAL, /HEX, /BINARY, and /OCTAL).  See the
     individual subtopics for details.

Qualifiers

Additional information available:

/ADDRESS/BINARY/CONDITION_VALUE/DECIMAL/HEXADECIMAL
/OCTAL

/ADDRESS

     Specifies that the expression  which  is  the  parameter  in  the
     EVALUATE  command  be interpreted as an address-expression, whose
     value is a virtual memory address.

     Example:

     DBG> EVAL/ADDRESS X
     512
     DBG> EXAM 512
     X: 3
     DBG> EVAL X
     3

/BINARY

     Display the result in binary radix.

     Example:

     DBG> EVAL/BIN X
     00000000 00000000 00000000 0000011

/CONDITION_VALUE

     Specified that the value of the expression be  interpreted  as  a
     return status, and the message associated with that return status
     be displayed.

     Example:

     DBG> EVAL/COND 12
     "%SYSTEM-F-ACCVIO, access violation at address !XL, PC=!XL"

/DECIMAL

     Display the result in decimal radix.

     Example:

     DBG> EVAL/DEC %HEX 10
     16

/HEXADECIMAL

     Display the result in hexadecimal radix.

     Example:

     DBG> EVAL/HEX %DEC 10
     0A

/OCTAL

     Display the result in octal radix.

     Example:

     DBG> EVAL/OCTAL %DEC 10
     12

EXAMINE

     EXAMINE is the way you find out about the value of  your  program
     variables.   In  general,  you can specify a location in the same
     way it is specified in your source program  (for  example,  "EXAM
     X", "EXAM A[1]", "EXAM R.C", and so on).

     The  value  of  the  object  is  displayed   according   to   its
     compiler-generated type.

 Examples:

     DBG> E X   ! X is floating point
     PROG\X: 1.12340
     DBG> E A.B[1]      ! Language is PASCAL
     PROG\X.B[1]: 3

 Format:

     EXAMINE [/qualifiers] [address-expression[:address-expression]
                        [,address-expression[:address-expression]...]]

Additional information available:

AggregateParametersQualifiersQualifiers

Aggregate

     Aggregate examine allows display of entire arrays or records.

 Format:

     EXAMINE aggregate-name

     A related feature is the ability to examine slices of arrays.

 Format:

     EXAMINE array_name(lower_bound:upper_bound)

 Example:

     DBG> EXAM R        ! R is a record
     PROG\R
         A: 12
         B: 1.3

Parameters

 address-expression

     Specifies the entity to be examined.  In  general,  you  use  the
     same  syntax  as in your source program (for example, "EXAM A(1)"
     for a FORTRAN array component).  Sometimes, you may need  to  use
     pathnames  to  disambiguate  a  name (for example, "EXAM A\B\C").
     See the help on "Pathnames" for details.  You  can  also  examine
     arbitrary  addresses  in  your  program  that  are  not necessary
     associated with program data (for example, "EXAM 1000").  See the
     help on "Address-expressions".

     You can specify a range  of  addresses.   For  example,  "EXAMINE
     A(1):A(100)".

     You can specify a list of objects.  For example, "EXAMINE A,B,C".

Qualifiers

     The qualifiers on EXAMINE are used to specify a format or a  data
     type  or  a  radix  other  than  the default.  See the individual
     subtopics for details.

     Example:

     DBG> EXAM X        ! default radix is decimal
     PROG\X: 17
     DBG> EXAM/HEX X
     PROG\X: 11 ! hexadecimal

Qualifiers

Additional information available:

/ASCIC/ASCID/ASCII:n/ASCIW/ASCIZ/BINARY/BYTE
/CONDITION_VALUE/D_FLOAT/DATE_TIME/DECIMAL/DEFAULT
/FLOAT/G_FLOAT/H_FLOAT/HEXADECIMAL/INSTRUCTION
/LINE/LONGWORD/NOLINE/NOSYMBOL/OCTAL
/OCTAWORD/OPERANDS/PACKED:n/PSL/PSW
/QUADWORD/SOURCE/SYMBOL/TASK/TYPE/WORD

/ASCIC

     The memory location is interpreted as an ASCIC string.  This is a
     string  with a count byte at the beginning saying how long it is.
     /AC is also accepted.

     Example:

     DBG> EXA/HEX X
     X: 33323103
     DBG> EXA/AC X
     X: "123"

/ASCID

     The memory location is interpreted as a  VAX  string  descriptor,
     and the string is displayed.  /AD is also accepted.

     Example:

     DBG> EXA/HEX/QUAD X
     X: 7FFF0000 010E0003
     DBG> EXA/ASC:3 7FFF0000
     7FFF0000: "123"
     DBG> EXA/AD X
     X: "123"

/ASCII:n

     The memory location is interpreted as an ASCII string  of  length
     "n".   If  "n"  is  omitted  the length used is the length of the
     object as given in the symbol table.

     Example:

     DBG> EXA/ASC:3 X
     X: "123"
     DBG> EXA/ASC:4 X
     X: "1234"

/ASCIW

     Specifies that the contents of the memory location be interpreted
     as  a  counted  ascii  string  with  a  word  count.  /AW is also
     accepted.

     Example:

     DBG> EXA/HEX X
     X: 31310002
     DBG> EXA/AW X
     X: "11"

/ASCIZ

     Specifies that the contents of the memory location be interpreted
     as a zero-terminated string.  /AZ is also accepted.

     Example:

     DBG> EXA/HEX X
     X: 00313131
     DBG> EXA/AZ X
     X: "111"

/BINARY

     Specifies that output should be displayed as an integer in binary
     radix.

     Example:

     DBG> EXA X
     X: 3
     DBG> EXA/BIN X
     X: 00000000 00000000 00000000 00000011

/BYTE

     Specifies that the examined entity or entities  be  displayed  in
     the type byte integer (length 1 byte)

     Example:

     DBG> EXA/LONG/HEX X
     X: 12345678
     DBG> EXA/BYTE/HEX X
     X: 78

/CONDITION_VALUE

     Specified that the contents of the memory location  (usually  %R0
     in  this case) be interpreted as a return status, and the message
     associated with that return status be displayed.

     Example:

     DBG> EXA R0
     %R0: 12
     DBG> E/COND R0
     R0: "%SYSTEM-F-ACCVIO, access violation at PC = !XL, virtual
     address = !XL

/D_FLOAT

     Specifies that the examined entity or entities  be  displayed  in
     the D_floating type (length 8 bytes).

     Example:

     DBG> E/D_ X
     X: 3.13332884848421D12

/DATE_TIME

     The  memory  location  is  interpreted  as  a  quadword   integer
     containing  the  internal  VMS representation of date-time.  This
     value is converted to printable format and displayed.

     Example:

     DBG> E/DATE_TIME X
     X: "12-OCT-1984 12:00:00"

/DECIMAL

     Specifies that output  should  be  displayed  as  an  integer  in
     decimal radix.

     Example:

     DBG> E/HEX X
     X: 0FFFFFFFF
     DBG> E/DEC X
     X: -1

/DEFAULT

     Specifies that output should be displayed in the default radix.

/FLOAT

     Specifies that the examined entity or entities  be  displayed  in
     the F_floating type (length 4 bytes).  /F_FLOAT is also accepted.

     DBG> E/F X
     X: 2.345671

/G_FLOAT

     Specifies that the examined entity or entities  be  displayed  in
     the G_floating type (length 8 bytes).

     DBG> E/G_ X
     X: 2.34747474722222

/H_FLOAT

     Specifies that the examined entity or entities  be  displayed  in
     the H_floating type (length 16 bytes).

     DBG> E/H_ X
     X: 2.174389247892374892324879487923

/HEXADECIMAL

     Specifies that output  should  be  displayed  as  an  integer  in
     hexadecimal radix.

     Example:

     DBG> E/DEC X
     X: -1
     DBG> E/HEX X
     X: 0FFFFFFFF

/INSTRUCTION

     Specifies that the examined entity or entities be displayed as  a
     VAX assembly-language instruction.  See also /OPERANDS.

     Example:

     DBG> E/I .PC
     %LINE 100: "MOVL B10(R4),R7"

/LINE

     Turns  on  the  symbolization  to  line  numbers,  so  that  code
     locations  are  displayed  as  "%LINE  x"  instead  of "routine +
     offset".   Mostly  useful  in  the  "SET  MODE  LINE"  form;  the
     qualifier is included on EXAMINE just for completeness.

     Example:

     DBG> SET MODE LINE
     DBG> STEP
     stepped to %LINE 100
     DBG> SET MODE NOLINE
     DBG> STEP
     stepped to ROUTINENAME + 0B7

/LONGWORD

     Specifies that the examined entity or entities  be  displayed  in
     the type long integer (length 4 bytes)

     Example:

     DBG> EXAM F
     F: 1.000000
     DBG> EXAM/LONG F
     F: 1024

/NOLINE

     Turns off  the  symbolization  to  line  numbers,  so  that  code
     locations are displayed as "routine+offset" instead of "%LINE x".
     Mostly useful in the "SET MODE NOLINE"  form;  the  qualifier  is
     included on EXAMINE just for completeness.

     Example:

     DBG> SET MODE LINE
     DBG> STEP
     stepped to %LINE 100
     DBG> SET MODE NOLINE
     DBG> STEP
     stepped to ROUTINENAME + 0B7

/NOSYMBOL

     Turns off the  symbolization  of  addresses,  so  that  locations
     entered   as   absolute   addresses  are  displayed  as  absolute
     addresses.

     Example:

     DBG> EXAM 512
     X: 3
     DBG> EXAM/NOSY 512
     512: 3

/OCTAL

     Specifies that output should be displayed as an integer in  octal
     radix.

     Example:

     DBG> EXAM X
     X: 8
     DBG> EXAM/OCTAL X
     X: 10

/OCTAWORD

     Specifies that the examined entity or entities  be  displayed  in
     the type octaword integer (length 16 bytes).

     Example:

     DBG> EXA/OCTAW/HEX X
     X: 00000000 00000000 00000000 00000001

/OPERANDS

     Specifies that the examined instruction also include a display of
     each  operand  address  and  its contents beneath the instruction
     display.  The thing being examined must be of type "instruction".

     You may control the amount  of  information  which  you  see,  by
     specifying   either   OPERANDS=BRIEF   or  OPERANDS=FULL.   These
     qualifiers can be  used  on  either  the  SET  MODE  OPERANDS  or
     EXAMINE/OPERANDS commands.  The default is OPERANDS=BRIEF.

     You should use the EXAMINE/OPERANDS command only to  examine  the
     current  PC.   Other locations do not have the proper state (such
     as the contents of registers), and will probably  give  erroneous
     results when you compute the addresses of the operands.

     Example:

     DBG> EXAMINE/OPERANDS .0\%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
     DBG> EXAMINE/OPERANDS=FULL .0\%PC
     X\X$START+0C:   MOVL    B^04(R4),R7
          B^04(R4)   R4 contains X\X$START\M (address 00001054),
                     B^04(00001054) evaluates to X\X$START\K
                     (address 00001058), which contains 00000016
          R7         R7 contains 00000000

/PACKED:n

     Specifies that the examined entity be  interpreted  as  a  packed
     decimal number of length n nibbles.

     Example:

     DBG> EXAM/PACKED:5 X
     X: -23412

/PSL

     Specifies that the location is to  be  displayed  in  PSL  format
     (this  is  the  format  used when displaying the processor status
     longword, that is, "EXAM %PSL").  This is  intended  for  use  in
     displaying  copies  of  the PSL which are saved in call frames on
     the stack.

     Example:

     DBG> EXA/PSL .SP+40
     7FFF0000:
             CMP TP FPD IS CURMOD PRVMOD IPL DV FU IV T N Z V C
              0   0  0   0  USER   USER    0  0  0  1 0 0 0 0 0

/PSW

     Same as  /PSL,  except  that  only  the  low-order  16  bits  are
     displayed (the processor status word).

     Example:

     DBG> EXA/PSW .SP+40
     7FFF0000:
              DV FU IV T N Z V C
               0  0  1 0 0 0 0 0

/QUADWORD

     Specifies that the examined entity or entities  be  displayed  in
     the type quadword integer (length 8 bytes).

     Example:

     DBG> EXAM/QUAD/HEX X
     X: 00000000 00000000

/SOURCE

     Specifies that the parameter is to be interpreted as an  address,
     and  the  source  line  corresponding  to  the  address  is to be
     displayed.  Note - in screen mode, EXAMINE/SOURCE  just  has  the
     effect  of re-positioning the source window to be centered around
     the specified address.

     Example:

     DBG> EXAM .PC
     %LINE 12: INCL R0
     DBG> EXAM/SOURCE .PC
     module M
     12:        X = X + 1

/SYMBOL

     Specifies  that  the  debugger  attempt  to  symbolize   absolute
     addresses.  For example:

     DBG> EXAM/SYM 512
     PROG\X: 3
     DBG> EXAM/NOSYM 512
     512: 3

/TASK

     The location given by "address-expression" is interpreted as  the
     address  of an Ada task object.  Its contents are displayed as an
     Ada task value.

     Example:

     DBG> EXAMINE/HEX  ALPHA
     SAMPLE.ALPHA  0016A040
     DBG> EXAMINE/TASK  ALPHA
     SAMPLE.ALPHA  %TASK 2

/TYPE=(expression)

     EXAMINE/TYPE=(expression) provides a way of "type-casting".   The
     expression  specified should be the name of a data object in your
     program, and the location you are examining should be an  untyped
     address.   Under  these  conditions,  the  debugger  displays the
     address as if it were of the specified type.

     Example:  "R" is the name of a record in your  program.   It  has
     components  A,  an  integer, and B, a floating point number.  You
     have also allocated an object of type R at address 2000.  Then:

     DBG> EXAMINE 2000  ! The debugger has no type
                        ! information for address 2000.
     2000: 12
     DBG> EXAMINE/TYPE=(R) 2000  ! Show the location as if
                        ! it were a record R.
     2000:
         A: 12
         B: 1.7

/WORD

     Specifies that the examined entity or entities be displayed as  a
     word integer (length 2 bytes)

     Example:

     DBG> EXAM/HEX X
     X: 12345678
     DBG> EXAM/WORD/HEX X
     X: 5678

EXIT

     The EXIT command ends a debugging session, or terminates  one  or
     more   processes   of   a   multiprocess  program,  allowing  any
     user-declared exit handlers to run.

     If used within a command procedure or DO clause and no process is
     specified,  the  EXIT  command  exits the command procedure or DO
     clause at that point.

     The EXIT command is one of the four debugger  commands  that  can
     cause  your  program  to  execute  (the  others are CALL, GO, and
     STEP).

 Format:

       EXIT  [process-spec[, . . . ]]

Additional information available:

Ending Debugging SessionExiting Command ProceduresTerminating Processes
ExamplesParameters

Ending Debugging Session

     To end a  debugging  session,  enter  the  EXIT  command  at  the
     debugger  prompt  without specifying any parameters.  This causes
     orderly termination of the session:  the program's  user-declared
     exit handlers (if any) are executed, the debugger exit handler is
     executed (closing log files,  restoring  the  screen  and  keypad
     states,  and  so  on),  and  control  is  returned to the command
     interpreter.  You cannot then continue to debug your  program  by
     entering  the  DCL  commands  DEBUG  or CONTINUE.  To restart the
     debugger, you must run the program again.

     Note that, since EXIT runs any user-declared exit  handlers,  you
     can  set  breakpoints  in such exit handlers, and the breakpoints
     are triggered upon typing EXIT.  EXIT can thus be used  to  debug
     your exit handlers.

     To end a debugging session without running any user-declared exit
     handlers, use the QUIT command instead of EXIT.

Exiting Command Procedures

     When  the  debugger  executes  an  EXIT  command   (without   any
     parameters)  in  a  command  procedure,  control  returns  to the
     command stream that invoked the  command  procedure.   A  command
     stream  can  be  the  terminal,  an  outer  (containing)  command
     procedure, or  a  DO  clause  in  a  command  or  screen  display
     definition.   For  example,  if the command procedure was invoked
     from within a DO clause, control returns to that DO clause, where
     the  debugger  executes  the  next  command (if any remain in the
     command sequence).

     When  the  debugger  executes  an  EXIT  command   (without   any
     parameters)  in a DO clause, it ignores any remaining commands in
     that clause and displays its prompt.

Terminating Processes

     If you are using  the  multiprocess  debugging  configuration  to
     debug a multiprocess program (if the logical name DBG$PROCESS has
     the  value  MULTIPROCESS),  you  can  use  the  EXIT  command  to
     terminate   selected   processes  without  ending  the  debugging
     session.  The same techniques and  behavior  apply,  whether  you
     enter  the  EXIT command at the prompt or use it within a command
     procedure or DO clause.

     To terminate one or  more  processes,  enter  the  EXIT  command,
     specifying  these  processes  as parameters.  This causes orderly
     termination of the  images  in  these  processes,  executing  any
     user-declared   exit   handlers  associated  with  these  images.
     Subsequently, the specified processes are no longer identified in
     a  SHOW  PROCESS/ALL display.  If any specified processes were on
     hold, as the result of  a  SET  PROCESS/HOLD  command,  the  hold
     condition is ignored.

     When the specified  processes  begin  to  exit,  any  unspecified
     process  that is not on hold begins execution.  Once execution is
     started, the way in which it continues  depends  on  whether  the
     command  SET  MODE  [NO]INTERRUPT  was  entered  previously.   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.

     To terminate selected processes without running any user-declared
     exit  handlers  or  otherwise  starting  execution,  use the QUIT
     command instead of EXIT.

Examples

     1   DBG> EXIT
         $

     This command ends the debugging session and returns  you  to  DCL
     command level.

     2   JONES_1> EXIT %NEXT_PROCESS, %PROCESS_NAME JONES_3, %PROC 5
         JONES_1>

     This command causes orderly termination of three processes  of  a
     multiprocess program:  the next process after the visible process
     on the process list, process JONES_3, and process 5.  Control  is
     returned  to  the  debugger  after  the  specified processes have
     exited.

Parameters

 process-spec

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

     Specifies a process.  Use any of the following forms:

     [%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.
                                     Process numbers appear in a
                                     SHOW PROCESS display.

     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 also use the asterisk wilcard character  (*)  to  specify
     all processes.

EXITLOOP

     Brings you out of an enclosing WHILE, REPEAT, or FOR loop.  If an
     integer  parameter n is supplied, then EXITLOOP brings you out of
     n levels of loops.

 Format:

     EXITLOOP [n]

     Example:

     DBG> WHILE 1 DO (STEP; IF X .GT. 3 THEN (EXITLOOP))

Additional information available:

Parameters

Parameters

 n

     An integer specifying how many levels of loops to exit from.

EXPAND

     Expands or contracts the window associated with a screen display.
     The  EXPAND  command  moves  one  or  more display-window borders
     according to  the  qualifier(s)  specified  (/UP,  /DOWN,  RIGHT,
     /LEFT).   For  example,  the  following  command  moves the right
     border of display SRC four columns to the right, and  the  bottom
     border six lines up:

          EXPAND/RIGHT:4/DOWN:-6 SRC

     The EXPAND command does not affect the order of a display in  the
     pasteboard  circular  list.   Depending  on the relative order of
     displays, the EXPAND command may cause the specified  display  to
     hide  or uncover another display or be hidden by another display,
     partially or totally.

     Except for the PROMPT display, any display can be shrunk down  to
     the  point  where  it  disappears (at which point it is marked as
     "removed").  It can then be expanded from that point.  The PROMPT
     display  cannot  be shrunk (or expanded) horizontally, but can be
     shrunk vertically to a height of 2 lines.  Contracting a  display
     to the point where it disappears causes it to lose any attributes
     that were selected for it.

     A window border can be expanded  only  up  to  the  edge  of  the
     screen.   Thus,  specifying  EXPAND/DOWN:99 SRC lowers the bottom
     border of display SRC to the bottom edge of the screen.

     The left and top window borders cannot  be  expanded  beyond  the
     left  and  top  edges  of  the  display, respectively.  The right
     border can be expanded up to 255 columns from  the  left  display
     edge.   The  bottom border of a source or instruction display can
     be expanded down only to the bottom edge  of  the  display  (last
     line of the source module or last instruction of the routine).  A
     register display cannot be expanded beyond its full size.

     In the case of an OUTPUT or  DO  display,  the  scrolling  region
     preserved  in  memory  extends  to 64 lines by default but may be
     increased or decreased  through  the  /SIZE  qualifier  with  the
     DISPLAY and SET DISPLAY commands.

 Format:

     EXPAND /qualifier[...] [disp_name [,disp_name...] ]

Additional information available:

ExamplesKey DefinitionsParametersQualifiers

Examples

     DBG> EXPAND/DOWN:99 FOO  ! Move the bottom border of display FOO
                              ! down to the bottom edge of the screen
     DBG> EXPAND/UP/RIGHT:-6  ! Move the top border of the current
                              ! scrolling display up by 1 line, and
                              ! the right border to the left by
                              ! 6 columns.

Key Definitions

     Several keypad keys have  been  bound  to  the  EXPAND  and  MOVE
     commands,   to  facilitate  expanding,  contracting,  and  moving
     displays.  (See HELP KEYPAD STATE_KEYS for more information).

Parameters

 disp_name

     The name (or list of  names)  of  the  screen  display(s)  to  be
     expanded  or  shrunk.   If  this  name  is  omitted,  the current
     selected scrolling display is used.  (See HELP SELECT/SCROLL).

Qualifiers

Additional information available:

/DOWN/LEFT/RIGHT/SUFFIX/UP

/DOWN[:n]

     Move the bottom border of the display down by n lines  (if  n  is
     positive)  or up by n lines (if n is negative).  If n is omitted,
     the border is moved down by  1  line.   See  the  EXPAND  command
     description for restrictions.

/LEFT[:n]

     Move the left border of the display to the left by n lines (if  n
     is positive) or to the right by n lines (if n is negative).  If n
     is omitted, the border is moved to the left by 1 line.   See  the
     EXPAND command description for restrictions.

/RIGHT[:n]

     Move the right border of the display to the right by n lines  (if
     n  is positive) or to the left by n lines (if n is negative).  If
     n is omitted, the border is moved to the right by  1  line.   See
     the EXPAND command description for restrictions.

/SUFFIX[=process-identifier-type]

     Note:   This  qualifier  applies  to  a  multiprocess   debugging
     configuration (when DBG$PROCESS has the value MULTIPROCESS).  Use
     this qualifier only directly after a display name.

     Appends a process-identifying suffix  to  a  display  name.   The
     suffix  denotes  the  visible  process.   This  qualifier is used
     primarily  in  command   procedures   when   specifying   display
     definitions   or  key  definitions  that  are  bound  to  display
     definitions.  Use any of  the  following  process-identifier-type
     keywords:

        PROCESS_NAME     The display-name suffix is the VMS process name.

        PROCESS_NUMBER   The display-name suffix is the process number
                         (as shown in a SHOW PROCESS display).

        PROCESS_PID      The display-name suffix is the VMS process
                         identification number (PID).

     If  you  specify  /SUFFIX  without  a  process-identifier-   type
     keyword,  the  process  identifier type used for the display-name
     suffix is, by default, the same  as  that  used  for  the  prompt
     suffix (see SET PROMPT/SUFFIX).

/UP[:n]

     Move the top border of the  display  up  by  n  lines  (if  n  is
     positive)  or  down  by  n  lines  (if  n  is negative).  If n is
     omitted, the border is moved  up  by  1  line.   See  the  EXPAND
     command description for restrictions.

EXTRACT

     Saves screen displays into a file, or creates a file with all  of
     the  debugger  commands necessary to re-create the current screen
     state at a later time.

 Format:

     EXTRACT [/qualifier [...]] [disp-name [,disp-name...]] file-spec]

Additional information available:

ExamplesParametersQualifiers

Examples

     DBG> EXTRACT SRC                ! Write all the lines in the SRC
                                     ! display into file DEBUG.TXT
                                     ! in the current directory.
     DBG> EXTRACT SRC,OUT MYFILE.TXT ! Write all the lines in displays
                                     ! SRC and OUT into MYFILE.TXT
                                     ! in the current directory.
     DBG> EXTRACT/ALL [MYDIR]MYFILE  ! Write all the lines in all of
                                     ! the displays into the file
                                     ! [MYDIR]MYFILE.TXT.
     DBG> EXTRACT/APPEND SRC MYFILE  ! Append all the lines in display
                                     ! SRC to the end of MYFILE.TXT
                                     ! in the current directory.
     DBG> EXTRACT/SCREEN_LAYOUT      ! Write the debugger commands
     needed
                                     ! to re-construct the screen into
                                     ! file DBGSCREEN.COM in the
                                     ! current directory.

Parameters

 disp-name

     The name (or list of  names)  of  the  screen  display(s)  to  be
     extracted.   The name of screen displays can be wild-carded.  You
     must specify either one  or  more  display  names,  or  the  /ALL
     qualifier, but not both.

 file-spec

     Specifies the file specification to write the information to.  If
     you  do  not  specify  a file name or file type, the default file
     name DEBUG and default file type TXT  are  provided,  unless  you
     specify  /SCREEN_LAYOUT.   If  you  specify  /SCREEN_LAYOUT,  the
     default file name and file type of the generated command file are
     DBGSCREEN  and  COM,  respectively.  A logical name may be given.
     You can modify the default file specification of the command file
     provided  with  /SCREEN_LAYOUT  by  using  the SET ATSIGN command
     (Type HELP SET ATSIGN).

Qualifiers

Additional information available:

/ALL/APPEND/SCREEN_LAYOUT/SUFFIX

/ALL

     Extract all displays.  If /ALL is used, do not specify a  display
     name.  Do not specify /ALL with /SCREEN_LAYOUT.

/APPEND

     Append the information at  the  end  of  the  file,  rather  than
     creating  a  new  file.  The default is to create a new file.  Do
     not specify /APPEND with /SCREEN_LAYOUT.

/SCREEN_LAYOUT

     Write a file which contains the debugger commands  that  describe
     the  current  state of the screen.  This information includes the
     screen height and width,  and  the  position,  kind,  and  SELECT
     attributes  of  every  display  which exists at the current time.
     This  file  can  then  be  executed  with  the  "@"  command   to
     re-construct the screen at a later time.

/SUFFIX[=process-identifier-type]

     Note:   This  qualifier  applies  to  a  multiprocess   debugging
     configuration (when DBG$PROCESS has the value MULTIPROCESS).  Use
     this qualifier only directly after a display name.

     Appends a process-identifying suffix  to  a  display  name.   The
     suffix  denotes  the  visible  process.   This  qualifier is used
     primarily  in  command   procedures   when   specifying   display
     definitions   or  key  definitions  that  are  bound  to  display
     definitions.  Use any of  the  following  process-identifier-type
     keywords:

        PROCESS_NAME     The display-name suffix is the VMS process name.

        PROCESS_NUMBER   The display-name suffix is the process number
                         (as shown in a SHOW PROCESS display).

        PROCESS_PID      The display-name suffix is the VMS process
                         identification number (PID).

     If  you  specify  /SUFFIX  without  a  process-identifier-   type
     keyword,  the  process  identifier type used for the display-name
     suffix is, by default, the same  as  that  used  for  the  prompt
     suffix (see SET PROMPT/SUFFIX).

FOR

     Provides a way of iterating a sequence of debugger commands.

 Format:

     FOR name = expr1 TO expr2 [BY expr3] DO (debug-cmd-list)

     Example:

     DBG> FOR I = 1 TO 3 DO (STEP)
     stepped to ...
     stepped to ...
     stepped to ...

Additional information available:

Parameters

Parameters

 name

     A name which is initially bound to the value of expr1, as if  you
     had done DEFINE/VALUE name = expr1

 expr1

     A language expression of integer or enumeration type.

 expr2

     A language expression of integer or enumeration type.

 expr3

     A language expression of integer or enumeration type.
     expr3 may be negative but may not be zero.

 debug-cmd-list

     A sequence of  debugger  commands  separated  by  semicolons  and
     enclosed in parentheses.

GO

     The GO command starts program execution or resumes execution from
     the  point  at which it is currently suspended.  GO is one of the
     four debugger commands that can cause  your  program  to  execute
     (the others are CALL, EXIT, and STEP).

     Note that specifying an address expression with  the  GO  command
     can  produce  unexpected  results  because  it  alters the normal
     control flow of your program.  For example,  during  a  debugging
     session you can restart execution at the beginning of the program
     by entering the command GO %LINE 1.  However, because the program
     has   executed,  the  contents  of  some  variables  may  now  be
     initialized differently from when you first invoked the debugger.

 Format:

        GO [address-expression]

Additional information available:

ExamplesMultiprocess ProgramsParameters

Examples

     1   DBG> GO
            .
            .
         %DEBUG-I-EXITSTATUS, is '%SYSTEM-S-NORMAL, normal successful completion
         DBG>

     This command  starts  program  execution,  which  then  completes
     successfully.

     2   DBG> SET BREAK RESTORE
         DBG> GO
            .
            .
         break at routine INVENTORY\RESTORE
         137: procedure RESTORE;
         DBG> GO
            .
            .

     This SET BREAK command sets a breakpoint on routine RESTORE.  The
     first   GO  command  starts  program  execution,  which  is  then
     suspended at the breakpoint on routine RESTORE.   The  second  GO
     command resumes execution from the breakpoint.

     3   DBG> GO %LINE 42

     This command resumes program execution at line 42 of  the  module
     where execution is currently suspended.

Multiprocess Programs

     If you are using  the  multiprocess  debugging  configuration  to
     debug a multiprocess program (if the logical name DBG$PROCESS has
     the value MULTIPROCESS), note the following additional points:

     1.  The GO command is executed in  the  context  of  the  visible
         process,  but images in any other unheld processes (processes
         that have not been  put  on  hold  with  a  SET  PROCESS/HOLD
         command)  are  also  allowed  to  execute.  If you use the DO
         command to broadcast a GO command to one or  more  processes,
         the  GO  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 in
         the visible process is ignored.

     2.  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.


Parameters

 address-expression

     Specifies that program execution resume at the  location  denoted
     by  the  address  expression.   If  you do not specify an address
     expression, execution resumes at the point of suspension  or,  in
     the case of debugger start up, at the image transfer address.

HELP

     Invokes the HELP Facility to display information  about  a  DEBUG
     command or topic.  In response to the "Topic?" prompt, you can:

      o  Type the name of the command or  topic  for  which  you  need
         help.

      o  Type a question mark  (?)  to  redisplay  the  most  recently
         requested text.

      o  Press the RETURN key one or more times or the CTRL/Z  key  to
         exit from HELP.

     You  can  abbreviate   any   topic   name,   although   ambiguous
     abbreviations result in all matches being displayed.

     Format:
          HELP [topic ...]

Additional information available:

Parameters

Parameters

 topic ...

     Specifies the name of the command or feature with which you  need
     help.   In  general,  you can get help on a command by specifying
     the command after "HELP".  For example, to get help  on  "EXAMINE
     /SOURCE",  specify "HELP EXAMINE /SOURCE".  There is also help on
     general features (for example, "HELP Screen_features").

     If you use an asterisk in place of any  topic  or  subtopic,  the
     HELP command displays all information available at the level that
     the asterisk replaces.  For example, "HELP SET BREAK *"  displays
     all the subtopics under the topic "SET BREAK".

     If you use an ellipsis immediately after any topic, HELP displays
     all  the  information on the specified topic and all subtopics of
     that topic.  For example, "HELP SHOW..." displays information  on
     the  "SHOW"  topic  as  well  as information on all the subtopics
     under "SHOW".

IF

     Provides conditional execution of a  debugger  command.   If  the
     language  expression  given in the IF clause is true, the command
     given in the THEN clause is executed.  If the language expression
     is false, and an ELSE clause is present, the command given in the
     ELSE clause is executed.

     This feature is primarily useful in debugger  command  procedures
     and in the DO clause of breakpoints.

 Format:

     IF lang-exp THEN (debug-cmd-list) [ELSE (debug-cmd-list)]

     Example:

     DBG> SET BRE/SILENT X DO (IF Y .NE. 3 THEN (GO))
     ! The above is equivalent to:
     DBG> SET BRE/SILENT X WHEN (Y .EQ. 3)

Additional information available:

Parameters

Parameters

 lang-exp

     Any expression in the currently set language which  evaluates  to
     TRUE  or  FALSE.  For example, (X .EQ.  5) in FORTRAN, or (Y[3] >
     2) in PASCAL.  See "HELP Languages *" for information  about  the
     syntax of each language.

 debug-cmd-list

     A single debugger command or  a  sequence  of  debugger  commands
     separated by semicolons.

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 has built-in symbols that provide information  about
     the  current  exception.   Type HELP Built_in_Symbols %ADAEXC for
     Ada  specific  exceptions  and  HELP  Built_in_Symbols  %EXC  for
     non-Ada-specific exceptions.

     Also  type  HELP  Languages  ADA  Events   for   information   on
     Ada-specific exception 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.

Logical Names

Additional information available:

DBG$INITDBG$INPUT_DBG$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_DBG$OUTPUT

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

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

     If you plan to debug a program that takes its input from  a  file
     and   your  debugger  input  from  the  terminal,  establish  the
     following definitions before invoking the debugger:

       $ DEFINE SYS$INPUT program-input-file
       $ DEFINE/PROCESS DBG$INPUT 'F$LOGICAL("SYS$COMMAND")

     That  is,  define  DBG$INPUT  to  point  to  the  translation  of
     SYS$COMMAND.

     If you define DBG$INPUT to point  to  SYS$COMMAND,  the  debugger
     will try to get its input from the file.

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
CANTINTPROCANTOPNIMGCANTPASTCIREXLSTCLIBRDFAI
CLIBRDLCKCMDNOTDWCMDNOTONECMDSYNERR
CMPNOTFNDCONFLICTCONFROMEXCCONSTRCOMP
CPOSTDECRCPOSTINCRCPREDECRCPREINCRCRMPSCFAIL
CVTNEGUNSDBGERRDBGSTOPPEDDECLARERR
DECOVFDECROPRANDDEFKEYDEFKEYERRDELBREAK
DELKEYDELKEYERRDELTIMTOODELTRACEDESCNOTSET
DISABLEASTDISNAMREQDISNOTSELDISPEXISTS
DISPRLENSIZDIVBYZERODSTERRGDSTNESDEP
DWERRDWNOT1PROCDYNIMGSETDYNMODSET
EDITDISVEREDITERROREDITFILEEDITNOFILE
EDITREVVERENABLEASTENTRYMASKENUMRANGE
ERRACTIMGERRASSIGNERRCLSFILEERRCRELNM
ERRDEASSIGNERRFAOERRGETDVIERRGETEFERRINSDEC
ERRINSIGNALERRINVEDITERRORERRORLIMIT
ERROR_BLOCKERRQIOWERRSMGERRSYSSERVERRUSREVNT
EXARANGEEXCBREREPEXCDURCALEXITARGEXITERR
EXITSTATUSEXPMEMPOOLFILEUNALFLTOVFGETJPI
HEIGHTDIFFIDENTLONGIFIXUNDIFLTUNDIINTOVF
ILLADDCONILLASTERILLDEFNAMILLENUMVAL
ILLEVNSTRILLFILPTRILLFLOATILLLENGTHILLOFFSETILLPACSIZILLPATH1
ILLPATH2ILLPATHELEMILLPOSFLDILLQUALIFILLRANGEILLSETCON
ILLSIGEXTILLSIZFLDILLSUBLENILLSUBSTRILLTYPEINCDSTNESINCOMPOPR
INCOMPPTRINCOMQUALINCOMTARGETINCOMVERSION
INDBASEQLINITERRINITIALINPREADERRINSVIRMEM
INTERRINTERRUPTEDINTMEMERRINTOVFINUMTRUNC
INVADDRTKNINVARGLISINVARRDIMINVARRDSC
INVAVSCODEINVCHARINVCHRCONINVDESCINVDIGBIN
INVDIGDECINVDIGHEXINVDIGOCTINVDIRNAMINVDMTPTR
INVDSPSIZINVDSTRECINVDSTTYPCODEINVEXPRINVFIXDST
INVFLDREFINVGSTRECINVGSTTYPINVINDIRECT
INVLANGCODEINVLENGTHINVMARINVNOSPECTKN
INVNUMBERINVNUMSRCINVNUMSTRINVOPADDR
INVOPSYMINVPAGEINVPRCSYNINVPRIORINVRANSPEC
INVSELDISINVSRCLININVTIMSLIINVTSCODEINVVALTKN
INVWIDTHINVWINPARIRFAOVFISTRTRUITMNOTAVA
ITMTRUNCIVALOUTBNDSIVPRCLOGKERFUNCNYIKEYNAMERR
KEYSTATERRLASTCHANCELINEINFOLOGFILEISLONGSTRING
LOOPINCRLOOPVARLOWBNDOPTMATQUOMISMAXSTRLEN
MISCLOSUBMISINVNUMMISINVOPERMISMODBEG
MISMODENDMISOPEMISMODUSCOPEMPARENREQ
MPCOMMANDNAMSTRMISNAMTOOLONGNEEDMORE
NEEDPARENNOACCESSRNOACCESSWNOADDRREG
NOALTERSPNOATTACHNOBREAGGRNOBREAKAT
NOBREAKSNOCALLSNOCANMAINNOCLINOCONNECT
NOCURLOCNODEFSCPENODELIMTRNODEPDEBUG
NODIRLISMNODIRLISTNOELABBODYNOELABSPECNOEND
NOEPTSPECNOEVALEXPRNOEVENTFACNOEXCBRE
NOEXHNDNOFIELDNOFREENOGLOBALSNOINPAVAIL
NOINPFOCNOINSTRANNOKEYDEFNOKEYPADNOLASTVAL
NOLINXXXNOLISTNOLOCALSNOMARKCHNGNOMATCHNOMORE
NONEXPRNONEXPRCNONUMSCOPENONXTLINNOOCCLDISP
NOOUTAVAILNOPACKMEMBODYNOPACKMEMSPECNOPRED
NOPROMPTNORECSYMNORMALNORSTBLDNOSAVPROG
NOSCOPENOSCOPELISTNOSCRDEVNOSCRMODENOSCROLL
NOSCROLLDISPNOSETTERMNOSPAWNNOSPAWNINOSRCHSTR
NOSRCLINNOSTEPGONOSUCCNOSUCHBPTNOSUCHDISP
NOSUCHELPNOSUCHIMGNOSUCHMODUNOSUCHPACK
NOSUCHSCOPENOSUCHTASKNOSUCHTPTNOSUCHWIND
NOSUCHWPTNOSYMBOLNOSYMBOLRNOTADAPROG
NOTALIGNEDNOTARRAYNOTASTRUCTNOTATMAIN
NOTCURPCNOTDEFINENOTIMPLANNOTINLOOP
NOTINSCOPENOTINSTNOTNUMSCOPENOTORIGSRC
NOTPTRNOTRACESNOTRAZERONOTRECORDNOTREE
NOTTASKVALNOTUISOSCNOTUISV30NOTUNQOVR
NOTUPDATENOTYPEINFONOUNIQUENOUNIVERSALS
NOUSREVNTNOVALATPCNOVALTYPNOVALUENOWATCHES
NOWATTARNOWATVARIANOWATVARSTGNOWBPTNOWILD
NOWILDFILNOWOPCONOWPROTNULLPTRNUMCONLONGNUMTRUNC
OBJECTINVOBJPTRINVOBJTYPMISOBSOLETE_1
OBSOLETE_2OPCDECOPNOTALLOWOPSYNTAXOUTPUTLOST
PACSIZREQPARENREQPARSTKOVRPASTHRUPATHNOTACP
PATHTLONGPATHTOOLONGPCNOTALLPLICVTERR
PREDEPTNOTPROFRANOTPROMPTCLENPROMPTOCCL
PROMPTRLENPROVRFLOWPSHVALNYIPXCNQUALREQ
QUOSTRLONGREADERRREFUSEDREGMASKHIDDENREGMASKMISSING
REGREQRENAMENOTRESUMERRRETURNEDRNDFCTROUT
ROPRANDFRPCDBBDTRPCERRRPCINVDSCRPCOVFRPCUNF
RPCUNKARGRSTERRSCALEADDSCALESUBSCRNOTORIGSRC
SCRTOBIGSCRTOSMALLSCRUNAOPNSRCSCRUNAREASRC
SETKEYSETKEYERRSETMODUSETSCOMODSFCNTNEG
SHOKEYERRSHRPRCSIDEFFECTSIGVECTRUNCSIZEATOMIC
SIZETRUNCSOURCESCOPESPAWNEDSRCLINNOTSS_INT
STEPINTOSTGTRUNCSTRNGPADSTRTOOLONGSTRUCSIZESUBOUTBND
SUBSCRNGSUBSTRINGSUBUNITCANSUBUNITNOTCANSUBUNITNOTSET
SUBUNITSETSUPERDEBUGSYMNOTACTSYMNOTFND
SYNERREXPRSYNERRLABELSYNERRLINESYNTAX
TASKERRORTASKNONULLTASKNOREGSTASKNOTABORT
TASKNOTACTTASKNULLTERMINATINGTERMTKNREQ
TIMESLICETOOFEWSUBTOOMANDIMTOOMANERR
TOOMANINVTOOMANPARMTOOMANSUBTRYINGONEPRC
UNACREDBGOUNACVTUNALIGNEDUNALLOCATED
UNAOPEDBGIUNAOPESCRUNAOPNHLPUNAOPNINI
UNAOPNSRCUNAREASRCUNASAVVALUNASETIMG
UNASETTASUNASWISTAUNBPARENUNDEXPNUNDKEY
UNHANDLEDUNIMPLENTUNMTCHPARNUPBNDOPT
USREVNTERRVALNOTADDRVARNESDEPVERIFYICF
VERSIONNUMWATCHSIZEWATNOWCANWATNOWWAT
WATVARGSGONEWATVARGSOVRWATVARNOWGBLWATVARPROT
WATVARPTRWATVARREMAPWATVARSCPWIDTHDIFF
WITHCANWITHNOTCANWITHNOTSETWITHSETWORKSTACMD
WPTTRACEWRITE_FAILEDWRITE_INTO_KERNELWRITE_INTO_KERNEL_STACK
ZERLENDSTZEROINCR

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

 Explanation:  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

 Explanation:  The process process-specification has  just  activated,
     and   is   now   connected   to   the  main  debugger.   Any  SET
     BREAK/ACTIVATING or SET TRACE/ACTIVATING  events  will  now  take
     effect.

ADDRANCOV

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

 Severity:  Warning

 Explanation:    The   address   range   specified   in   a   debugger
     EXAMINE/SOURCE command 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:  Error

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

 Explanation:  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 debugger 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

 Explanation:  While walking the list of user-mode exit handlers,  the
     debugger 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

 Explanation:  The debugger 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  the
     debugger  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

 Explanation:   The  debugger  uses   object   handles   for   passing
     information  around  within  itself.   The  debugger  has  used a
     non-existent or corrupt handle for an operation.  The user should
     never see this message.

 User Action:  Submit a Software Performance Report (SPR)

BADOPCODE

 Message:  opcode opcode_name is unknown

 Severity:  Error

 Explanation:  The opcode opcode_name specified as a command parameter
     is  unknown  to  the debugger.  It may be the case that an opcode
     synonym has  been  specified  which  is  not  recognized  by  the
     debugger.

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

BADPARAM

 Message:  bad parameter value

 Severity:  Error

 Explanation:  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

 Explanation:  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

 Explanation:  The debugger 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  the
     debugger  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

 Explanation:  While displaying part of the call stack,  the  debugger
     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

 Explanation:  Location address_value is not an accessible address and
     therefore  cannot  be  executed.   This is often caused when a GO
     command with  no  address  specification  is  entered  after  the
     program  has  terminated.   The  debugger  tries  to  execute  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

 Explanation:  The debugger got an unexpected error  status  from  the
     system service or RTL routine routine-name.

 User Action:  Examine the error message and consider if  the  problem
     is  related  to  a  lack  of  quota  or otherwise related to your
     program's behavior.  If so, then  take  corrective  action.   If,
     after  this  evaluation, you believe that the problem lies in the
     debugger, 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

 Explanation:  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

 Explanation:  A SET WATCH  command  specified  a  protected  address.
     Note  that  you  cannot  place  a  watchpoint  on  a  dynamically
     allocated variable because these  variables  are  stored  on  the
     stack.

 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

 Explanation:  The EVALUATE command specified a bit field that is  too
     wide.

 User Action:  The low limit of the bit field is 0 and the high  limit
     is 31; the maximum range is 31:0.

BUFFEROVF

 Message:  buffer overflow

 Severity:  Error

 Explanation:  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

 Explanation:  The kernel debugger cannot access  the  main  debugger.
     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 debugger subprocess

 Severity:  Fatal

 Explanation:  An error occurred while trying to create  a  subprocess
     to  run the sharable main debugger image.  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

 Explanation:  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

 Explanation:  The debugger 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

CANTPAST

 Message:  cannot paste to read-only window.

 Severity:  Warning

 Explanation:  The window which has the input  focus  is  a  read-only
     window.  You cannot paste to a read-only window.

 User Action:  Assign the input focus to a writeable  window  and,  if
     applicable, to the appropriate text-entry field.

CIREXLST

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

 Severity:  Error

 Explanation:  After displaying information about 100  exit  handlers,
     the debugger suspects a circular exit handler list.

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

CLIBRDFAI

 Message:  clipboard operation failure

 Severity:  Warning

 Explanation:  One of the DECtoolkit clipboard routines has failed.

CLIBRDLCK

 Message:  clipboard locked

 Severity:  Warning

 Explanation:   Some  other  DECWINDOWS  application  has  locked  the
     clipboard.

 User Action:  Wait until  the  other  application  has  released  the
     clipboard.

CMDNOTDW

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

 Severity:  Error

 Explanation:   The  specified  command  may  not  be  used  with  the
     DECWindows debugger.

CMDNOTONE

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

 Severity:  Error

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

CMDSYNERR

 Message:     command    syntax    error    at    or     near     'the
     debugger_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

 Explanation:  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 the debugger Symbol Table (DST)

 Severity:  Informational

CVTNEGUNS

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

 Severity:  Warning

DBGERR

 Message:  internal debugger coding error.

 Severity:  Error

 Explanation:  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 debugger process from a previous  debugging  session  has
     been terminated

 Severity:  Warning

 Explanation:  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 debugger  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

DISNAMREQ

 Message:  display name required with this command

 Severity:  Error

 Explanation:  user did not specify a display name with this command

 User Action:  enter a display name with this command

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

 Explanation:  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.

DWERR

 Message:  a DECwindows toolkit error has occurred the message text is
     '!AS'

 Severity:  Informational

 Explanation:  An error has been reported by the  DECwindows  toolkit.
     This  indicates  that  either  the  toolkit  or  the X server has
     detected a problem with the debuggers DECwindows display(s).

 User Action:  Try to correct the problem specified  in  the  message.
     For  further  information  or assistance on this problem, contact
     your System Manager.

DWNOT1PROC

 Message:  the 1 process debugger cannot be run in DECwindows mode

 Severity:  Warning

 Explanation:  The debugger must have ASTs enabled  at  all  times  in
     order  to  properly  run  as  a  DECwindows program.  This is not
     possible for a 1 process debugger.  Therefore,  the  debugger  is
     defaulting to not run as a DECwindows debugger.

 User Action:  Correct the logical name assignment for DBG$PROCESS  to
     be either "MULTIPROCESS" or "DEFAULT", and try 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

 Explanation:  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

 Explanation:  A bad status was returned from a $ASSIGN type of  call.
     This message should be issued in the $DBG_INFO context.

 User Action:  The debugger needs to acquire I/O channels to  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

 Explanation:  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

 Explanation:  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

 Explanation:  The debugger 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

 Explanation:  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

 Explanation:  The debugger 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

 Explanation:  The debugger 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

ERRINSIGNAL

 Message:  signal arguments were incorrect, signal cannot be decoded

 Severity:  Warning

 Explanation:  The arguments which were passed as part of  the  signal
     in  your  program  were  incorrect.   The debugger encountered an
     error in trying to analyze the signal arguments.   The  error  is
     shown in the message following this message.

 User Action:  Analyze the arguments  passed  to  LIB$SIGNAL  by  your
     program, and correct the error.

ERRINVEDIT

 Message:  error invoking editor

 Severity:  Informational

 Explanation:  While trying to invoke  an  editor  a  bad  status  was
     returned.

 User Action:  Is the requested editor available and working properly.
     If so, submit a Software Performance Report (SPR).

ERROR

 Message:  internal debugger error detected

 Severity:  Error

 Explanation:  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

 Explanation:   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

 Explanation:  The debugger signalled an error  handle.   This  should
     never  happen.  The error handles are an internal construct which
     are used to obtain information within the debugger.  They  should
     never appear in user-visible messages.

 User Action:  Submit a Software Performance Report (SPR)

ERRQIOW

 Message:  error from $QIOW

 Severity:  Informational

 Explanation:  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

 Explanation:  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  debugger  system  service
     call

 Severity:  Informational

 Explanation:  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

 Explanation:  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

 Explanation:  While executing a  routine  called  from  an  exception
     break  using  the  CALL  command,  an  exception  occurred.   Any
     exceptions from routines called from  an  exception  break  cause
     this  message  to  be  displayed  followed  by  the  text  of 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

 Explanation:  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  the  debugger,  then  submit  a  Software
     Performance Report.

EXITSTATUS

 Message:  is 'status_value'

 Severity:  Informational

 Explanation:  The program has exited with the status status_value.

 User Action:  None.

EXPMEMPOOL

 Message:  expanding debugger memory pool

 Severity:  Informational

 Explanation:  The debugger 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

 Explanation:  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

 Explanation:   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

 Explanation:  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

 Explanation:   Incorrect  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

 Explanation:  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

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

 User Action:  Make sure that the logical names used to point  at  the
     sharable and non_sharable debugger images are defined to point to
     the same type of debuggers.

INCOMVERSION

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

 Severity:  Error

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

 User Action:  Make sure that the logical names used to point  at  the
     sharable and non_sharable debugger images are defined to point to
     the same type of debuggers.

INDBASEQL

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

 Severity:  Error

INITERR

 Message:  an  error  has  occurred  during  debugger  initialization,
     unable to continue this session.

 Severity:  Fatal

 Explanation:  The debugger encountered an error during initialization
     which does not allow this debugging session to proceed.

 User Action:  Use the message which preceded this message to  analyze
     and correct the error, and try again.

INITIAL

 Message:  language is language_name, module set to path_name

 Severity:  Informational

 Explanation:  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 the debugger memory pool

 Severity:  Informational

INTERR

 Message:  internal debugger error in debugger_routine_name

 Severity:  Error

 Explanation:  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

 Explanation:  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

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

 User  Action:   Correct  the  user  program  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

 Explanation:  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 'the debugger_command_segment'

 Severity:  Warning

INVARRDIM

 Message:  array dimension is out of range

 Severity:  Warning

INVARRDSC

 Message:  invalid array descriptor

 Severity:  Error

 Explanation:  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

 Explanation:  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

 Explanation:  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

 Explanation:  The directory  name  'file_specification'  given  in  a
     DEBUGGER  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 debugger 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

 Explanation:  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

 Explanation:  While attempting to read the symbol  table  information
     in  the  specified image, the debugger found errors in the symbol
     table 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

 Explanation:  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

 Explanation:  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

 Explanation:  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

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

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

INVNOSPECTKN

 Message:  - invalid token for no address or value spec

 Severity:  Informational

 Explanation:  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

 Explanation:  An invalid number of source files was specified on  the
     SET MAX_SOURCE_FILES command.  The maximum number of source files
     that the debugger 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

 Explanation:  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

 Explanation:  An  invalid  source  line  range  was  entered  in  the
     debugger  TYPE  command.  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

 Explanation:  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

 Explanation:  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

 Explanation:  The user should never see this message.   The  debugger
     uses  an  item list construct for passing information between its
     parts.   This  message  indicates  that  the  requesting  routine
     requested  data  which  the  target  routine  was  not capable of
     providing.  Appearance of  this  message  indicates  an  internal
     problem in the debugger.

 User Action:  Submit a Software Performance Report (SPR)

ITMTRUNC

 Message:  item truncated - buffer of insufficient size

 Severity:  Warning

 Explanation:  The user should never see this message.   The  debugger
     uses  an  item list construct for passing information between its
     parts.   This  message  indicates  that  the  requesting  routine
     allocated  a  buffer  which was too small for the requested data.
     Appearance of this message indicates an internal problem  in  the
     debugger.

 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

 Explanation:  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

 Explanation:  This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

KEYNAMERR

 Message:  unrecognized key name:  key_name

 Severity:  Error

 Explanation:  This keyname <key_name, !AS> is in error.  It  can  not
     be defined by the user.

 User Action:  Check spelling of the key name.

KEYSTATERR

 Message:  unrecognized state name:  state_name

 Severity:  Error

 Explanation:  This key state <state_name, !AS> is in error.   It  has
     not been defined by the user.

 User Action:  Check spelling of the state name or define the state.

LASTCHANCE

 Message:  stack exception handlers lost, re-initializing stack

 Severity:  Error

 Explanation:  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:  Error

LOGFILEIS

 Message:  the error log is in file file_specification

 Severity:  Informational

 Explanation:   An  internal  debugger   error   has   occurred,   and
     information  which  will be useful in locating the error has been
     written to file_specification.

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

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

 Explanation:  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

 Explanation:   The  invocation  number  was  not  placed  after   the
     innermost (rightmost) routine name in the specified pathname.

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

MISINVOPER

 Message:  missing or invalid operator at 'operator_symbol'

 Severity:  Error

MISMODBEG

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

 Severity:  Informational

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

 User Action:  Submit a Software Performance Report.

MISMODEND

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

 Severity:  Informational

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

 User Action:  Submit a Software Performance Report.

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

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

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

MPCOMMAND

 Message:  command is only valid when multiprocess support is enabled

 Severity:  Error

 Explanation:  The  debugger  was  unable  to  execute  the  specified
     command  since  it is only valid when the debugger'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

 Explanation:  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

 Explanation:  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

 Explanation:  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

 Explanation:  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

 Explanation:  The debugger 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

     Warning '.' is not currently defined.

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

NODEFSCPE

 Message:  No default scope list:  error performing !AC

 Severity:  Error

 Explanation:  The specified command or built-in symbol requires  that
     the default scope list be established.

 User Action:  To establish the default scope list, perform  a  CANCEL
     SCOPE command.

NODELIMTR

 Message:  missing or invalid instruction operand delimiter

 Severity:  Error

 Explanation:  A DEPOSIT  command  specified  an  invalid  instruction
     operand format.

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

NODEPDEBUG

 Message:  DEPOSIT into the debugger's address space is not allowed

 Severity:  Warning

NODIRLISM

 Message:  no source directory list in effect for path_name

 Severity:  Warning

 Explanation:  The  debugger  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

 Explanation:  The  debugger  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

 Explanation:   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

 Explanation:  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

 Explanation:  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

 Explanation:  An attempt was made to reference a field  that  is  not
     defined in the record.

 User Action:  Check the field specified to ensure that it is  defined
     in the record.

NOFREE

 Message:  no free storage available

 Severity:  Error

NOGLOBALS

 Message:  some or all global symbols not accessible

 Severity:  Informational

 Explanation:  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:  input objects not available

 Severity:  Fatal

 Explanation:  The debugger was unable to  open  either  DBG$INPUT  or
     SYS$INPUT.

 User Action:  Check that logicals used to point  at  input  files  or
     devices are properly defined.

NOINPFOC

 Message:  debugger must have input focus to accept paste operation

 Severity:  Warning

 Explanation:  A writeable  debugger  window  and,  if  applicable,  a
     text-entry  field in that window must have the input focus before
     the selection can be pasted to it from the clipboard.

 User Action:  Assign the input focus to a writeable  window  and,  if
     applicable, to the appropriate text-entry field.

NOINSTRAN

 Message:  cannot translate opcode at location address_value

 Severity:  Error

 Explanation:  The address specified in the EXAMINE command is not the
     beginning  of  a  valid  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

     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

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

 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

 Explanation:  A command that only accepts a single input value for  a
     parameter contains multiple values separated by commas (,).

 User Action:  Re-enter the command; specify one value.  If necessary,
     issue the command once for each value.

NOLOCALS

 Message:  image does not contain local symbols

 Severity:  Informational

 Explanation:  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

     Warning

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

NONEXPR

 Message:  nonexistent process

 Severity:  Error

 Explanation:  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

 Explanation:   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

 Explanation:  The debugger 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:  output objects are not available

 Severity:  Fatal

 Explanation:  The debugger was unable to open  either  DBG$OUTPUT  or
     SYS$OUTPUT.

 User Action:  Check that logicals used to point at  output  files  or
     devices are properly defined.

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

 Explanation:   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 'debugger_command_segment'

 Severity:  Error

 Explanation:   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 debugger status

 Severity:  Success

NORSTBLD

 Message:  cannot build symbol table

 Severity:  Error

 Explanation:  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

 Explanation:  The specified line_number cannot be found because there
     is no current scope to look it up in.

 User Action:  Specify the module explicitly and retry the operation.

NOSCOPELIST

 Message:  a list of scopes is not allowed with this command.

 Severity:  Error

 Explanation:  You cannot enter a list of scopes with  the  previously
     executed command.

 User Action:  Enter the command with only one scope item.

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

 Explanation:  No current search string is defined  for  the  debugger
     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

 Explanation:  No source line corresponds to the address address_value
     specified on the debugger 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

 Explanation:  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

 Explanation:  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

 Explanation:  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

 Explanation:  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

 Explanation:  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

 Explanation:  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

 Explanation:  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

 Explanation:  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

 Explanation:   The  operands  being  examined  will   probably   give
     incorrect  results,  because  the  context for the instruction is
     probably not  set  up  properly.   Specifically,  the  values  of
     registers  used  in  address  computations depend on the 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

 Explanation:  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

NOTINSCOPE

 Message:  specified scope cannot be found in the default scope list

 Severity:  Error

 Explanation:  The specified scope was  not  in  the  current  default
     scope list.

 User Action:  Enter the command with a scope that is in  the  default
     scope list.

NOTINST

 Message:  examined address is not the start of an instruction

 Severity:  Informational

NOTNUMSCOPE

 Message:  specified scope is not a numbered scope.

 Severity:  Error

 Explanation:  The  SET  SCOPE/CURRENT  command  requires  a  numbered
     scope.

 User Action:  Enter the command with a numbered scope.

NOTORIGSRC

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

 Severity:  Informational

 Explanation:  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  debugger  command  SET SOURCE to indicate the
     location of the source to the debugger.

NOTPTR

 Message:  variable must be of pointer or file type

 Severity:  Warning

 Explanation:  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

 Explanation:  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

 Explanation:  The debugger 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

NOTUISOSC

 Message:  the debugger will be unable to create  a  separate  window;
     OSC not enabled.

 Severity:  Informational

 Explanation:  The debugger requires OSC support enabled to  create  a
     separate window (see SET MODE SEPARATE).

 User Action:  To allow the debugger to create a separate window, type
     at  DCL:   DEFINE/SYSTEM UIS$VT_ENABLE_OSC_STRINGS TRUE.  You may
     wish to put this line in your private startup file.

NOTUISV30

 Message:  the debugger will be unable to create  a  separate  window;
     UIS too old.

 Severity:  Informational

 Explanation:  The debugger requires VWS V3.0 or  later  to  create  a
     separate window (see SET MODE SEPERATE).

 User Action:  To allow the debugger  to  create  a  separate  window,
     install  VWS  V3.0 or later, and in your private startup file (or
     at DCL), DEFINE/SYSTEM UIS$VT_ENABLE_OSC_STRINGS TRUE.

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

 Explanation:  The symbol specified was not in a default scope or  was
     defined in more than one scope.

 User Action:  Specify the scope of the symbol in a pathname or change
     the default scope.

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

 Explanation:  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

 Explanation:  The command specified a reference that has no value.

 User Action:  Change the reference.

NOWATCHES

 Message:  no watchpoints are set

 Severity:  Informational

 Explanation:  No watchpoints are set.

 User Action:  None.  This message is informational.

NOWATTAR

 Message:  cannot watch-protect target

 Severity:  Error

 Explanation:  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

 Explanation:  This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

NOWILD

 Message:  no wildcard permitted

 Severity:  Error

 Explanation:  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

 Explanation:  This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

NOWPROT

 Message:  cannot set protection

 Severity:  Fatal

 Explanation:  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

 Explanation:  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

 Explanation:  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

 Explanation:  This message indicates an internal debugger error.

 User Action:  Submit an SPR.

OBSOLETE_1

 Message:  this message is available for reuse

 Severity:  Warning

OBSOLETE_2

 Message:  this message is available for reuse

 Severity:  Informational

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

 Explanation:  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    'debugger_command_segment
     /TYPE=(X)'

 Severity:  Warning

 Explanation:   The  debugger_command_segment  is  either  SET   TYPE,
     DEPOSIT, or EXAMINE.

PARSTKOVR

 Message:  parse stack overflow, simplify expression

 Severity:  Warning

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

 User Action:  Simplify the expression.

PASTHRU

 Message:  The primary handler should ignore this signal

 Severity:  Success

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

 Explanation:  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

 Explanation:  You attempted to  look  at  a  variable  in  a  routine
     invocation that does not exist.

 User Action:   Specify  a  routine  or  routine  invocation  that  is
     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

PSHVALNYI

 Message:   PUSH_VALSPEC  DST  stack  machine  operator  for  variable
     'symbol_name' is not yet implemented

 Severity:  Error

 Explanation:  The  named  variable's  address  is  complex,  and  its
     computation  uses  operands  which  live  in  different places at
     different points in the  program's  execution.   This  cannot  be
     denoted  using  DEBUG  Symbol  Table  (DST)  features  which this
     version of the debugger supports.

 User Action:  Verify that you are using the latest  releases  of  the
     compiler  and  debugger.  Try recompiling the application without
     optimization.  Examine the nearest object code  which  references
     the variable and simulate the access algorithm by hand.

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

 Explanation:  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:  debugger input read error, force to exit

 Severity:  Warning

REFUSED

 Message:  attach request refused

 Severity:  Error

 Explanation:  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.

REGMASKHIDDEN

 Message:  register save mask hidden for stack frame frame_number

 Severity:  Warning

 Explanation:  Information on where the designated routine  invocation
     might  save  registers  is  in  a  module which has not been set.
     Symbolic references to non-static variables of  callers  of  this
     routine may not be resolved correction by the debugger.

 User Action:   Set  the  module  by  using  the  SET  MODULE  or  SET
     MODULE/CALLS  commands, or enable dynamic module setting with the
     SET MODE DYNAMIC command.  Then retry the action  which  produced
     this message.

REGMASKMISSING

 Message:  register save mask missing for stack frame frame_number

 Severity:  Warning

 Explanation:  Information on where the designated routine  invocation
     might  save  registers  is not available.  Symbolic references to
     non-static variables of  callers  of  this  routine  may  not  be
     resolved correction by the debugger.

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

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

 Explanation:  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  the  debugger,  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

 Explanation:  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

 Explanation:  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

 Explanation:  This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

RPCOVF

 Message:  RPC packet overflow

 Severity:  Error

 Explanation:  This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

RPCUNF

 Message:  undefined RPC function encountered

 Severity:  Error

 Explanation:  This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

RPCUNKARG

 Message:  undefined RPC argument encountered

 Severity:  Error

 Explanation:  This message indicates an internal debugger error.

 User Action:  Submit a Software Performance Report.

RSTERR

 Message:  error in symbol table

 Severity:  Error

 Explanation:  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

SCRNOTORIGSRC

 Message:  original version of source file not found  for  display  in
     display_name file used is file_specification

 Severity:  Informational

 Explanation:  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  debugger  command  SET SOURCE to indicate the
     location of the source to the debugger.

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

SCRUNAOPNSRC

 Message:  unable to open source file file_specification  for  display
     in display_name

 Severity:  Warning

 Explanation:  Source lines from the file file_specification cannot be
     displayed because the debugger 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.

SCRUNAREASRC

 Message:  unable to read source file file_specification  for  display
     in display_name

 Severity:  Warning

 Explanation:  Source lines from the file file_specification cannot be
     displayed because the debugger 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.

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    'debugger_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:  debugger will share user process

 Severity:  Informational

 Explanation:  An error occured while trying to create a subprocess to
     run  the  main  debugger  image.  This message indicates that the
     debugger 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

 Explanation:  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

 Explanation:   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

 Explanation:  The source lines from module CZ cannot be displayed  or
     searched  because  there  is  no  source  line information in the
     symbol table 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  the  debugger for modules written in that
     language.

SS_INT

 Message:  system service intercepted

 Severity:  Informational

STEPINTO

 Message:  cannot step over PC = address_value

 Severity:  Informational

 Explanation:  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

 Explanation:  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

 Explanation:  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

 Explanation:  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

 Explanation:  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

 Explanation:  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
     'debugger_command_segment'

 Severity:  Error

SYNERRLABEL

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

 Severity:  Error

SYNERRLINE

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

 Severity:  Error

SYNTAX

 Message:  command syntax error at or near 'debugger_command_segment'

 Severity:  Error

 Explanation:  The debugger encountered a command  syntax  error  near
     the element debugger_command_segment.

 User Action:  Re-enter the command.

TASKERROR

 Message:  error error_code from ADA multitasking

 Severity:  Error

TASKNONULL

 Message:  Null task cannot be selected or modified

 Severity:  Error

TASKNOREGS

 Message:  Task has no registers (it is the Null task)

 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

 Explanation:  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

 Explanation:  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

 Explanation:  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

 Explanation:  Since an  error  occurred  while  trying  to  create  a
     subprocess  to  run the sharable main debugger image , 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

 Explanation:  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

 Explanation:  Source lines from the file file_specification cannot be
     displayed because the debugger 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

 Explanation:  Source lines from the file file_specification cannot be
     displayed because the debugger 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

UNHANDLED

 Message:  The  primary  handler  should  now  handle  this  unhandled
     exception

 Severity:  Success

UNIMPLENT

 Message:  attempt to evaluate unimplemented type

 Severity:  Warning

UNMTCHPARN

 Message:  unmatched left parenthesis found

 Severity:  Warning

 Explanation:  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

 Explanation:  The value of the specified variable is not usable as an
     address.  The address must be a longword.

 User Action:  Modify the address and retry the operation.

VARNESDEP

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

 Severity:  Error

VERIFYICF

 Message:  opening/closing command procedure file_specification

 Severity:  Informational

 Explanation:  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

 Explanation:  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

 Explanation:  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

 Explanation:   This  message  is  a  sub-message  to  WATVARSCP   and
     WATVARPTR.   This  message  indicates  the new name under which a
     variable which either went  out  of  scope  or  whose  pointer(s)
     changed  is  addressed by the debugger.  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

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

WATVARGSOVR

 Message:  watched variable overlaps into a global section

 Severity:  Error

 Explanation:  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

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

WATVARPROT

 Message:  watched variable variable name is no longer accessible

 Severity:  Informational

 Explanation:  Some action by the program has made the target variable
     inaccessible to the debugger.  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
     the debugger can not read it.  This message is always followed by
     the  WATNOWCAN  message,  since  the  debugger  must  delete  the
     watchpoint.

WATVARPTR

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

 Severity:  Informational

 Explanation:  Some pointer in  the  variable  reference  has  changed
     value.    This  message  is  accompanied  by  a  further  message
     indicating whether the debugger has cancelled the  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

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

WATVARSCP

 Message:  watched variable variable name has gone out of scope

 Severity:  Informational

 Explanation:  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 the debugger 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  debugger-command  is   only   supported   on
     workstations

 Severity:  Warning

 Explanation:    The    debugger    only    supports    the    command
     debugger-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

 Explanation:  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

 Explanation:  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

 Explanation:  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

 Explanation:  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

     Informational

MOVE

     Moves a screen display vertically and/or horizontally across  the
     screen.  The MOVE command simply creates a new window of the same
     dimensions elsewhere on the screen and maps the  display  to  it,
     while  maintaining  the  relative position of the text within the
     window.

     The MOVE command does not change the order of a  display  in  the
     pasteboard  circular  list.   Depending  on the relative order of
     displays, the MOVE command may  cause  the  display  to  hide  or
     uncover   another  display  or  be  hidden  by  another  display,
     partially or totally.

     A display can be moved only up to the edge of the screen.   Thus,
     specifying  MOVE/DOWN:99  SRC  moves display SRC down so that its
     bottom border is at the bottom edge of the screen.

 Format:

     MOVE /qualifier[...] [disp_name [,disp_name...] ]

Additional information available:

ExamplesKey DefinitionsParametersQualifiers

Examples

     DBG> MOVE/UP:3/RIGHT:5 FOO  ! Move display FOO up by 3 lines and
                                 ! right by 5 columns.
     DBG> MOVE/LEFT              ! Move the current scrolling display
                                 ! left by 1 column.

Key Definitions

     Several keypad keys have  been  bound  to  the  EXPAND  and  MOVE
     commands,   to  facilitate  expanding,  contracting,  and  moving
     displays.  (See HELP KEYPAD STATE_KEYS for more information).

Parameters

 disp_name

     The name (or list of names) of the screen display(s) to be moved.
     If this name is omitted, the currently selected scrolling display
     is used.  (See HELP SELECT/SCROLL).

Qualifiers

Additional information available:

/DOWN/LEFT/RIGHT/SUFFIX/UP

/DOWN[:n]

     Move the display down by n lines (if n is positive) or  up  by  n
     lines  (if n is negative).  If n is omitted, the display is moved
     down  by  1  line.   See  the  MOVE   command   description   for
     restrictions.

/LEFT[:n]

     Move the display to the left by n lines (if  n  is  positive)  or
     right  by  n  lines  (if  n  is  negative).  If n is omitted, the
     display is moved to the left by 1 line.   See  the  MOVE  command
     description for restrictions.

/RIGHT[:n]

     Move the display to the right by n lines (if n  is  positive)  or
     left by n lines (if n is negative).  If n is omitted, the display
     is  moved  to  the  right  by  1  line.   See  the  MOVE  command
     description for restrictions.

/SUFFIX[=process-identifier-type]

     Note:   This  qualifier  applies  to  a  multiprocess   debugging
     configuration (when DBG$PROCESS has the value MULTIPROCESS).  Use
     this qualifier only directly after a display name.

     Appends a process-identifying suffix  to  a  display  name.   The
     suffix  denotes  the  visible  process.   This  qualifier is used
     primarily  in  command   procedures   when   specifying   display
     definitions   or  key  definitions  that  are  bound  to  display
     definitions.  Use any of  the  following  process-identifier-type
     keywords:

        PROCESS_NAME     The display-name suffix is the VMS process name.

        PROCESS_NUMBER   The display-name suffix is the process number
                         (as shown in a SHOW PROCESS display).

        PROCESS_PID      The display-name suffix is the VMS process
                         identification number (PID).

     If  you  specify  /SUFFIX  without  a  process-identifier-   type
     keyword,  the  process  identifier type used for the display-name
     suffix is, by default, the same  as  that  used  for  the  prompt
     suffix (see SET PROMPT/SUFFIX).

/UP[:n]

     Move the display up by n lines (if n is positive) or  down  by  n
     lines  (if n is negative).  If n is omitted, the display is moved
     up by 1 line.  See the MOVE command description for restrictions.

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.2 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 put 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  put 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 displays  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 terminated 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 (not to be confused
     with process termination in the VMS sense).   This  condition  is
     traced  by  default,  as  if  you  had  entered  the  command SET
     TRACE/TERMINATING.

     When a process is in the terminated debugging 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, rather than ending the debugging session.

     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 terminate selected processes (in the VMS sense) without ending
     the  debugging session, use the EXIT or QUIT commands, specifying
     one or  more  processes  to  be  terminated.   For  example,  the
     following  command  terminates the image running in process 2 and
     the process:

       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.2

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 built-in symbols. See help on "Built_in_Symbols %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.2

     The new features for Version V5.2 of the debugger are as follows:

     1.  The   debugger   is   now   available   in    a    DECwindows
         (direct-manipulation)  interface  for  workstations.  You can
         use the debugger's  command  interface  from  the  DECwindows
         interface  by  opening  a command window (box).  See the V5.2
         VMS Debugger Manual  for  information  about  the  DECwindows
         interface.

     2.  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  in  one  process  (Default_Configuration
         topic).  Use the multiprocess configuration to debug programs
         that    run    normally    in    more    than   one   process
         (Multiprocess_Configuration topic).

         The Compatibility topic explains  the  use  of  commands  and
         other    features    in    the   default   and   multiprocess
         configurations.

     3.  You can now selectively display and cancel  user-defined  and
         predefined breakpoints and tracepoints (Breakpoints topic).

     4.  The DISPLAY command now enables you to create a new  display,
         in  addition  to  modifying  an  existing  display (type HELP
         DISPLAY).

     5.  The SET SCOPE command has a new /CURRENT qualifier (type HELP
         SET SCOPE).

     Type HELP Release_Notes V5.2  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 supported 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 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, which is 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.  Terminate selected processes (EXIT, QUIT).

     7.  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).

     8.  Set  and  cancel  breakpoints  and  tracepoints  to   trigger
         automatically when processes come under debugger control (SET
         (BREAK,TRACE) /ACTIVATING, CANCEL (BREAK,TRACE) /ACTIVATING.)

     9.  Set  and  cancel  breakpoints  and  tracepoints  to   trigger
         automatically  when  processes  perform  an  image  exit (SET
         (BREAK,TRACE)     /TERMINATING,     CANCEL      (BREAK,TRACE)
         /TERMINATING).

    10.  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.


    11.  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.2 Keypad

    12.  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
     that are specific to multiprocess debugging.

          CONNECT
          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,SHOW) PROCESS
          SET PROMPT
            /[NO]SUFFIX=keyword

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".

QUIT

     The QUIT command ends a debugging session, or terminates  one  or
     more processes of a multiprocess program.

     If used within a command procedure or DO clause and no process is
     specified,  the  QUIT  command  exits the command procedure or DO
     clause at that point.

     The QUIT command is like the EXIT command, except that QUIT  does
     not  cause  your  program  to  execute  and,  therefore, does not
     execute any user-declared exit handlers in your program.

 Format:

       QUIT  [process-spec[, . . . ]]

Additional information available:

Ending Debugging SessionExiting Command ProceduresTerminating Processes
ExamplesParameters

Ending Debugging Session

     To end a  debugging  session,  enter  the  QUIT  command  at  the
     debugger  prompt  without specifying any parameters.  This causes
     orderly termination of the session:  the debugger exit handler is
     executed  (closing  log  files,  restoring  the screen and keypad
     states, and so on),  and  control  is  returned  to  the  command
     interpreter.   You  cannot then continue to debug your program by
     entering the DCL commands DEBUG  or  CONTINUE.   To  restart  the
     debugger, you must run the program again.

Exiting Command Procedures

     When  the  debugger  executes  a  QUIT   command   (without   any
     parameters)  in  a  command  procedure,  control  returns  to the
     command stream that invoked the  command  procedure.   A  command
     stream  can  be  the  terminal,  an  outer  (containing)  command
     procedure, or  a  DO  clause  in  a  command  or  screen  display
     definition.   For  example,  if the command procedure was invoked
     from within a DO clause, control returns to that DO clause, where
     the  debugger  executes  the  next  command (if any remain in the
     command sequence).

     When  the  debugger  executes  a  QUIT   command   (without   any
     parameters)  in a DO clause, it ignores any remaining commands in
     that clause and displays its prompt.

Terminating Processes

     If you are using  the  multiprocess  debugging  configuration  to
     debug a multiprocess program (if the logical name DBG$PROCESS has
     the  value  MULTIPROCESS),  you  can  use  the  QUIT  command  to
     terminate   selected   processes  without  ending  the  debugging
     session.  The same techniques and  behavior  apply,  whether  you
     enter  the  QUIT command at the prompt or use it within a command
     procedure or DO clause.

     To terminate one or  more  processes,  enter  the  QUIT  command,
     specifying  these  processes  as parameters.  This causes orderly
     termination of the images in these  processes  without  executing
     any  user-declared  exit  handlers  associated with these images.
     Subsequently, the specified processes are no longer identified in
     a SHOW PROCESS/ALL display.

     In contrast to the EXIT command, the QUIT command does not  cause
     any process to start execution.

Examples

     1   DBG> QUIT
         $

     This command, when entered from the prompt,  ends  the  debugging
     session and returns you to DCL command level.

     2   JONES_1> QUIT %NEXT_PROCESS, %PROCESS_NAME JONES_3, %PROC 5
         JONES_1>

     This command causes orderly termination of three processes  of  a
     multiprocess program:  the next process after the visible process
     on the process list, process JONES_3, and process 5.  Control  is
     returned  to  the  debugger  after  the  specified processes have
     exited.

Parameters

 process-spec

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

     Specifies a process.  Use any of the following forms:

     [%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.
                                     Process numbers appear in a
                                     SHOW PROCESS display.

     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 also use the asterisk wilcard character  (*)  to  specify
     all processes.

Release Notes

Additional information available:

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

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.2

     Type HELP New_Features V5.2 for a summary description of all  new
     features  for  this  release  of the debugger.  The release notes
     describe the following topics:

      o  Changes from  single-process  to  two-process  (default)  and
         multiprocess  debugging  configurations (Two_Process_Debugger
         topic)

      o  Use of the single-process debugging  configuration  (used  in
         previous      VMS      versions)     in     certain     cases
         (Single_Process_Debugger topic)

      o  Changes in the use of CTRL/Y and CTRL/C (CTRLY_CTRLC topic)

      o  Changes to the debugger keypad key definitions (Keypad topic)

      o  Restrictions on using the  abort  key  (CTRL/C,  by  default)
         after a SPAWN command (Abort_After_Spawn topic)

      o  Restrictions  on  using  debugger  commands  in  DCL  command
         procedures (DCL_Command_Procedures topic)

      o  System  management  considerations  for  using  the  debugger
         (System_Management topic)

     Note that these release notes do not include any information that
     might  be  specific  to the debugger's DECwindows interface.  See
     the VMS Version 5.2 Release Notes for complete information.

Additional information available:

CTRLY_CTRLC

Two Process DebuggerSingle Process DebuggerKeypadAbort After Spawn
DCL Command ProceduresSystem Management

Two Process Debugger

     Before VMS Version 5.2, you could use the debugger only with one-
     process  programs.   The  debugger and the program being debugged
     ran  in  the  same  process.   This  debugging  configuration  is
     referred  to as the single-process configuration in these release
     notes.

     Starting with VMS Version 5.2, you  can  use  the  debugger  with
     multiprocess  programs  (programs  that  run  in  more  than  one
     process).  To accommodate this and other new  capabilities,  such
     as  the  DECwindows  interface,  the debugger now consists of two
     parts that run in separate processes:  A relatively small  kernel
     debugger  image  (DEBUG.EXE)  and  a  larger  main debugger image
     (DEBUGSHR.EXE) which contains most of the debugger code.

     This  separation  reduces  potential  interference  between   the
     debugger  and  the  program  being debugged.  The separation also
     makes it possible to have  two  debugging  configurations-default
     and multiprocess:

      o  When you use the debugger with  a  one-process  program,  the
         kernel  debugger  runs  in one process along with the program
         and the main debugger runs in a subprocess.  This two-process
         debugging  configuration  is  the  default configuration.  It
         results when the logical name DBG$PROCESS is either undefined
         or has the value DEFAULT.

      o  When you use the debugger  with  a  multiprocess  program,  a
         kernel  debugger runs in each process of the program, and the
         main  debugger  runs  in  a  subprocess.   The   multiprocess
         configuration,   which   results   when   the   logical  name
         DBG$PROCESS has the  value  MULTIPROCESS,  enables  one  main
         debugger  to communicate with several kernel debuggers in the
         same VMS job tree.

     Type HELP Debugging_Configurations for more information.

Single Process Debugger

     When you invoke the VMS  Version  5.2  debugger,  if  a  separate
     process  cannot  be  created  to run the main debugger image, the
     debugger issues one or more messages and automatically  uses  the
     single-process configuration (the V5.0 and earlier configuration,
     where  the  debugger  shares  a  single  process  with  the  user
     program).   For example, if quotas are not sufficient to create a
     subprocess for the main debugger, the messages are as follows:

      %DEBUG-E-CANTCREATEMAIN, could not create the VAX DEBUG subprocess
      -SYSTEM-F-EXQUOTA, exceeded quota
      %DEBUG-I-SHRPRC, VAX DEBUG will share user process

     In the single-process configuration, you can use the debugger  to
     debug a program that normally runs in only one process.  However,
     you  cannot  use  the  additional  debugger  features  that   are
     available with VMS Version 5.2:

      o  You cannot use the multiprocess debugging configuration

      o  You cannot use the debugger's DECwindows interface

      o  You do not have the benefit of reduced  interference  between
         the debugger and the program being debugged

     In the single-process configuration,  use  the  sequence  CTRL/Y-
     DEBUG  to  abort  a  debugger  command  or program execution from
     within a debugging session.  CTRL/Y returns  you  to  DCL  level.
     The  DCL  command DEBUG invokes the debugger, which then displays
     its prompt.  You cannot use the SET ABORT_KEY command to reassign
     the abort function to another CTRL-key sequence.

     The single-process configuration avoids the restrictions  on  VMS
     Version  5.2  with  respect to use of the abort key after a SPAWN
     command and use of debugger commands in  DCL  command  procedures
     (see   the   Release_Notes   V5.2  topics  Abort_After_Spawn  and
     DCL_Command_Procedures).

     If you wish to use  the  single-process  debugging  configuration
     because it avoids these restrictions, you can do so by making the
     following logical name assignment before invoking the debugger:

       $ DEFINE DBG$PROCESS NONE

     NOTE:

       Use the  single-process  configuration  (established  when  the
       definition of DBG$PROCESS is NONE) only when necessary to avoid
       the   restrictions   of   the   default   configuration.    The
       single-process  configuration  is  unsupported  and  may not be
       available in future releases of the debugger.  Please submit an
       SPR  if  you  encounter  any  problems  using  the  default  or
       multiprocess configurations  (other  than  those  mentioned  in
       these release notes).

CTRLY_CTRLC

     In previous versions of the debugger, you  could  use  CTRL/Y  as
     follows:

      o  From  within  a  debugging  session,  to  interrupt   program
         execution or to abort a debugger command.

      o  From DCL level, to interrupt  a  program  that  is  executing
         freely  (you  then  invoked  the debugger by entering the DCL
         DEBUG command).

     You should now use CTRL/Y only from DCL level.

     You should now use CTRL/C rather than CTRL/Y to abort a  debugger
     command  or  interrupt  program execution from within a debugging
     session.

     CTRL/C aborts these  operations  without  exiting  the  debugging
     session  (the  debugger  prompt  is  displayed  after  you  enter
     CTRL/C).

     If your program already has a CTRL/C AST routine enabled, use the
     new  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.

     If you use CTRL/Y from within a debugging session, the effect (as
     in  previous  versions  of  the  debugger  )  is to interrupt the
     debugging session and return control to DCL level.  The effect is
     the  same  as using CTRL/Y with any program or utility running on
     VMS.

     See the HELP topics CTRL_C, CTRL_Y, and (SET, SHOW) ABORT_KEY for
     more information.

Keypad

     The following  previously  unused  keypad  key  combinations  now
     enable  you  to  display  process-specific source and instruction
     displays:  GOLD-KP9, BLUE-KP9, BLUE-KP7, BLUE-KP3, BLUE-KP1.

     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 SHOW KEY command.

     Use the key definitions that manipulate process-specific displays
     only with multiprocess programs.


     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.

Abort After Spawn

     If you use the SPAWN command either from DCL level or from within
     a  debugging  session,  the  debugger's  abort  key  (CTRL/C,  by
     default) is disabled after you log out or return from the spawned
     subprocess.

     The only way to re-enable the abort key or button is to  log  out
     and log back in.

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
          <CTRL/Z>

          Exit
          $ DEFINE/USER DBG$INPUT DEBUG_COMMANDS.TMP
          $ RUN PROG2
          $ DELETE DEBUG_COMMANDS.TMP;0
          $ SHOW SYSTEM
          $ LOGOUT

     Another workaround is to  establish  a  single-process  debugging
     configuration.  See the Release_Notes V5.2 Single_Process topic.

System Management

     In previous 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), to accommodate the debugging of multiprocess
     programs.

     Note the following changes affecting system management:

      o  For a program that runs in one process, a  debugging  session
         now requires two processes instead of one.

      o  For a mutiprocess program, a debugging  session  requires  as
         many processes as are used by the program, plus an additional
         process for the main debugger.

     Under these conditions, having several users  debugging  programs
     can place a load on a system.  The additional topics describe the
     resources used by the debugger so that you can tune  your  system
     for this activity.

     Note that the discussion covers only the resources  used  by  the
     debugger.   In  the case of multiprocess programs, the system may
     need to be tuned to support the programs themselves.

Additional information available:

User QuotasSystem Resources

User Quotas
     Each user  needs  a  PRCLM  quota  sufficient  to  create  an
     additional  subprocess for the debugger, beyond the number of
     processes needed by the 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 an 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 BYTLM and FILLM quotas
         sufficient to open each image file  being  debugged,  the
         corresponding  source  files,  and  the  debugger  input,
         output,  and  log  files.   The  debugger   command   SET
         MAX_SOURCE_FILES  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  global-  page and global-section parameters (GBLPAGES
     and GBLSECTIONS, respectively) may need to be increased.  For
     example,   if   there   are   10  users  using  the  debugger
     simultaneously, 10 global  sections  using  a  total  of  650
     global pages are required by the debugger.

REPEAT

     The REPEAT command provides a way  of  iterating  a  sequence  of
     debugger commands.

 Format:

     REPEAT lang-exp DO (debug-cmd-list)

 Example

     DBG> REPEAT 3 DO (STEP)
     stepped to %LINE 2
     stepped to %LINE 3
     stepped to %LINE 4

Additional information available:

Parameters

Parameters

 lang-exp

     Any expression in the currently set language that evaluates to  a
     positive integer.

 debug-cmd-list

     A single debugger command or  a  sequence  of  debugger  commands
     separated by semicolons.

SAVE

     Saves the contents of an existing screen display in a new  screen
     display.   This command thus permits a "snapshot" of a display to
     be saved for later reference.  The new display  is  created  with
     the  same  textual  contents  as  the  existing display.  It also
     inherits all other attributes of the existing display except that
     it  is  removed  from  the  screen  and it is never automatically
     updated.  The saved display can later be displayed on the  screen
     with the DISPLAY command.

 Format:

     SAVE [/qualifier] old-disp AS new-disp [,old-disp AS new-disp...]

 Example:

     DBG> SAVE SRC AS SAVESRC ! Save away source display
     DBG> STEP;STEP;STEP      ! Step to another place
     DBG> DISPLAY SAVESRC     ! Bring back saved source display

Additional information available:

ParametersQualifiers

Parameters

 old-disp

     The name of the screen display whose contents is to be saved.

 new-disp

     The name of the  new  screen  display  to  be  created  with  the
     contents of the old-disp display.

Qualifiers

Additional information available:

/SUFFIX

/SUFFIX[=process-identifier-type]

     Note:   This  qualifier  applies  to  a  multiprocess   debugging
     configuration (when DBG$PROCESS has the value MULTIPROCESS).  Use
     this qualifier only directly after a display name.

     Appends a process-identifying suffix  to  a  display  name.   The
     suffix  denotes  the  visible  process.   This  qualifier is used
     primarily  in  command   procedures   when   specifying   display
     definitions   or  key  definitions  that  are  bound  to  display
     definitions.  Use any of  the  following  process-identifier-type
     keywords:

        PROCESS_NAME     The display-name suffix is the VMS process name.

        PROCESS_NUMBER   The display-name suffix is the process number
                         (as shown in a SHOW PROCESS display).

        PROCESS_PID      The display-name suffix is the VMS process
                         identification number (PID).

     If  you  specify  /SUFFIX  without  a  process-identifier-   type
     keyword,  the  process  identifier type used for the display-name
     suffix is, by default, the same  as  that  used  for  the  prompt
     suffix (see SET PROMPT/SUFFIX).

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

SCROLL

     Scrolls a display's screen window in a specified  direction  over
     the  text of the display.  This makes additional display contents
     visible.  Unless the display to be scrolled is explicitly  named,
     the current scrolling display, as selected with a previous SELECT
     command, is scrolled.

     Note the use of keypad keys KP8, KP2, KP4 and KP6 for  scrolling.
     Also note that you can use keypad key KP3 to rotate the scrolling
     attribute around the various displays.

 Format:

     SCROLL/qualifier [disp-name]

 Examples:

     DBG> SCROLL/UP       ! Scroll up "--scroll--" display
     DBG> SCROLL/UP OUT   ! Scroll up OUT display
     DBG> SCROLL/UP:1 OUT ! Scroll up OUT display by only 1 line

Additional information available:

ParametersQualifiers

Parameters

 disp-name

     The name of the screen display to be scrolled.  If  disp-name  is
     omitted, the current scrolling display, as selected by the SELECT
     command, is scrolled.

Qualifiers

Additional information available:

/BOTTOM/DOWN/LEFT/RIGHT/SUFFIX/UP/TOP

/BOTTOM

     Scroll down to the bottom of the display's text.

/DOWN[:n]

     Scroll down through the display text by n lines  to  reveal  text
     further  down  in  the  display.  If n is omitted, the display is
     scrolled by approximately 3/4 of its window height.

/LEFT[:n]

     Scroll left over the display text by n  columns  to  reveal  text
     beyond  the  left margin.  You cannot scroll past column 1.  If n
     is omitted, the display is scrolled left by 8 columns.

/RIGHT[:n]

     Scroll right over the display text by n columns  to  reveal  text
     beyond  the right margin.  You cannot scroll past column 132.  If
     n is omitted, the display is scrolled right by 8 columns.

/SUFFIX[=process-identifier-type]

     Note:   This  qualifier  applies  to  a  multiprocess   debugging
     configuration (when DBG$PROCESS has the value MULTIPROCESS).  Use
     this qualifier only directly after a display name.

     Appends a process-identifying suffix  to  a  display  name.   The
     suffix  denotes  the  visible  process.   This  qualifier is used
     primarily  in  command   procedures   when   specifying   display
     definitions   or  key  definitions  that  are  bound  to  display
     definitions.  Use any of  the  following  process-identifier-type
     keywords:

        PROCESS_NAME     The display-name suffix is the VMS process name.

        PROCESS_NUMBER   The display-name suffix is the process number
                         (as shown in a SHOW PROCESS display).

        PROCESS_PID      The display-name suffix is the VMS process
                         identification number (PID).

     If  you  specify  /SUFFIX  without  a  process-identifier-   type
     keyword,  the  process  identifier type used for the display-name
     suffix is, by default, the same  as  that  used  for  the  prompt
     suffix (see SET PROMPT/SUFFIX).

/UP[:n]

     Scroll up through the display text by  n  lines  to  reveal  text
     further  up  in  the  display.   If  n is omitted, the display is
     scrolled by approximately 3/4 of its window height.

/TOP

     Scroll up to the top of the display's text.

SEARCH

     Directs the debugger to search the source code for the  specified
     string  and  to  display  the  source line or lines containing an
     occurrence of the string.

     The range parameter designates a program region to be searched.

     The string parameter specifies the  source  code  characters  for
     which  to  search.  If the string parameter is not specified, the
     debugger uses the last specified  search  string,  that  is,  the
     string parameter specified in the last SEARCH command.

 Format:

     SEARCH[/qualifier[/qualifier]] range string

Additional information available:

ExamplesParametersQualifiers

Examples

     To see the first occurence of string "XYZ" in module M:

     DBG> SEARCH M XYZ
     module M
     10:        XYZ := 3

     To see the next occurence of string XYZ in module M:

     DBG> SEARCH
     module M
     13:     XYZ := XYZ + 1

     To see all occurences of string "XYZ" in module M:

     DBG> SEARCH/ALL M XYZ
     module M
     10:        XYZ := 3
     13:     XYZ := XYZ + 1

Parameters

 range

     Limits the debugger's search for occurrences  of  the  string  to
     specified program regions.  These program regions may be given in
     any of the specified formats (see range-format for more detail).

 string

     Specifies the string in the source code for which to search.  The
     string  parameter  may  be  enclosed in quotation marks (") or in
     apostrophes ('), or may be specified without delimiters.  If  the
     string  is delimited by either quotation marks or apostrophes, it
     may contain spaces and tabs,  as  well  as  any  alphanumeric  or
     special characters.

Additional information available:

range-format

range-format

    o   MODNAME indicates a search of the specified module  from  line
        number 0 to the end of the module

    o   MODNAME\LINE-NUM indicates a search of  the  specified  module
        from the specified line number to the end of the module

    o   MODNAME\LINE-NUM:LINE-NUM indicates a search of the  specified
        module  beginning  at the line number specified to the left of
        the colon and ending at the line number specified to the right
        of the colon

    o   LINE-NUM indicates a search of the module  designated  by  the
        current  scope  setting  from the specified line number to the
        end of the module

    o   LINE-NUM:LINE-NUM indicates a search of the module  designated
        by  the  current  scope  setting  beginning at the line number
        specified  to  the  left  of  the  colon  and  ending  at  the
        line-number to the right of the colon

    o   NULL (that is, no entry) indicates a search of the same module
        as  that  from which a source line was most recently displayed
        (as a result of either a TYPE or an  EXAMINE/SOURCE  command),
        beginning  at  the first line following the line most recently
        displayed and continuing to the end of the module

Qualifiers

Additional information available:

/ALL/IDENTIFIER/NEXT/STRING

/ALL

     Specifies that the debugger search for  all  occurrences  of  the
     string  in  the specified range and display every line containing
     an occurrence of the string.

/IDENTIFIER

     Specifies that the debugger  search  for  an  occurrence  of  the
     string  in  the specified range but display the string only if it
     is bounded on either side by a character that cannot be  part  of
     an identifier in the current language.

/NEXT

     Specifies that the debugger search for the  first  occurrence  of
     the  string  in  the  specified  range  and only display the line
     containing this occurrence.  This is the default.

/STRING

     Specifies that the debugger search for and display the string  as
     specified,   and   not   interpret  the  context  surrounding  an
     occurrence of the string, as it does in the case of  /IDENTIFIER.
     This is the default.

SELECT

     Causes  a  screen  display  to  be  selected  with  a   specified
     attribute.   For  example,  SELECT/SCROLL  OUT  selects  the  OUT
     display with the "scroll" attribute (attributes are indicated  on
     the  top  border  of  the display).  The "scroll" attribute means
     that the keypad keys KP2, KP4, KP6, and KP8, scroll,  expand,  or
     move that display.

     Other attributes include:

     error - error messages are directed to that display
     input - input lines are echoed in the display
     output - debugger output is written to that display
     program - your program's output goes to the display
     instruction - EXAM/INST centers the display
     source - TYPE or EXAM/SOURCE centers the display

 Format:

     SELECT [/qualifier...] [disp-name]

     You un-select an attribute from a display by omitting the display
     name,  for  example, "SELECT/INPUT" to remove the input attribute
     from whatever display it is on.

Additional information available:

ExamplesParametersQualifiers

Examples

     ! Select OUT as the input and error display as well as being
     ! the output display. This causes debugger input, output, and
     ! error messages to be intermixed in the scrollable display OUT.
     !
     DBG> SELECT/INPUT/ERROR OUT

     ! Select SRC2 as the current source and scrolling display.
     !
     DBG> SELECT/SOURCE/SCROLL SRC2

     ! Remove the source attribute from any display.  TYPE commands
     ! then just go to the OUT display.
     !
     DBG> SELECT/SOURCE

Parameters

 disp-name

     The name of the screen display to be selected.  If this  name  is
     omitted, the current select setting is cancelled.

Qualifiers

Additional information available:

/ERROR/INPUT/INSTRUCTION/OUTPUT/PROGRAM/SCROLL
/SOURCE/SUFFIX

/ERROR

     Select the specified screen display as the current error display.
     This  means  that  debugger  error  messages are directed to that
     display.  By default, debugger error messages go  to  the  PROMPT
     display,  which  is not scrollable.  If you do "SELECT/ERROR OUT"
     then the  error  messages  go  to  the  scrollable  display  OUT.
     SELECT/ERROR  with  no display name puts the error attribute back
     on the PROMPT display, which is the default.  Hence, SELECT/ERROR
     PROMPT and SELECT/ERROR are equivalent.

/INPUT

     Select the specified screen display as the current input display.
     This  means that debugger input lines are echoed in that display.
     Note that you  are  always  prompted  for  input  in  the  PROMPT
     display; selecting another display with the input attribute means
     that your input lines are also echoed in that other display.

     By default, no display is selected with  the  "input"  attribute.
     If  you enter the comand "SELECT/INPUT OUT" then your input lines
     are echoed in the scrollable OUT display.  That  is,  your  input
     and  debugger output are intermixed in that display.  Some people
     prefer this so that they can see what input line caused what line
     of debugger output.

/INSTRUCTION

     Select the specified screen display as  the  current  instruction
     display.   This  means  that  output  of  an  EXAMINE/INSTRUCTION
     command goes to the specified  display.   The  specified  display
     must be an instruction display in this case.

/OUTPUT

     Select  the  specified  screen  display  as  the  current  output
     display.   This means that all normal debugger output is directed
     to that display.  The specified  display  may  not  be  a  source
     display  or  an  instruction display in this case.  SELECT/OUTPUT
     with no display name puts the  output  attribute  on  the  PROMPT
     display.   Hence,  SELECT/OUTPUT  PROMPT  and  SELECT/OUTPUT  are
     equivalent.

/PROGRAM

     By default, your program's I/O is directed to the PROMPT display.
     This is done by setting the scrolling region to that display just
     before the debugger returns control to your program.   Currently,
     SELECT/PROGRAM  is  very restricted:  you cannot give the PROGRAM
     attribute to any display other than PROMPT.  You  can  enter  the
     command SELECT/PROGRAM which removes the "program" attribute from
     the PROMPT display.  Then the debugger takes no special action to
     redirect  your  program's  I/O  (which  may  be desirable if your
     program does no I/O or if you  have  explicitly  redirected  your
     program's  I/O  to another terminal).  SELECT/PROGRAM PROMPT puts
     the "program" attribute back on the PROMPT display.

     Note - on VAXstations, the  debugger  comes  up  in  a  different
     window  from  your program, so there is no need to direct program
     I/O to the PROMPT display in  this  environment.   Therefore  the
     default  for  VAXstations  is  for  the "program" attribute to be
     un-selected.

/SCROLL

     Select the specified screen  display  as  the  current  scrolling
     display.   This  means that the SCROLL command by default scrolls
     this display unless a different display is explicitly  specified.
     The  commands  EXPAND  and  MOVE  also manipulate this display by
     default.  Note, although the PROMPT display may  be  selected  as
     the  current  scrolling  display,  the  PROMPT display may not be
     scrolled.  It may however be moved and expanded.  (See HELP  MOVE
     and HELP EXPAND for more information).

/SOURCE

     Select  the  specified  screen  display  as  the  current  source
     display.   This  means  that  the  output of all TYPE and EXAMINE
     /SOURCE commands go to  the  specified  display.   The  specified
     display must be a source display in this case.

/SUFFIX[=process-identifier-type]

     Note:   This  qualifier  applies  to  a  multiprocess   debugging
     configuration (when DBG$PROCESS has the value MULTIPROCESS).  Use
     this qualifier only directly after a display name.

     Appends a process-identifying suffix  to  a  display  name.   The
     suffix  denotes  the  visible  process.   This  qualifier is used
     primarily  in  command   procedures   when   specifying   display
     definitions   or  key  definitions  that  are  bound  to  display
     definitions.  Use any of  the  following  process-identifier-type
     keywords:

        PROCESS_NAME     The display-name suffix is the VMS process name.

        PROCESS_NUMBER   The display-name suffix is the process number
                         (as shown in a SHOW PROCESS display).

        PROCESS_PID      The display-name suffix is the VMS process
                         identification number (PID).

     If  you  specify  /SUFFIX  without  a  process-identifier-   type
     keyword,  the  process  identifier type used for the display-name
     suffix is, by default, the same  as  that  used  for  the  prompt
     suffix (see SET PROMPT/SUFFIX).

SET

     The meaning of the command depends on the keyword specified.  For
     example,  SET BREAK establishes breakpoints, SET MODULE loads the
     symbol table for a module, and so on.  See the  help  under  each
     keyword.

 Format:

     SET keyword [/qualifier] parameter

Additional information available:

ABORT_KEYATSIGNBREAKDEFINEDISPLAYEDITOR
EVENT_FACILITYIMAGEKEYLANGUAGELOGMARGINS
MAX_SOURCE_FILESMODEMODULEOUTPUTPROCESSPROMPT
RADIXSCOPESEARCHSOURCESTEPTASKTERMINAL
TRACETYPEWATCHWINDOW

Parameters

Parameters

 keyword

     Keyword can be ABORT_KEY, ATSIGN, BREAK, DEFINE, DISPLAY, EDITOR,
     EVENT_FACILITY,    IMAGE,    KEY,    LANGUAGE,    LOG,   MARGINS,
     MAX_SOURCE_FILES, MODE, MODULE, OUTPUT, PROCESS,  PROMPT,  RADIX,
     SCOPE,  SEARCH, SOURCE, STEP, TASK, TERMINAL, TRACE, TYPE, WATCH,
     or WINDOW.

 qualifiers

     Depends on the keyword specified.

 parameters

     Depends on the keyword specified.

ABORT_KEY

     By default, the CTRL/C sequence, when entered within a  debugging
     session,   aborts   the  execution  of  a  debugger  command  and
     interrupts program execution.  The SET ABORT_KEY command  enables
     you  to  assign  the abort function to another CTRL-key sequence.
     This may be necessary if your program has a  CTRL/C  AST  service
     routine enabled.

     Note that many CTRL-key sequences have VMS predefined  functions,
     and  the  SET  ABORT_KEY  command  enables  you  to override such
     definitions (see the VMS  DCL  Concepts  Manual).   Some  of  the
     CTRL-key  characters  not used by the VMS operating system are G,
     K, N, and P.

     The SHOW  ABORT_KEY  command  identifies  the  CTRL-key  sequence
     currently in effect for the abort function.

     Do not use CTRL/Y from within a debugging  session.   Always  use
     either CTRL/C or an equivalent CTRL-key sequence established with
     the SET ABORT_KEY command.

 Format:

     SET ABORT_KEY = CTRL_character

Additional information available:

ExampleParameter

Example

     DBG> SHOW ABORT_KEY
     Abort Command Key is CTRL_C
     DBG> GO
        ...
     <CTRL/C>

     %DEBUG-W-ABORTED, command aborted by user request
     DBG> EXAMINE/BYTE 1000:101000  !should have typed 1000:1010
     1000: 0
     1004: 0
     1008: 0
     1012: 0
     1016: 0
     <CTRL/C>

     %DEBUG-W-ABORTED, command aborted by user request
     DBG> SET ABORT_KEY = CTRL_P
     DBG> GO
        ...
     <CTRL/P>
     %DEBUG-W-ABORTED, command aborted by user request
     DBG> EXAMINE/BYTE 1000:101000  !should have typed 1000:1010
     1000: 0
     1004: 0
     1008: 0
     1012: 0
     1016: 0
     <CTRL/P>

     %DEBUG-W-ABORTED, command aborted by user request
     DBG>

     This sequence of commands shows the following:

     1.  Use of the (default) CTRL/C sequence  to  perform  the  abort
         function.

     2.  Use of the  SET  ABORT_KEY  command  to  reassign  the  abort
         function to the CTRL/P sequence.


Parameter

 character

     Specifies the key you press while holding down the CTRL key.  You
     can specify any alphabetic character.

ATSIGN

     Establishes  the  default  file  specification   for   processing
     debugger  command  procedures.   This  is useful if you wish (for
     example) to  change  the  file  type  of  your  debugger  command
     procedures  from  .COM  to .DBG.  Or if you have several debugger
     command procedures, you can  place  them  in  one  directory  and
     specify this directory as the default file specification.

 Format:

      SET ATSIGN file-spec

 Example:

      DBG> SET ATSIGN MYDISK:[MYDIR.DEBUG].DBG
      DBG> @MYFILE

     The file MYDISK:[MYDIR.DEBUG]MYFILE.DBG is executed as a  command
     procedure.

BREAK

     Establishes a breakpoint at the location denoted  by  an  address
     expression,  at  instructions  of  a  particular class, or at the
     occurrence of specified events.

 Format:

       SET BREAK [/qualifiers]
          [address-expression[,...]]
          [ WHEN (conditional-expression)]
          [ DO   (command[;...])]

     When a breakpoint is triggered, the debugger takes the  following
     action:

     1.  Suspends program execution at the breakpoint location.

     2.  If /AFTER was specified when the breakpoint was  set,  checks
         the  AFTER  count.  If the specified number of counts has not
         been reached, execution is resumed and the debugger does  not
         perform the remaining steps.

     3.  Evaluates the  expression  in  a  WHEN  clause,  if  one  was
         specified  when  the breakpoint was set.  If the value of the
         expression is FALSE, execution is resumed  and  the  debugger
         does not perform the remaining steps.

     4.  Reports that execution has reached the breakpoint location by
         issuing a "break ..." message, unless /SILENT was specified.

     5.  Displays  the  line  of  source  code  where   execution   is
         suspended, unless /NOSOURCE or /SILENT was specified when the
         breakpoint  was  set,  or  SET  STEP  NOSOURCE  was   entered
         previously.

     6.  Executes the commands in a DO clause, if  one  was  specified
         when  the breakpoint was set.  If the DO clause contains a GO
         command,  execution  continues  and  the  debugger  does  not
         perform the next step.

     7.  Issues the prompt.


     You set a breakpoint at a particular location in your program  by
     specifying an address expression with the SET BREAK command.  You
     set  a  breakpoint  on  consecutive  source  lines,  classes   of
     instructions,  or  events  by specifying a qualifier with the SET
     BREAK command.  Generally, you must  specify  either  an  address
     expression  or  a qualifier, but not both.  The only exception is
     with the /EVENT qualifier, which requires  that  you  specify  an
     event  name  keyword  and  permits you also to specify an address
     expression for certain event names.

     If you set a  breakpoint  at  a  location  currently  used  as  a
     tracepoint,   the   tracepoint   is  canceled  in  favor  of  the
     breakpoint, and vice versa.

     Breakpoints may be user  defined  or  predefined.   User  defined
     breakpoints  are those that you set explicitly with the SET BREAK
     command.  Predefined breakpoints, which depend  on  the  type  of
     program you are debugging (for example, Ada or multiprocess), are
     established automatically when you invoke the debugger.  Use  the
     SHOW BREAK command to identify all breakpoints that are currently
     set.  Any predefined breakpoints are identified as such.

     User defined and predefined  breakpoints  are  set  and  canceled
     independently.   For example, a location or event may have both a
     user defined and a predefined  breakpoint.   Canceling  the  user
     defined breakpoint does not affect the predefined breakpoint, and
     conversely.

Additional information available:

ExamplesParametersQualifiers

Examples

     1   DBG> SET BREAK SWAP\%LINE 12

     This command causes the debugger to break on line  12  of  module
     SWAP.

     2   DBG> SET BREAK/AFTER:3 SUB2

     This command causes the  debugger  to  break  on  the  third  and
     subsequent times that SUB2 (a routine) is executed.

     3   DBG> SET BREAK/NOSOURCE LOOP1 DO (EXAMINE D; STEP; EXAMINE Y; GO)

     This command causes the debugger to break at location LOOP1.   At
     the  breakpoint,  the following commands are issued, in the order
     given:  EXAMINE D,  STEP,  EXAMINE  Y,  and  GO.   The  /NOSOURCE
     qualifier   suppresses   the   display  of  source  code  at  the
     breakpoint.

     4   DBG> SET BREAK ROUT3 WHEN (X > 4) DO (EXAMINE Y)

     This command causes the debugger to break on routine ROUT3 when X
     is  greater  than 4.  At the breakpoint, the command EXAMINE Y is
     issued.

     5   DBG> SET BREAK/TEMPORARY 1440
         DBG> SHOW BREAK
         breakpoint at 1440 [temporary]
         DBG>

     This command sets a temporary breakpoint at location 1440.  After
     that breakpoint is triggered, it disappears.

     6   DBG> SET BREAK/LINE

     This command causes the debugger to break on the start  of  every
     source line encountered during program execution.

     7   DBG> SET BREAK/LINE WHEN (X .NE. 0)
         DBG> SET BREAK/INSTRUCTION WHEN (X .NE. 0)

     These two commands cause the debugger to  break  when  X  is  not
     equal  to  0.   The  first command tests for the condition at the
     start of every source line  encountered  during  execution.   The
     second command tests for the condition at each instruction.

     8   DBG> SET BREAK/INSTRUCTION=ADDL3

     This  command  causes  the  debugger  to   break   whenever   the
     instruction ADDL3 is about to be executed.

     9   DBG> SET BREAK/LINE/INTO/NOSHARE/NOSYSTEM

     This command causes the debugger to break on the start  of  every
     source  line,  including lines in called routines (/INTO) but not
     in  shareable  image  routines  (/NOSHARE)  or  system   routines
     (/NOSYSTEM).

     10  DBG> SET BREAK/RETURN ROUT4

     This command causes  the  debugger  to  break  whenever  the  RET
     instruction of routine ROUT4 is about to be executed.

     11  DBG> SET BREAK/RETURN %LINE 14

     This command causes  the  debugger  to  break  whenever  the  RET
     instruction  of  the routine that includes line 14 is about to be
     executed.  This form of the command is  useful  if  execution  is
     currently  suspended  within  a  routine  and  you  want to set a
     breakpoint on that routine's RET instruction.

     12  DBG> SET BREAK/EXCEPTION DO (SET MODULE/CALLS; SHOW CALLS)

     This command causes the debugger to break whenever  an  exception
     is  signaled.   At  the breakpoint, the commands SET MODULE/CALLS
     and SHOW CALLS are issued.

     13  DBG> SET BREAK/EVENT=RUN RESERVE, %TASK 3

     This command sets two breakpoints, which are associated with  the
     Ada  tasks  RESERVE and task 3, respectively.  Each breakpoint is
     triggered whenever its associated task makes a transition to  the
     RUN state.

     14  DBG_1> SET BREAK/ACTIVATING

     This command causes the debugger to break whenever a process of a
     multiprocess program is brought under debugger control.

Parameters

 address-expression

     Specifies an address expression (a program location) at  which  a
     breakpoint  is  to  be  set.  With high- level languages, this is
     typically a line number, a routine name,  or  a  label,  and  may
     include  a  path  name  to  specify  the  entity  uniquely.  More
     generally, an address expression may also  be  a  virtual  memory
     address  or  a  register and may be composed of numbers (offsets)
     and symbols, as well as  one  or  more  operators,  operands,  or
     delimiters.

     Do not specify the asterisk asterisk wildcard character (*).   Do
     not  specify  an  address  expression  with /ACTIVATING, /BRANCH,
     /CALL, /EXCEPTION, /INSTRUCTION[=(opcode-list)], /INTO, /[NO]JSB,
     /LINE,  /OVER,  /[NO]SHARE,  /[NO]SYSTEM,  or  /TERMINATING.  The
     /MODIFY and /RETURN qualifiers are used with  specific  kinds  of
     address expressions.

     If you specify a virtual memory address or an address  expression
     whose  value  is not a symbolic location, check (with the EXAMINE
     command) that an instruction  actually  begins  at  the  byte  of
     memory  so  indicated.   If an instruction does not begin at this
     byte, a run- time error may occur when an  instruction  including
     that  byte  is executed.  When you set a breakpoint by specifying
     an address expression whose value is not a symbolic location, the
     debugger  does  not  verify that the location specified marks the
     beginning of an instruction.  CALLS and CALLG routines start with
     an entry mask.

 command

     Specifies a debugger command that is to be executed  as  part  of
     the DO clause when break action is taken.

 conditional-expression

     Specifies a conditional expression in the currently set  language
     that  is  to  be evaluated when execution reaches the breakpoint.
     If the expression is TRUE, break action occurs, and the  debugger
     reports  that  a break has occurred.  If the expression is FALSE,
     break action does not occur.  In  this  case,  a  report  is  not
     issued, the commands specified by the DO clause are not executed,
     and program execution is continued.

Qualifiers

     The qualifiers can be grouped as follows.

     The /LINE qualifier sets a breakpoint  on  each  line  of  source
     code.

     The  following  qualifiers  set   breakpoints   on   classes   of
     instructions.  Note that use of these qualifiers and of the /LINE
     qualifier causes the debugger to trace every instruction of  your
     program   as  it  executes  and  thus  significantly  slows  down
     execution:          /BRANCH,         /CALL,         /INSTRUCTION,
     /INSTRUCTION=(opcode-list), /RETURN.

     The following qualifiers set breakpoints on  classes  of  events:
     /ACTIVATING, /EVENT=event-name, /EXCEPTION, /TERMINATING.

     The following qualifiers affect what happens at a  routine  call:
     /INTO, /[NO]JSB, /OVER, /[NO]SHARE, /[NO]SYSTEM.

     The following qualifiers affect what output is displayed  when  a
     breakpoint is reached:  /[NO]SILENT, /[NO]SOURCE.

     The following  qualifiers  affect  the  timing  and  duration  of
     breakpoints:  /AFTER:n, /TEMPORARY.

     The /MODIFY qualifier is  used  to  monitor  changes  at  program
     locations (typically changes in the values of variables).

Additional information available:

/ACTIVATING/AFTER:n/BRANCH/CALL/EVENT/EXCEPTION
/INSTRUCTION/INSTRUCTION/INTO/JSB/LINE
/MODIFY/NOJSB/NOSHARE/NOSILENT/NOSOURCE/NOSYSTEM
/OVER/RETURN/SHARE/SILENT/SOURCE/SYSTEM/TEMPORARY
/TERMINATING

/ACTIVATING
     Note:   This  qualifier  applies  to  a  multiprocess   debugging
     configuration (when DBG$PROCESS has the value MULTIPROCESS).

     Causes the debugger to break  when  a  new  process  comes  under
     debugger  control.   The  debugger  prompt  is displayed when the
     first process comes under debugger control.  This enables you  to
     enter debugger commands before the program has started execution.
     Do not specify an address expression with /ACTIVATING.  See  also
     /TERMINATING.

/AFTER:n
     Specifies that break action not be taken until the nth  time  the
     designated  breakpoint  is  encountered (n is a decimal integer).
     Thereafter, the breakpoint occurs every time  it  is  encountered
     provided  that  conditions  in the WHEN clause (if specified) are
     TRUE.  The command SET BREAK/AFTER:1 has the same effect  as  the
     SET BREAK command.

/BRANCH
     Causes  the  debugger  to  break  on  every  branch   instruction
     encountered  during  execution (including BEQL, BGTR, BLEQ, BGEQ,
     BLSS, BGTRU, BLEQU, BVC, BVS, BGEQU, BLSSU, BRB, BRW,  JMP,  BBS,
     BBC,  BBSS,  BBCS,  BBSC,  BBCC,  BBSSI, BBCCI, BLBS, BLBC, ACBB,
     ACBW, ACBL, ACBF,  ACBD,  ACBG,  ACBH,  AOBLEQ,  AOBLSS,  SOBGEQ,
     SOBGTR,   CASEB,  CASEW,  CASEL).   Do  not  specify  an  address
     expression with /BRANCH.  See also /INTO, /OVER.

/CALL
     Causes the debugger to break on every call instruction (including
     the  CALLS,  CALLG,  BSBW,  BSBB, JSB, RSB, and RET instructions)
     encountered  during  execution.   Do  not  specify   an   address
     expression with /CALL.  See also /INTO, /OVER.

/EVENT=event-name
     Note:  This qualifier applies only to Ada and SCAN.  See the  VAX
     Ada and VAX SCAN documentation for complete information.

     Causes the debugger to break on  the  specified  event  (if  that
     event  is  defined and detected by the run- time system).  If you
     specify an address expression with /EVENT, causes the debugger to
     break  whenever  the  specified  event  occurs  for  that address
     expression.  Event names depend on the  run-time  facility.   You
     can  display the event names associated with the current run-time
     facility by entering the SHOW EVENT_FACILITY command.  Note  that
     you  cannot  specify  an  address  expression  with certain event
     names.

/EXCEPTION
     Causes the debugger to break whenever an exception  is  signaled.
     The  break  action  occurs  before  any  user-  written exception
     handlers are invoked.  Do not specify an address expression  with
     /EXCEPTION.

     As a result of  a  SET  BREAK/EXCEPTION  command,  whenever  your
     program  generates  an exception condition, the debugger suspends
     program execution, reports the exception condition, and  displays
     its   prompt.   When  you  resume  execution  from  an  exception
     breakpoint, the behavior is as follows:

      o  If you enter a GO  command  without  an  address-  expression
         parameter,  the  exception  is resignalled, thus allowing any
         user-declared exception handler to execute.

      o  If you  enter  a  GO  command  with  an  address-  expression
         parameter,  program  execution  continues  at  the  specified
         location, thus inhibiting the execution of any  user-declared
         exception handler.

      o  If you enter a STEP command,  the  debugger  steps  into  any
         user-declared    exception   handler.    If   there   is   no
         user-declared  handler  for  that  exception,  the   debugger
         resignals the exception.

      o  If you  enter  a  CALL  command,  the  routine  specified  is
         executed.   If  a  routine  is  called  with the CALL command
         directly after an exception breakpoint has been triggered, no
         breakpoints,  tracepoints,  or  watchpoints  set  within that
         routine are triggered.  However, they are  triggered  if  the
         CALL command is given at another time.


/INSTRUCTION
     Causes the debugger to break on every instruction  executed.   Do
     not  specify  an  address expression with /INSTRUCTION.  See also
     /INTO, /OVER.

/INSTRUCTION=(opcode-list)
     Causes the debugger to break on every instruction whose opcode is
     in   the  list.   Do  not  specify  an  address  expression  with
     /INSTRUCTION.  See also /INTO, /OVER.

/INTO
     Applies  only   to   breakpoints   set   with   /BRANCH,   /CALL,
     /INSTRUCTION[=(opcode-list)],  or /LINE; that is, when an address
     expression is not explicitly specified.   When  used  with  those
     qualifiers,  causes the debugger to break at the specified points
     within called routines (as  well  as  within  the  routine  where
     execution is currently suspended).  /INTO is the default behavior
     and is the opposite of /OVER.

     When using /INTO, you can further qualify the break  action  with
     the /[NO]JSB, /[NO]SHARE, and /[NO]SYSTEM qualifiers.

/JSB
     Qualifies /INTO.  Use  /JSB  only  with  /INTO  and  one  of  the
     following          qualifiers:           /BRANCH,          /CALL,
     /INSTRUCTION[=(opcode-list)],  or  /LINE.    /JSB   permits   the
     debugger  to  break within routines that are called by the JSB or
     CALL instruction.  /JSB is the default for all  languages  except
     DIBOL.  Do not specify an address expression with /[NO]JSB.

/LINE
     Causes the debugger to break at the start of each new  line.   Do
     not  specify  an  address expression with /LINE.  See also /INTO,
     /OVER.

/MODIFY
     Causes a break at every instruction that writes to  and  modifies
     the  value  of  the location indicated by the address expression.
     The address expression is typically a variable name.

     The SET BREAK/MODIFY  command  acts  exactly  like  a  SET  WATCH
     command and operates under the same restrictions.

     If you specify an absolute address for  the  address  expression,
     the  debugger  may  not  be  able to associate the address with a
     particular data object.   In  this  case,  the  debugger  uses  a
     default  length of 4 bytes.  You can change this length, however,
     by setting the type to either WORD (SET TYPE WORD, which  changes
     the  default  length  to  2  bytes) or BYTE (SET TYPE BYTE, which
     changes the  default  length  to  1  byte).   SET  TYPE  LONGWORD
     restores the default length of 4 bytes.

/NOJSB
     Qualifies /INTO.  Use /NOJSB only  with  /INTO  and  one  of  the
     following          qualifiers:           /BRANCH,          /CALL,
     /INSTRUCTION[=(opcode-list)], or /LINE.

     /NOJSB specifies that breakpoints  not  be  set  within  routines
     called  by  JSB  instructions.   /NOJSB  is the default for DIBOL
     programs.  In DIBOL, user- written routines  are  called  by  the
     CALL  instruction  and DIBOL run-time library routines are called
     by the JSB instruction.  Do not  specify  an  address  expression
     with /NOJSB.

/NOSHARE
     Qualifies /INTO.  Use /NOSHARE only with /INTO  and  one  of  the
     following          qualifiers:           /BRANCH,          /CALL,
     /INSTRUCTION[=(opcode-list)], or /LINE.

     /NOSHARE specifies that breakpoints not be set  within  shareable
     images.  Do not specify an address expression with /[NO]SHARE.

/NOSILENT
     Specifies that the "break .  .  .  " message is displayed at  the
     breakpoint.  This is the default.

/NOSOURCE
     Specifies that the source line for the current  location  is  not
     displayed at the breakpoint.  See also SET STEP [NO]SOURCE.

/NOSYSTEM
     Qualifies /INTO.  Use /NOSYSTEM only with /INTO and  one  of  the
     following          qualifiers:           /BRANCH,          /CALL,
     /INSTRUCTION[=(opcode-list)], or /LINE.

     /NOSYSTEM specifies that breakpoints not  be  set  within  system
     routines  (P1  space).  Do not specify an address expression with
     /SYSTEM.

/OVER
     Applies  only   to   breakpoints   set   with   /BRANCH,   /CALL,
     /INSTRUCTION[=(opcode-list)],  or /LINE; that is, when an address
     expression is not explicitly specified.   When  used  with  those
     qualifiers,  causes the debugger to break at the specified points
     only within the routine where execution  is  currently  suspended
     (not  within  called  routines).   /OVER is the opposite of /INTO
     (the default behavior).

/RETURN
     Causes the debugger to break on the RET (return)  instruction  of
     the  routine  associated  with  the  specified address expression
     (which may be a routine name, line  number,  and  so  on).   This
     qualifier  can only be applied to routines called with a CALLS or
     CALLG instruction; it cannot be used with JSB routines.  Breaking
     on   the  RET  instruction  enables  you  to  inspect  the  local
     environment (for example, obtain the values of  local  variables)
     before  the RET instruction deletes the routine's call frame from
     the call stack.

     For  this  qualifier,  the  address-expression  parameter  is  an
     instruction  address  within  a  CALLS  or CALLG routine.  It may
     simply be a routine name, in which case it specifies the  routine
     start address.  However, you can also specify another location in
     a routine, so you can see only those returns that are taken after
     a certain code path is followed.

     A SET BREAK/RETURN command cancels a previous SET  BREAK  command
     if the same address expresion is specified.

/SHARE
     Qualifies /INTO.  Use /SHARE only  with  /INTO  and  one  of  the
     following          qualifiers:           /BRANCH,          /CALL,
     /INSTRUCTION[=(opcode-list)], or /LINE.

     /SHARE (default) permits the debugger to break  within  shareable
     image  routines  as  well  as  other routines.  Do not specify an
     address expression with /[NO]SHARE.

/SILENT
     Specifies that the "break .  .  .  " message and the source  line
     for  the  current  location  are not displayed at the breakpoint.
     /SILENT overrides /SOURCE.  See also SET STEP [NO]SOURCE.

/SOURCE
     Specifies that the  source  line  for  the  current  location  is
     displayed  at  the  breakpoint.   This  is  the default.  /SILENT
     overrides /SOURCE.  See also SET STEP [NO]SOURCE.

/SYSTEM
     Qualifies /INTO.  Use /SYSTEM only with  /INTO  and  one  of  the
     following          qualifiers:           /BRANCH,          /CALL,
     /INSTRUCTION[=(opcode-list)], or /LINE.

     /SYSTEM (default) permits the debugger  to  break  within  system
     routines (P1 space) as well as other routines.  Do not specify an
     address expression with /SYSTEM.

/TEMPORARY
     Causes the breakpoint to disappear after  it  is  triggered  (the
     breakpoint does not remain permanently set).

/TERMINATING
     Causes the debugger to break when a  process  performs  an  image
     exit.   Note  that the debugger always gains control and displays
     its  prompt  when  the  last  image  of   a   single-process   or
     multiprocess  program  exits.   A  process is terminated when the
     image has executed the $EXIT system service and all of  its  exit
     handlers  have  executed.   Do  not specify an address expression
     with /TERMINATING.  See also /ACTIVATING.

DEFINE

     Specifies how to interpret DEFINE commands.  The  DEFINE  command
     can bind a symbol to either an address, a command string, a group
     of process names, or a value.

     Example:

     DBG> SET DEFINE COMMAND
     DBG> DEFINE B = "SET BREAK"
     DBG> DEFINE M = "SET MODULE"

Additional information available:

ADDRESSCOMMANDPROCESS_GROUPVALUE

Parameters

Parameters

 ADDRESS
     Treat subsequent DEFINE commands as DEFINE/ADDRESS.
 COMMAND
     Treat subsequent DEFINE commands as DEFINE/COMMAND.
 PROCESS_GROUP
     Treat subsequent DEFINE commands as DEFINE/PROCESS_GROUP
 VALUE
     Treat subsequent DEFINE commands as DEFINE/VALUE.

ADDRESS

     Treat subsequent DEFINE commands as DEFINE/ADDRESS.

COMMAND

     Treat subsequent DEFINE commands as DEFINE/COMMAND.

PROCESS_GROUP

     Treat subsequent DEFINE commands as DEFINE/PROCESS_GROUP

VALUE

     Treat subsequent DEFINE commands as DEFINE/VALUE.

DISPLAY

     Creates a screen display to be shown on the terminal  screen.   A
     screen  display is a set of text lines that can be viewed through
     a window on the terminal screen.  The SET DISPLAY command defines
     such  a display, sets its maximum size in text lines, defines its
     screen position, and establishes its display kind.  Once set, the
     display may be selected to have certain attributes such as output
     or scrolling by the SELECT command.

 Format:
      SET DISPLAY [/qualifier...] [disp-name [AT wspec] [dkind]
                                [, disp-name [AT wspec] [dkind]...]]

Additional information available:

ExamplesParametersQualifiers

Examples

     1   DBG> SET DISPLAY DISP2 AT RS45
         DBG> SELECT/OUTPUT DISP2

     In this example, the SET DISPLAY command creates  a  new  display
     named  DISP2  essentially at the right bottom half of the screen,
     above the PROMPT display, which is located at  S6.   This  is  an
     output  display  by  default.   The  SELECT/OUTPUT  command  then
     selects DISP2 as the current output display.

     2   DBG> SET WINDOW TOP AT (1,8,45,30)
         DBG> SET DISPLAY NEWINST AT TOP INSTRUCTION
         DBG> SELECT/INST NEWINST

     In this example, the SET WINDOW command creates  a  window  named
     TOP  starting  at  line 1 and column 45, and extending down for 8
     lines and to the right for 30 columns.  The SET  DISPLAY  command
     creates  an  instruction  display  named  NEWINST to be displayed
     through TOP.  The SELECT/INST  command  selects  NEWINST  as  the
     current instruction display.

     3   DBG> SET DISPLAY CALLS AT Q3 DO (SHOW CALLS)

     This command creates a DO display named CALLS at window Q3.  Each
     time  the debugger gains control from the program, the SHOW CALLS
     command is executed and the output is displayed in display CALLS,
     replacing any previous contents.

     4   DBG> SET DISPLAY/MARK EXAM AT Q2 DO (EXAM A,B,C)

     This command creates a DO display named EXAM at window  Q2.   The
     display  shows  the  current  values  of  variables  A,  B, and C
     whenever the debugger prompts for input.  Any changed values  are
     highlighted.

     5   DBG_2> SET DISPLAY/PROCESS OUT_/SUFFIX AT S45 OUTPUT

     This command creates  an  output  display  at  window  S45.   The
     /PROCESS qualifier, by default, makes the display specific to the
     visible process  (process  2,  in  this  example).   The  /SUFFIX
     qualifier  appends a process-identifying suffix, that denotes the
     visible process, to the  display  name  OUT_.   By  default,  the
     /SUFFIX qualifier appends the same process identifier suffix that
     appears on the prompt.   Therefore,  the  full  display  name  is
     OUT_2.

Parameters

 disp-name

     The name of the new display being defined.  If a  screen  display
     by  the  same  name  already exists, the previous display must be
     cancelled before the new one can be established.

 wspec

     The name of the screen window at which  this  display  is  to  be
     positioned.   This may also be a window specification of the form
     (start-line, line-count, start-column, column-count).   If  wspec
     is omitted, the display is positioned at window H1 or H2.

 dkind

     The display kind.  This can be  OUTPUT  for  an  output  display,
     SOURCE  for  a  source  display,  SOURCE(debug-cmd-list)  for  an
     automatically updated source display, DO(debug-cmd-list)  for  an
     automatically   updated   output   display,  INSTRUCTION  for  an
     instruction   display,   INSTRUCTION(debug-cmd-list)    for    an
     automatically  updated  instruction  display,  or REGISTER for an
     automatically  updated  register  display.   If  omitted,   dkind
     defaults to OUTPUT.

Qualifiers

Additional information available:

/DYNAMIC/HIDE/MARK_CHANGE/NODYNAMIC/NOPROCESS
/POP/PROCESS/PUSH/REMOVE/SIZE:n/SUFFIX

/DYNAMIC
     Specifies that the display is to automatically adjust its  window
     dimensions  proportionally  when  you change the screen height or
     width with a SET TERMINAL command.  This is the default  behavior
     for all displays.

/HIDE
     Hides the specified display under any other displays that  occupy
     the same region on the terminal screen.  This has the same effect
     as the /PUSH qualifier.

/MARK_CHANGE
     Specifies that any changed lines of a DO(debug-cmd-list)  display
     are  marked  each time the display is automatically updated.  The
     marking is done by highlighting each line of  the  display  which
     has  a  different  textual content this time compared to the last
     time the display was updated.  This qualifier is useful when  you
     want  changed variables in an automatically updated display to be
     highlighted on change.  This qualifier is not applicable to other
     kinds of displays.

/NODYNAMIC
     Specifies that the display is not  to  automatically  adjust  its
     window dimensions when you change the screen height or width with
     a SET TERMINAL command.

/NOPROCESS
     Note:   This  qualifier  applies  to  a  multiprocess   debugging
     configuration (when DBG$PROCESS has the value MULTIPROCESS).

     Causes the specified display to always  be  associated  with  the
     visible process, which may change during program execution.  This
     is the default behavior.

/POP
     Pops the specified display to the front  of  all  other  displays
     that  occupy the same region on the terminal screen.  This is the
     default action of the SET DISPLAY command.

/PROCESS[=(process-spec)]
     Note:   This  qualifier  applies  to  a  multiprocess   debugging
     configuration (when DBG$PROCESS has the value MULTIPROCESS).

     Causes the specified display to be process specific --  that  is,
     the  specified  display  is  associated  only  with  a particular
     process.   The  contents  of  a  process-specific   display   are
     generated  and  modified in the context of that process.  You can
     make any display process specific, except for the PROMPT display.

     /PROCESS=(process-spec)  causes  the  specified  display  to   be
     associated  with  the  specified  process.   You must include the
     parentheses.  Use any of the following process-spec forms:

     [%PROCESS_NAME] 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.
                                     Process numbers appear in a
                                     SHOW PROCESS display.

     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 (*)

     /PROCESS causes the specified display to be associated  with  the
     process  that  was  the  visible process when the DISPLAY/PROCESS
     command was executed.   If  you  do  not  specify  /PROCESS,  the
     current  process-  specific  behavior  (if  any) of the specified
     display remains unchanged.  See also /SUFFIX.

/PUSH
     Pushes the specified display under any other displays that occupy
     the same region on the terminal screen.  This has the same effect
     as the /HIDE qualifier.

/REMOVE
     Marks the specified display as being removed.  A removed  display
     does  not appear on the screen unless explicitly requested with a
     later DISPLAY command.  Although a removed display is not visible
     on the screen, the display and its contents are preserved.

/SIZE:n
     Sets the maximum size of the display in text lines to be n lines.
     If more than n lines are written to the display, the oldest lines
     are lost as new lines are added.  If this qualifier  is  omitted,
     the default size is 64 lines.

     For source displays, n gives the number of source lines to buffer
     at any one time.  This is not normally significant since a source
     display can always be scrolled over the entire source file.

/SUFFIX[=process-identifier-type]
     Note:   This  qualifier  applies  to  a  multiprocess   debugging
     configuration (when DBG$PROCESS has the value MULTIPROCESS).  Use
     this qualifier only directly after a display name.

     Appends a process-identifying suffix  to  a  display  name.   The
     suffix  denotes  the  visible  process.   This  qualifier is used
     primarily  in  command   procedures   when   specifying   display
     definitions   or  key  definitions  that  are  bound  to  display
     definitions.  Use any of  the  following  process-identifier-type
     keywords:

        PROCESS_NAME     The display-name suffix is the VMS process name.

        PROCESS_NUMBER   The display-name suffix is the process number
                         (as shown in a SHOW PROCESS display).

        PROCESS_PID      The display-name suffix is the VMS process
                         identification number (PID).

     If  you  specify  /SUFFIX  without  a  process-identifier-   type
     keyword,  the  process  identifier type used for the display-name
     suffix is, by default, the same  as  that  used  for  the  prompt
     suffix (see SET PROMPT/SUFFIX).

     See also /[NO]PROCESS.

EDITOR

     Establishes the editor that is invoked by the EDIT command.

 Format:

      SET EDITOR [{/CALLABLE_EDT |
                   /CALLABLE_LSEDIT |
                   /CALLABLE_TPU}]
                 [/[NO]START_POSITION]
                 [command_line]

     The qualifiers /CALLABLE_EDT, /CALLABLE_LSEDIT, and /CALLABLE_TPU
     cause  the  EDIT  command  to invoke the callable versions of the
     editor  chosen.   If  none  of  these  are  specified,  then  the
     command_line  is required, and it is SPAWNed to DCL when the EDIT
     command is used.

     For  /CALLABLE_LSEDIT   and   /CALLABLE_TPU,   the   command_line
     specified is passed to the callable editor as the command line to
     use.  If no command_line is specified, the default is "LSEDIT" or
     "TPU",  respectively.   The  command_line  parameter is currently
     ignored for /CALLABLE_EDT since those routines do not allow for a
     command line.

     The /START_POSITION qualifier on the SET EDITOR  command  defines
     whether  the /START_POSITION qualifier is appended to the command
     line before invoking the specific editor.  Currently only  LSEDIT
     (both SPAWNed and /CALLABLE_LSEDIT) support this qualifier.

     The  default  is  SPAWNed  LSEDIT,   with   the   /START_POSITION
     qualifier.  If the default were set by the SET EDITOR command, it
     would be:

         DBG> SET EDITOR/START_POSITION LSEDIT


 Example:

      DBG> SET EDITOR '@MAIL$EDIT ""'
      DBG> SET EDITOR/CALLABLE_EDT
      DBG> SET EDITOR/CALLABLE_TPU
      DBG> SET EDITOR/CALLABLE_TPU TPU/SECTION=MYSECINI.TPU$SECTION
      DBG> SET EDITOR/CALLABLE_LSEDIT/START_POSITION

     The  first  command  causes  EDIT  to  spawn  the  command   line
     '@MAIL$EDIT ""', which invokes the same editor used in MAIL.

     The second  command  causes  EDIT  to  invoke  CALLABLE_EDT.   No
     command line is allowed with CALLABLE_EDT.

     The third command causes EDIT to  invoke  CALLABLE_TPU  with  the
     default command line of "TPU".

     The fourth command causes EDIT to invoke  CALLABLE_TPU  with  the
     command line "TPU/SECTION=MYSECINI.TPU$SECTION".

     The last command causes EDIT to invoke CALLABLE_LSEDIT  with  the
     default  command  line  of  "LSEDIT".   Also, the /START_POSITION
     qualifier is appended to the command line, so  that  the  editing
     session  starts on the source line that the debugger is currently
     pointing to.

EVENT_FACILITY

     Selects a particular run time facility for the  debugger  to  use
     for the SET BREAK/EVENT and SET TRACE/EVENT commands.

     This allows the specified facility (the run  time  library  of  a
     language  or  other run time system) to define and detect certain
     types of events in the execution  of  your  program  which  would
     otherwise  be  very  difficult  (or  impossible) for you to set a
     breakpoint on.  These events are  treated  as  ordinary  debugger
     "eventpoints".   That  is,  you  can set a break or trace on them
     (using WHEN or DO clauses if desired), display them with the SHOW
     BREAK  or  SHOW  TRACE  commands, and remove them with the CANCEL
     BREAK   or   CANCEL   TRACE   commands.     (See    also    "SHOW
     EVENT_FACILITY").

 Format:

       SET EVENT_FACILITY facility_name

     Example:

     SET EVENT_FACILITY ADA

     Causes the debugger to use the Ada RTL as the event facility  for
     succeeding   "/EVENT"   commands.    The  Ada  language  includes
     multitasking.  The "EVENT_FACILITY" mechanism allows you  to  set
     breakpoints  on events such as task switching which you could not
     do otherwise.

IMAGE

     "SET IMAGE imagename" loads the symbol table  for  the  specified
     shareable   image,  and  sets  your  debugging  context  to  that
     shareable image.  Use the SHOW IMAGE command to find out what the
     shareable images in your program are.


     Format:

     SET IMAGE [/ALL] [image-name [,...]]

     For example, if you want to set a breakpoint in routine  SUBR  in
     module  SUBR  in shareable image SHARE1, then you could enter the
     commands:

     DBG> SET IMAGE SHARE1
     DBG> SET MODU SUBR
     DBG> SET BREAK SUBR

     The specified image should have been linked /DEBUG or /TRACE.  If
     the  image  was linked /NOTRACE then no symbol table is available
     for that image and you cannot SET IMAGE to it.

KEY

     This command changes the current key definition state.  Note that
     keys are defined by using the DEFINE/KEY command.

     Example:  To make DEFINE/KEY redefine the GOLD keys  by  default,
     do:

     DBG> SET KEY/STATE=GOLD


 Format:

     SET KEY [/qualifiers[,...]]


     Command Qualifiers         Defaults

     /[NO]LOG                   /LOG /[NO]STATE=state-name
     current state

Additional information available:

Qualifiers

Qualifiers

Additional information available:

/LOG/NOLOG/NOSTATE/STATE

/LOG
     Print an informational message indicating whether or not the  key
     state has been set.

/NOLOG
     Do not  print  the  informational  message  associated  with  the
     command.

/NOSTATE
     Do not change the current state

/STATE
     Set the state to state-name.

 Format:

     SET KEY/STATE=state-name

LANGUAGE

     Establishes the current language.  This affects what  expressions
     are   allowed   in  commands  that  accept  language  expressions
     (EXAMINE, EVALUATE, DEPOSIT, and so on).  This also  affects  the
     default radix setting.

     At debugger start-up, the debugger sets the current  language  to
     the  language in which the module containing the transfer address
     was written.  You can (and should) change this  language  by  the
     SET LANGUAGE command if you begin debugging a module written in a
     different source language.

 Format:

     SET LANGUAGE language-name

 Example:

     DBG> SET LANGUAGE ADA

Additional information available:

Parameters

Parameters

 language-name

     Specifies the name of the language.  Valid languages include  the
     following:   ADA,  BASIC, BLISS, C, COBOL, DIBOL, FORTRAN, MACRO,
     PASCAL, PLI, RPG, SCAN, and UNKNOWN.  (UNKNOWN gives  a  kind  of
     "generic"  language  support  and  is  intended to be used by any
     language not in the above list).

     Type "HELP Languages" for information on specific support.

LOG

     Specifies the name of the log file to which the  debugger  writes
     when  the output parameter is set to LOG.  Note that SET LOG only
     specifies the name of the file; you need to do SET OUTPUT LOG  to
     actually enable logging.  The default log file name is DEBUG.LOG.

 Format:

     SET LOG file-spec

 Example:

     DBG> SET LOG MARCH24.DBG
     DBG> SET OUTPUT LOG


Additional information available:

Parameters

Parameters

 file-spec

     The log file's file specification.

MARGINS

     Specifies the leftmost source-line character position at which to
     begin  display  of a line of source code (the left margin) and/or
     the rightmost source-line character  position  at  which  to  end
     display of a line of source code.

     The SET MARGINS command affects only  the  display  of  lines  of
     source code, that is, the display resulting from commands such as
     TYPE and EXAMINE/SOURCE.  The SET MARGINS command does not affect
     the  display  resulting from commands (such as EXAMINE, EVALUATE,
     SHOW MODE, and so on) that do not display source code.

 Format:

                    rm
     SET MARGINS lm:rm
                 lm:
                   :rm

 Example:
     DBG> SET MARGINS 10:70

Additional information available:

Parameters:

Parameters:

 lm - The source-line character position at which to begin display  of
     the line of source code (the left margin).

 rm - The source-line character position at which to  end  display  of
     the line of source code (the right margin).

     If you specify a single number, the debugger sets the left margin
     to 1 and the right margin to the number specified.

     If you specify two numbers, separated with a colon, the  debugger
     sets  the  left margin to the number specified to the left of the
     colon and the right margin to the number specified to  the  right
     of the colon.

     If you specify a single number followed by a colon, the  debugger
     sets the left margin to the number specified and leaves the right
     margin unchanged.

     If you specify a colon followed by a single number, the  debugger
     sets the right margin to the number specified and leaves the left
     margin unchanged.

MAX_SOURCE_FILES

     Specifies the maximum number of source files  that  the  debugger
     may keep open at any one time.  The default value is 5.

     The value of MAX_SOURCE_FILES does not limit the number of source
     files  that  the debugger can open, it limits the number that may
     be kept open at any one time.  Thus, if the debugger reaches this
     limit, it must close a file in order to open another one.

     Setting MAX_SOURCE_FILES to a very  small  number  can  make  the
     debugger's    use   of   source   files   inefficient.    Setting
     MAX_SOURCE_FILES to a large number runs  the  risk  of  exceeding
     your   "open   file   quota".    It  is  usually  best  to  leave
     MAX_SOURCE_FILES at the default value of 5.

 Format:

     SET MAX_SOURCE_FILES n

Additional information available:

Parameters

Parameters

 n - Specifies the maximum number of source files  that  the  debugger
     may keep open at any one time.

MODE

     Establishes one or more "modes".  The two most important  "modes"
     are:

     (1) Screen mode or noscreen mode, which affects whether you  want
     to  view  debugger  output  line-by-line, or in a screen-oriented
     fashion.

     (2) Keypad mode or  nokeypad  mode,  which  affects  whether  the
     numeric  keypad is used to enter debugger commands, or whether it
     is used to enter numbers.

     In addition, there are a  large  number  of  other  "modes"  that
     affect  the debugger's behavior; these are described in detail in
     the subtopics.

 Format:

     SET MODE mode-keyword [,mode-keyword]

Additional information available:

DYNAMICG_FLOATINTERRUPTKEYPADLINENODYNAMIC
NOG_FLOATNOINTERRUPTNOKEYPADNOLINENOOPERANDS
NOSCREENNOSCROLLNOSEPARATENOSYMBOLICOPERANDS
SCREENSCROLLSEPARATESYMBOLIC

Parameters

Parameters

 mode-keyword

     May be one of the following:

     o  DYNAMIC -- Enables dynamic  module  setting  (see  description
        under DYNAMIC) (default).

     o  NODYNAMIC -- Disables dynamic module setting (see  description
        under DYNAMIC).

     o  G_FLOAT -- Specifies that debugger pick up D exponent constant
        as G_float.

     o  NOG_FLOAT --  Specifies  that  debugger  pick  up  D  exponent
        constant as D_float.  (default).

     o  INTERRUPT -- Enables interrupt mode for debugging multiprocess
        programs (see description under INTERRUPT) (default).

     o  NOINTERRUPT  --  Disables   interrupt   mode   for   debugging
        multiprocess programs (see description under NOINTERRUPT).

     o  KEYPAD -- Turn on keypad mode.

     o  NOKEYPAD -- Turn off keypad mode.  (default).

     o  LINE -- Specifies that the debugger display code locations  in
        terms of line numbers (%LINE), if possible.  (default).

     o  NOLINE -- Specifies that the debugger symbolize code locations
        to "routine + offset" instead of line number.

     o  OPERANDS -- Enables display of  operands  when  examining  VAX
        instructions.

     o  NOOPERANDS -- Disables display of operands when examining  VAX
        instructions.

     o  SCREEN -- Turns on screen mode.

     o  NOSCREEN -- Turns off screen mode.  (default).

     o  SCROLL -- Specifies that output be scrolled through the output
        display as it is generated (default).

     o  NOSCROLL -- Specifies that the output display be updated  only
        once per command, instead of scrolling the output line-by-line
        as it is generated.

     o  SEPARATE -- Runs debugger I/O in a separate VAXstation window.
        (only available on a VAXstation).

     o  NOSEPARATE -- Runs  debugger  I/O  in  the  window  where  the
        debugger initially started.  (only available on a VAXstation).
        (default).

     o  SYMBOLIC -- Specifies that the debugger display the  locations
        denoted  by  address-expressions  symbolically,  if  possible.
        (default).

     o  NOSYMBOLIC  --  Specifies   that   the   debugger   turn   off
        symbolization of addresses.

DYNAMIC

     Enables dynamic module setting.   Dynamic  module  setting  means
     that  whenever  you  are  at  the  DBG prompt, if your PC is in a
     module that is  not  set,  then  the  debugger  sets  the  module
     automatically.   For  example,  if  you step into a function in a
     module that is not set, the debugger sets the module  and  issues
     an informational that it has done so.

     The debugger does not cancel modules for  you,  so  as  you  step
     through your program there may be an increasing number of modules
     set.

     Example:

     DBG> SET MODE DYNAMIC
     DBG> STEP/INTO
     stepped to routine SUBR
     %DEBUG-I-DYNMODSET, setting module SUBR


G_FLOAT

     Specifies  that  all  double-precision   constants   entered   in
     expressions  should  be  interpreted  as  G_Floating.   This only
     affects the interpretation of constants such as "1.1D0" that  are
     entered  in  expressions;  variables  in  your  program are still
     interpreted according to their declared type.

INTERRUPT

     (Applies to a multiprocess debugging configuration  --  that  is,
     when  DBG$PROCESS  has  the value MULTIPROCESS).  Specifies that,
     when program execution is suspended in any process, the  debugger
     interrupts  execution  in any other processes that were executing
     images and prompts for input.  SET MODE INTERRUPT is the default.

KEYPAD

     Activates keypad mode.  See "Help Keypad" for more information.

LINE

     Specifies that the debugger display code locations  in  terms  of
     line numbers (%LINE), if possible.  (default).

     Example:

     DBG> SET MODE LINE; STEP
     stepped to %LINE 20
     DBG> SET MODE NOLINE; STEP
     stepped to SUBR + 36


NODYNAMIC

     Turns off dynamic module setting.  One might occasionally want to
     turn   off  this  feature  if  performance  is  a  problem.   See
     description under "DYNAMIC" for more info.

NOG_FLOAT

     Specifies  that  all  double-precision   constants   entered   in
     expressions  should  be  interpreted  as  D_Floating.   This only
     affects the interpretation of constants such as "1.1D0" that  are
     entered  in  expressions;  variables  in  your  program are still
     interpreted according to their declared type.  (default).

NOINTERRUPT

     (Applies to a multiprocess debugging configuration  --  that  is,
     when  DBG$PROCESS  has  the value MULTIPROCESS).  Specifies that,
     when program execution is suspended in any process, the  debugger
     take the following action:

     1.  If execution was suspended because of an unhandled exception,
         the debugger interrupts execution in any other processes that
         were executing images and prompts for input.

     2.  If  execution  was  suspended  because  of  a  breakpoint  or
         watchpoint  or the completion of a STEP command, the debugger
         lets execution proceed  in  any  other  processes  that  were
         executing  images  and  does  not  display  the prompt unless
         execution is eventually suspended in all these processes.  As
         long as execution continues in any process, the debugger does
         not prompt for input.  In such cases, use CTRL/C to interrupt
         all processes and display the prompt.


NOKEYPAD

     Disables keypad mode.  This may be necessary if you would  rather
     use the keypad to enter numbers, instead of debugger commands.

NOLINE

     Specifies that the debugger symbolize code locations to  "routine
     + offset" instead of line number.

     Example:

     DBG> SET MODE LINE; STEP
     stepped to %LINE 20
     DBG> SET MODE NOLINE; STEP
     stepped to SUBR + 36


NOOPERANDS

     Specifies that the operands of VAX instructions  are  not  to  be
     evaluated when you enter the command EXAMINE/INSTRUCTION.

     Example:

     DBG> SET MODE OPERANDS=BRIEF
     DBG> EXAMINE .0\%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
     DBG> SET MODE NOOPERANDS
     DBG> EXAMINE .0\%PC
     X\X$START+0C:   MOVL    B^04(R4),R7

NOSCREEN

     Disables screen mode.  (default)

NOSCROLL

     Specifies that the  output  display  be  updated  only  once  per
     command,  instead  of  scrolling the output line-by-line as it is
     generated.  This reduces the amount of screen updating that takes
     place, which might be an advantage on slow terminals.

NOSEPARATE

     This command applies only to VAXstations.

     Specifies that debugger input and output  go  to  the  window  in
     which the debugger was invoked.  This is the default behavior.

NOSYMBOLIC

     Specifies that the debugger not attempt to  symbolize  addresses.
     The   only   advantage   of  this  is  performance:   suppressing
     symbolization  may  speed  up  command  processing  slightly   by
     reducing  the  amount  of work the debugger has to do.  Note that
     SET MODE NOSYM does NOT cause the debugger to turn all names into
     numbers  -  it just requests that the debugger make no attempt to
     turn numbers into names.

     Example:

     DBG> EVAL/ADDR X
     7FFFFEC0
     DBG> EXAMINE %HEX 7FFFFEC0
     SUBR\X:   3
     DBG> SET MODE NOSYM
     DBG> EXAMINE %HEX 7FFFFEC0
     7FFFFEC0: 3

OPERANDS

     Specifies that, when you enter an EXAMINE command to  examine  an
     instruction, the display include the address and contents of each
     instruction operand.  The entity being examined must be  of  type
     "instruction".

     You  can  control  the  amount  of  information   displayed,   by
     specifying   either   OPERANDS=BRIEF   or  OPERANDS=FULL.   These
     qualifiers can be  used  on  either  the  SET  MODE  OPERANDS  or
     EXAMINE/OPERANDS commands.  The default is OPERANDS=BRIEF.

     Example:

     DBG> SET MODE OPERANDS=BRIEF
     DBG> EXAMINE .0\%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
     DBG> SET MODE OPERANDS=FULL
     DBG> EXAMINE .0\%PC
     X\X$START+0C:   MOVL    B^04(R4),R7
          B^04(R4)   R4 contains X\X$START\M (address 00001054),
                     B^04(00001054) evaluates to X\X$START\K
                     (address 00001058), which contains 00000016
          R7         R7 contains 00000000

SCREEN

     Enables screen mode.  See Screen_features for more information.

SCROLL

     Specifies that, in screen mode, output be  scrolled  through  the
     output display as it is generated.  (default).

SEPARATE

     This command applies only to VAXstations.

     Creates a separate debugger 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.  For example:

     DBG> SET MODE SEPARATE
     (... new window ...)
     DBG>


SYMBOLIC

     Specifies that the debugger attempt to symbolize  addresses  that
     appear  in  its  output.   This  is the default behavior (since a
     symbolic representation is usually preferred).  For example:

     DBG> EVAL/ADDR X
     7FFFFEC0
     DBG> EXAMINE %HEX 7FFFFEC0
     SUBR\X:   3
     DBG> SET MODE NOSYM
     DBG> EXAMINE %HEX 7FFFFEC0
     7FFFFEC0: 3


MODULE

     Sets the specified module(s).  "Modules"  are  a  subdivision  of
     your  program.  The exact definition depends on the language, for
     example, in FORTRAN every subroutine is a module, whereas in  ADA
     every  compilation unit is a module.  Setting a module means that
     the symbols in that module become available to the debugger.

 Format:

     SET MODULE [/qualifier] [module-name [,module-name] ...  ]

 Example:

     DBG> EX X  ! X is declared in SUBR
     %DEBUG-W-NOSYMBOL, symbol 'X' is not in the symbol table
     DBG> SET MODU SUBR
     DBG> EX X  ! Now you can examine X
     SUBR\X:    5

Additional information available:

ParametersQualifiers

Parameters

 module-name

     Specifies the name of the module to be set.

Qualifiers

Additional information available:

/ALL/CALLS/NORELATED/RELATED

/ALL
     Specifies that all  of  the  modules  in  your  program  be  set.
     (However,  your  "shareable  image"  modules  is not set by a SET
     MODULE/ALL - you have to explicitly set each one.)

/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.

/NORELATED
     (Applies to ADA only).

     This qualifier tells the debugger  to  set  only  the  module  or
     modules  specified in this command, but not the "with"ed packages
     and subunit parents that would normally be  set  along  with  the
     specified  module.   This  can  degrade the debugger's ability to
     look up symbols to some  extent,  for  example,  names  that  are
     visible  in ADA because of a "with" clause are not visible in the
     debugging session if the "with"ed package is not set.

/RELATED
     (Applies to ADA only).

     This qualifier is the default.  "Related  module  setting"  means
     that  when  you set an ADA module, all "with"ed package specs are
     also set for you, and if the module is a subunit, its  parent  is
     set  for you.  This enables the debugger to achieve the same name
     visibility rules as the ADA language.

OUTPUT

     Specifies whether or not to send  output  to  the  terminal,  and
     whether or not to send output to a log file.

 Format:

     SET OUTPUT option [,option...]

 Example:

     DBG> SET OUTPUT LOG        ! Enable logging
     DBG> SET OUTPUT NOTERM     ! Turn off terminal output
     ! After the above two commands, output is only going
     ! to the log file, not to the terminal
     DBG> SET OUT NOTERM,NOLOG
     %DEBUG-I-OUTPUTLOST, output being lost
     ! After the above, output is going to neither the terminal
     ! or the log file, so you get an informational that output
     ! is being lost. This is obviously a useless output mode.
     DBG> SET OUT TERM,NOLOG    ! Back to the default

Additional information available:

LOGNOLOGNOSCREEN_LOGNOTERMINALNOVERIFY
SCREEN_LOGTERMINALVERIFY

Parameters

Parameters

 option

     May be one of the following output parameters:

     LOG                NOLOG           NOTERMINAL      NOVERIFY
     TERMINAL VERIFY            SCREEN_LOG      NOSCREEN_LOG

LOG

     Specifies that both debugger output and user input be recorded in
     a  log  file.  If you specify the name of the log file by the SET
     LOG command, the debugger writes to  that  file;  otherwise,  the
     debugger  writes  to  a  file with the default file specification
     DEBUG.LOG.

NOLOG

     Specifies that debugger output and user input not be recorded  in
     a log file.  This is the default.

NOSCREEN_LOG

     Specifies that screen images should not  be  logged  to  the  log
     file,  even  when  logging  is  otherwise  enabled.   This is the
     default.

NOTERMINAL

     Specifies that debugger output, except for  diagnostic  messages,
     not be displayed at the terminal.

NOVERIFY

     Specifies that the debugger's  echoing  of  commands  in  command
     procedures  and  in  DO  Command  Sequences  not  be  included as
     debugger output.  This is the default.

SCREEN_LOG

     Specifies that screen images should be written to  the  log  file
     whenever  screen  mode  is  set and logging is enabled by the LOG
     option.  This parameter can cause log file to get very large, and
     should be used with caution.

TERMINAL

     Specifies that debugger output  be  displayed  at  the  terminal.
     This is the default.

VERIFY

     Specifies that the debugger's  echoing  of  commands  in  command
     procedures  and  in  DO Command sequences be included as debugger
     output.

PROCESS

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

     The SET PROCESS command establishes the visible process, modifies
     characteristics  of  one  or  more processes, or enables/disables
     dynamic process setting.

 Format:

       SET PROCESS [/qualifier] [process-spec[, . . . ]]

     By default, commands are executed in the context of  the  visible
     process.  The visible process is the process that is your current
     debugging  context.   Symbol   lookups   and   the   setting   of
     breakpoints, tracepoints, and watchpoints are done in the context
     of the visible process.

     The DO command enables you to execute commands in the context  of
     specific  processes  or  of  all  processes.   The  DO command is
     equivalent to entering a SET  PROCESS/VISIBLE  command  for  each
     process  specified  (or  for  all  processes,  if  no  process is
     specified with the DO command) and then  entering  the  specified
     commands.

     Dynamic process setting is enabled by default and  is  controlled
     with the /[NO]DYNAMIC qualifier.  When dynamic process setting is
     enabled (SET PROCESS/DYNAMIC),  whenever  the  debugger  suspends
     program  execution  and displays its prompt, the process in which
     execution is suspended becomes the visible process automatically.

Additional information available:

ExamplesParametersQualifiers

Examples

     1   DBG_1> SET PROCESS/HOLD/ALL
         DBG_1> SHOW PROCESS/ALL
          Number  Name          Hold  State            Current PC
         *    1 TEST_X          YES   step             PROG\%LINE 50
              2 TEST_Y          YES   break            PROG\%LINE 71

     The command SET PROCESS/HOLD/ALL  puts  all  processes  on  hold.
     This is confirmed in the SHOW PROCESS/ALL display.

     2   DBG_1> SET PROCESS/NOHOLD %VISIBLE_PROCESS
         DBG_1> SHOW PROCESS/ALL
          Number  Name          Hold  State            Current PC
         *    1 TEST_X                step             PROG\%LINE 50
              2 TEST_Y          YES   break            PROG\%LINE 71

     The command  SET  PROCESS/NOHOLD  %VISIBLE_PROCESS  releases  the
     visible  process  from  hold.   This  is  confirmed  in  the SHOW
     PROCESS/ALL display.

     3   DBG_1> SET PROCESS TEST_Y
         DBG_2> SHOW PROCESS
          Number   Name            Hold  State         Current PC
         *    2 TEST_Y             YES   break         PROG\%LINE 71

     The command SET PROCESS TEST_Y makes process TEST_Y  the  visible
     process.  The command SHOW PROCESS displays information about the
     visible process, by default.

     4   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>

     The command SET PROCESS/HOLD/ALL puts all processes on hold.  The
     DO  command  broadcasts  the  commands  EXAMINE X and STEP to all
     processes (processes 1 and 2 in this case).  The STEP is executed
     in  the  visible  process, process 1, because a hold condition in
     the visible process is ignored.  Because process 2  is  on  hold,
     execution is inhibited in that process.

Parameters

 process-spec

     Specifies a process.  Use any of the following forms:

     [%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.
                                     Process numbers appear in a
                                     SHOW PROCESS display.

     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 also use the asterisk wildcard character (*)  to  specify
     all processes.

Qualifiers

Additional information available:

/ALL/DYNAMIC/HOLD/NODYNAMIC/NOHOLD/VISIBLE

/ALL
     Applies the SET PROCESS command to all processes.  Do not specify
     a  process  with this qualifier.  Do not specify /[NO]DYNAMIC, or
     /VISIBLE with /ALL.

/DYNAMIC
     Enables dynamic process setting (default).  When dynamic  process
     setting  is enabled, whenever the debugger suspends execution and
     displays its prompt, the process in which execution is  suspended
     becomes  the  visible  process  automatically.   Do not specify a
     process with  /DYNAMIC.   Do  not  specify  /ALL,  /[NO]HOLD,  or
     /VISIBLE with /DYNAMIC.

/HOLD
     Puts a specified process on hold.  This prevents images  in  that
     process  from  executing  when  you  enter  a  GO,  STEP, or CALL
     command, unless the process  is  the  visible  process.   A  hold
     condition  in  the  visible  process  is  ignored.   The behavior
     described also applies when you use the DO command to broadcast a
     GO, STEP, or CALL command to specific processes.

     If no process is specified, /HOLD puts  the  visible  process  on
     hold.  See the descriptions of the GO, STEP, CALL, EXIT, and QUIT
     commands for the effects of these commands on held processes.  Do
     not specify /[NO]DYNAMIC with /HOLD.

/NODYNAMIC
     Disables dynamic process setting.  When dynamic  process  setting
     is  disabled,  the  visible  process  remains unchanged until you
     specify another process with the SET PROCESS/VISIBLE command.  Do
     not  specify  a  process  with  /NODYNAMIC.  Do not specify /ALL,
     /[NO]HOLD, or /VISIBLE with /NODYNAMIC.

/NOHOLD
     Unholds a specified process.  This permits images in that process
     to execute when you enter a GO, STEP, or CALL command, regardless
     of which process is the visible process.  The behavior  described
     also applies when you use the DO command to broadcast a GO, STEP,
     or CALL command to specific processes.

     If no process is specified, /NOHOLD unholds the visible  process.
     See  the  descriptions  of  the  GO,  STEP,  CALL, EXIT, and QUIT
     commands for the effects of these commands on  unheld  processes.
     Do not specify /[NO]DYNAMIC with /NOHOLD.

/VISIBLE
     Makes the specified process the visible process.   This  switches
     your  debugging  context to the specified process, so that symbol
     lookups  and  the  setting  of  breakpoints,   tracepoints,   and
     watchpoints  are  done  in the context of that process.  You must
     specify one, and only  one,  process.   If  you  do  not  specify
     /VISIBLE,  it  is  assumed  by  default.  Do not specify /ALL, or
     /[NO]DYNAMIC with /VISIBLE.

PROMPT

     Changes the debugger prompt string from DBG> to a string of  your
     choice.   In  addition,  the  /[NO]SUFFIX and /[NO]POP qualifiers
     control convenience features for debugging multiprocess  programs
     or using the debugger at a VAXstation, respectively.

 Format:

       SET PROMPT [/qualifier] [prompt-parameter]

Additional information available:

ExamplesParametersQualifiers

Examples

     1   DBG> SET PROMPT "$ "
         $ SET PROMPT "d b g : "
         d b g : SET PROMPT "DBG> "
         DBG>

     The successive SET PROMPT commands  change  the  debugger  prompt
     from "DBG>" to "$", to "d b g :", then back to "DBG>".

     2   DBG_1> SET PROMPT/NOSUFFIX "dbg> "
         dbg> SET PROMPT/SUFFIX
         DBG_1> SET PROMPT/SUFFIX=PROCESS_NUMBER "xyz_"
         xyz_1> SET PROMPT/SUFFIX=PROCESS_NAME
         SMITH> SET PROMPT/SUFFIX=PROCESS_NAME "John "
         John SMITH> SET PROMPT/SUFFIX=PROCESS_PID
         20800E4D>

     The successive  SET  PROMPT  commands  show  the  effect  of  the
     /[NO]SUFFIX   qualifier   and  the  prompt-parameter  string  for
     multiprocess programs.

Parameters

 prompt-parameter

     Specifies the string which is to become the new prompt.   If  the
     string  contains spaces, semicolons, or lowercase characters, you
     must enclose it in quotation marks (") or  apostrophes  (').   If
     you  do  not  specify a string, the current prompt string remains
     unchanged.  By default, the prompt string  is  DBG>  for  a  non-
     multiprocess  debugging  configuration  (when  the  logical  name
     DBG$PROCESS is undefined or has the value DEFAULT).

     By default, for  a  multiprocess  debugging  configuration  (when
     DBG$PROCESS  has  the  value  MULTIPROCESS),  the  prompt  string
     consists  of   a   process-independent   prefix   (specified   by
     prompt-parameter) and a process-specific suffix (specified by the
     /[NO]SUFFIX qualifier).  The suffix changes automatically as  the
     visible process changes.

Qualifiers

Additional information available:

/SUFFIX/NOPOP/NOSUFFIX/POP

/SUFFIX[=process-identifier-type]
     Note:   This  qualifier  applies  to  a  multiprocess   debugging
     configuration (when DBG$PROCESS has the value MULTIPROCESS).

     /SUFFIX enables "dynamic  prompt  setting".   As  a  result,  the
     prompt   string   includes   a   process-specific   suffix   that
     automatically  identifies  the  visible  process.   This  is  the
     default behavior.

     When you invoke the debugger with the  RUN  command  to  debug  a
     multiprocess  program,  the  prompt  string is DBG_1> by default.
     This indicates that dynamic prompt setting is  enabled  and  that
     the  visible process is process 1 (the first process connected to
     the   debugger).    You   can   control   the    process-specific
     prompt-string   suffix   by   specifying  one  of  the  following
     process-identifier-type keywords with the /SUFFIX qualifier:

     PROCESS_NAME     The prompt-string suffix is the VMS process name.

     PROCESS_NUMBER   The prompt-string suffix is the process number
                      (as shown in a SHOW PROCESS display). This is the
                      default.

     PROCESS_PID      The prompt-string suffix is the VMS process
                      identification number (PID).

     The following table illustrates  the  possible  kinds  of  prompt
     strings  for  a  multiprocess debugging configuration.  Note that
     the entire prompt string depends on the prompt-parameter  command
     parameter (which controls the process-independent prefix), and on
     the  values  of  /[NO]SUFFIX  and  the  process-  identifier-type
     keyword (which control the process-specific suffix):

     Prompt-
     parameter      Qualifier and Keyword    Resulting
     (prefix):      (suffix):                Prompt_String:

     none           none                     unchanged
     none           /NOSUFFIX                DBG>
     none           /SUFFIX                  DBG_process-number> [1]
     none           /SUFFIX=PROCESS_NAME     process-name>
     none           /SUFFIX=PROCESS_NUMBER   process-number>
     none           /SUFFIX=PROCESS_PID      pid>
     XYZ_           /NOSUFFIX                XYZ_>
     XYZ_           /SUFFIX                  XYZ_process-number>
     XYZ_           /SUFFIX=PROCESS_NAME     XYZ_process-name>
     XYZ_           /SUFFIX=PROCESS_NUMBER   XYZ_process-number>
     XYZ_           /SUFFIX=PROCESS_PID      XYZ_pid>
     _______________________________________________________
     [1]The default prompt for a multiprocess debugging  configuration
     is  DBG_process-number>,  which  is  equivalent  to  entering the
     following command:

        DBG> SET PROMPT/SUFFIX=PROCESS_NUMBER "DBG_"

/NOPOP
     Note:  This qualifier applies only to VAXstations.

     Causes the debugger window to not pop over other windows, nor  to
     attach  to  the keyboard automatically, when the debugger prompts
     for input.  This is the default behavior.  If you do not  specify
     /NOPOP, the prompt behavior is set to /NOPOP.

/NOSUFFIX
     Note:   This  qualifier  applies  to  a  multiprocess   debugging
     configuration (when DBG$PROCESS has the value MULTIPROCESS).

     /NOSUFFIX disables dynamic prompt  setting.   As  a  result,  the
     prompt string does not include a process-specific suffix and does
     not change when another process becomes the visible process.

/POP
     Note:  This qualifier applies only to VAXstations.

     Causes the debugger window to pop over other windows  and  become
     attached to the keyboard when the debugger prompts for input.  If
     you do not specify /POP, the prompt behavior is set to /NOPOP.

RADIX

     SET RADIX is the new syntax (in place of SET MODE) for specifying
     the  radix  (decimal,  hex, octal, binary) of numbers.  Input and
     output radices can be specified separately.

 Format:

     SET RADIX[/qualifier...] radix

 Example:

     DBG> SET RADIX DECIMAL
     DBG> EVAL 5 + 5
     10
     DBG> SET RADIX HEX
     DBG> EVAL 5 + 5
     0A


Additional information available:

BINARYDECIMALDEFAULTHEXADECIMALOCTAL

ParametersQualifiers

Parameters

 radix

     May be one of the following:

     o  BINARY -- Sets the radix to binary.

     o  DECIMAL -- Sets the radix to decimal.

     o  DEFAULT -- Sets the radix back to the language default.

     o  HEXADECIMAL -- Sets the radix to hexadecimal.

     o  OCTAL -- Sets the radix to octal.

BINARY

     Sets the radix to binary.

DECIMAL

     Sets the radix to decimal.

DEFAULT

     Sets the radix back to the default for the current language.

HEXADECIMAL

     Sets the radix to hexadecimal.

OCTAL

     Sets the radix to octal.

Qualifiers

Additional information available:

/INPUT/OUTPUT/OVERRIDE

/INPUT
     Set only the input radix.

     Example:

     DBG> SET RADIX/INPUT DECIMAL; SET RADIX/OUTPUT HEX
     DBG> EVAL 31
     1F

/OUTPUT
     Set only the output radix.

     DBG> SET RADIX/INPUT DECIMAL; SET RADIX/OUTPUT HEX
     DBG> EVAL 31
     1F

/OVERRIDE
     Set the "override" radix.

     "Override" radix is like output radix except that it also  causes
     all  data  to  be  displayed  as  integer  (that  is, the type is
     overriden).

SCOPE

     Establishes how the debugger looks up  symbols  (variable  names,
     routine  names,  line numbers, and so on) when a path name prefix
     is not specified.

 Format:

       SET SCOPE  location[, . . . ]

Additional information available:

ExamplesParametersQualifiersDescription

Examples

     1.  DBG> EXAMINE Y
         %DEBUG-W-NOUNIQUE, symbol 'Y' is not unique
         DBG> SHOW SYMBOL Y
         data CHECK_IN\Y
         data INVENTORY\COUNT\Y
         DBG> SET SCOPE INVENTORY\COUNT
         DBG> EXAMINE Y
         INVENTORY\COUNT\Y: 347.15
         DBG>

     In this example, the  first  EXAMINE  Y  command  indicates  that
     symbol  Y  is  multiply  defined  and cannot be resolved from the
     current scope search list.  The SHOW SYMBOL command displays  the
     different  declarations of symbol Y.  The SET SCOPE command tells
     the debugger to look for symbols without path  name  prefixes  in
     routine  COUNT  of  module  INVENTORY.   The  subsequent  EXAMINE
     command can now interpret Y unambiguously.


     2.  DBG> CANCEL SCOPE
         DBG> SET SCOPE/CURRENT 1

     In this example, the CANCEL SCOPE command  restores  the  default
     scope  search  list  (0,1,2, .  .  .  ,n).  The SET SCOPE/CURRENT
     command then changes the scope search list to 1,2, .  .   .   ,n,
     so  that  symbol  searches  start  with scope 1-that is, with the
     caller of the routine in which execution is currently  suspended.
     The  default  source  and instruction displays (SRC and INST) are
     updated and now show the source and  instructions,  respectively,
     for the caller of the routine in which execution is suspended.


     3.  DBG> SET SCOPE 1
         DBG> EXAMINE %R5

     In this example, the SET SCOPE command tells the debugger to look
     for  symbols without path name prefixes in scope 1 -- that is, in
     the caller of the routine in which execution is  suspended.   The
     EXAMINE  command  then  displays  the value of register R5 in the
     caller routine.  Note that  the  SET  SCOPE  command,  when  used
     without  the  /CURRENT  qualifier,  does not update any source or
     instruction display.


     4.  DBG> SET SCOPE 0, STACKS\R2, SCREEN

     This command tells the debugger to look for symbols without  path
     name  prefixes  according  to  the  following  scope search list.
     First the debugger looks in the PC scope (denoted  by  "0").   If
     the  debugger  cannot find a specified symbol in the PC scope, it
     then looks in routine R2 of module STACKS.  If necessary, it then
     looks  in  module  SCREEN.   If  the debugger still cannot find a
     specified symbol, it looks no further.


     5.  DBG> SHOW SYMBOL X
         data ALPHA\X                ! global X
         data ALPHA\BETA\X           ! local X
         data X (global)             ! same as ALPHA\X
         DBG> SHOW SCOPE
         scope: 0 [ = ALPHA\BETA ]
         DBG> SYMBOLIZE X
         address ALPHA\BETA\%R0:
             ALPHA\BETA\X
         DBG> SET SCOPE \
         DBG> SYMBOLIZE X
         address 00000200:
             ALPHA\X
         address 00000200: (global)
             X
         DBG>

     In this example, the SHOW SYMBOL command indicates that there are
     two  declarations  of the symbol X-a global ALPHA\X (shown twice)
     and a local ALPHA\BETA\X.  Within the current  scope,  the  local
     declaration  of  X (ALPHA\BETA\X) is visible.  After the scope is
     set to the global scope (SET SCOPE \), the global declaration  of
     X is made visible.

Parameters

 location

     Denotes  a  program  region  (scope)   to   be   used   for   the
     interpretation  of  symbols  that you specify without a path name
     prefix.  A location may be  any  of  the  following,  unless  you
     specify /CURRENT or /MODULE (see the qualifier descriptions):

        path name        Specifies the scope denoted by the path name
        prefix           prefix. A path name prefix consists of the names
                         of one or more nesting program elements (module,
                         routine, block, and so on), with each name
                         separated by a backslash character (\). When a
                         path name prefix consists of more than one name,
                         list a nesting element to the left of the \ and
                         a nested element to the right of the \. A common
                         path name prefix format is module\routine\block\.

                         If you specify only a module name and that name
                         is the same as the name of a routine, use the
                         /MODULE qualifier; otherwise, the debugger
                         assumes that you are specifying the routine.

        n                Specifies the scope denoted by the routine which
                         is n levels down the call stack (n is a decimal
                         integer). A scope specified by an integer changes
                         dynamically as the program executes. The value 0
                         denotes the routine that is currently executing,
                         the value 1 denotes the caller of that routine,
                         and so on down the call stack. The default scope
                         is 0,1,2, . . . ,n, where n is the number of
                         calls on the call stack.

        \                Specifies the global scope - that is, the set of
                         all program locations in which a global symbol is
                         known. The definition of a global symbol and the
                         way it is declared depends on the language.

     When you specify more than one location parameter, you  establish
     a scope search list.  If the debugger cannot interpret the symbol
     using the first  parameter,  it  uses  the  next  parameter,  and
     continues  using parameters in order of their specification until
     it successfully interprets the symbol or until  it  exhausts  the
     parameters specified.

Qualifiers

Additional information available:

/CURRENT/MODULE

/CURRENT
     Establishes a scope search list that is like the  default  search
     list  (0,1,2,  .   .   .   ,n)  but  starts  at the numeric scope
     specified as the command parameter.  Scope 0 is the PC scope, and
     n  is  the  number  of  calls  in the call stack.  When using SET
     SCOPE/CURRENT, note the following conventions and behavior:

      o  The default scope search list must  be  in  effect  when  the
         command is issued.

      o  The command parameter specified must be one  (and  only  one)
         decimal integer from 0 to n.

      o  In screen mode, the command updates the  default  source  and
         instruction  displays  (SRC  and INST) to show the routine on
         the call stack in which symbol searches are to start.

      o  The default  scope  search  list  is  restored  when  program
         execution is resumed.


/MODULE
     Indicates that the name specified as the command parameter  is  a
     module name and not a routine name.  You need to use /MODULE only
     if you specify a module name as the command  parameter  and  that
     module name is the same as the name of a routine.

Description

     By default, the debugger looks up a symbol  specified  without  a
     path  name  prefix according to the scope search list 0,1,2, .  .
     .  ,n, where n is the number of calls in the  call  stack.   This
     scope  search  list  is based on the current PC value and changes
     dynamically as the program executes.   The  default  scope  means
     that a symbol lookup such as "EXAMINE X" first looks for X in the
     routine that is currently executing (scope 0); if no X is visible
     there,  the  debugger  looks in the caller of that routine (scope
     1), and so on down the call stack; if X is not found in scope  n,
     the debugger searches the rest of the run-time symbol table (RST)
     - that is, all set modules and the global symbol table (GST),  if
     necessary.

     In most cases, this default scope  search  list  enables  you  to
     specify    multiply-defined   symbols   uniquely   by   resolving
     ambiguities in a predictable, natural way that is consistent with
     language  rules.   But  if  you  cannot access a multiply-defined
     symbol, use either of the following techniques:

      o  Specify the symbol with a path name prefix.   The  path  name
         prefix  consists  of  any nesting program units (for example,
         module\routine\block)  that  are  necessary  to  specify  the
         symbol uniquely.  For example:

            DBG> EXAMINE MOD4\ROUT3\X
            DBG> TYPE MOD4\27

      o  Establish a new default scope for symbol lookup by  means  of
         the  SET  SCOPE  command.   You  can  then specify the symbol
         without using a path name prefix.  For example:

            DBG> SET SCOPE MOD4\ROUT3
            DBG> EXAMINE X
            DBG> TYPE 27

     The SET SCOPE command is useful in those  cases  where  otherwise
     you would need to use a path name repeatedly to specify symbols.

     To restore the default scope search list, use  the  CANCEL  SCOPE
     command.

     When the default scope search list is in effect, you can use  the
     command  SET  SCOPE/CURRENT to specify that symbol searches start
     at a numeric scope other than scope 0, relative to the call stack
     (for example, scope 2).

     When you use the SET SCOPE command, the  debugger  searches  only
     the  program locations you specify explicitly, unless you use the
     /CURRENT  qualifier.   Also,  the  scope  or  scope  search  list
     established  with a SET SCOPE command remains in effect until you
     restore the default scope search list or enter another SET  SCOPE
     command.  However, if you use the /CURRENT qualifier, the default
     scope search list  is  restored  whenever  program  execution  is
     resumed.

     If a name you specify in a SET SCOPE command is the name of  both
     a  module  and  a  routine,  the  debugger  sets the scope to the
     routine.  In such cases, use the command SET SCOPE/MODULE if  you
     want to set the scope to the module.

     If you specify a module name in a SET SCOPE command, the debugger
     "sets"  that  module  if  it is not already set.  However, if you
     want only to set a module, use the SET MODULE command rather than
     the SET SCOPE command, to avoid the possibility of disturbing the
     current scope search list.

SEARCH

     Establishes current SEARCH parameters to be used by the  debugger
     whenever  a SEARCH command qualifier is not specified in a SEARCH
     command.

     SEARCH parameters determine whether the debugger searches for all
     occurrences  (ALL)  of  the  string  or  only the next occurrence
     (NEXT) of the string,  and  whether  the  debugger  displays  any
     occurrence  of  the  string (STRING) or only those occurrences in
     which the string is not bounded on either  side  by  a  character
     that  cannot  be  part  of  an identifier in the current language
     (IDENTIFIER).

     You can specify more than one SEARCH parameter in  a  single  SET
     SEARCH command by separating each parameter with a comma.

 Format:

     SET SEARCH option [,option...]

Additional information available:

ALLIDENTIFIERNEXTSTRING

ParametersExamples

Parameters

 option

     Specifies the current SEARCH parameters.

     o  ALL -- specifies that the debugger search for all  occurrences
        of  the  string  in the specified range and display every line
        containing an occurrence of the string.

     o  NEXT -- specifies that  the  debugger  search  for  the  first
        occurrence  of  the  string in the specified range and display
        the line containing this occurrence.  This is the default.

     o  IDENTIFIER --  specifies  that  the  debugger  search  for  an
        occurrence  of  the  string in the specified range but display
        the string only  if  it  is  bounded  on  either  side  by  af
        character  that cannot be part of an identifier in the current
        language.

     o  STRING -- specifies that the debugger search for  and  display
        the  string  as  specified,  and  not  interpret  the  context
        surrounding an occurrence of the string, as  it  does  in  the
        case of IDENTIFIER.  This is the default.

ALL

     Specifies that the debugger search for  all  occurrences  of  the
     string  in  the specified range and display every line containing
     an occurrence of the string.

IDENTIFIER

     Specifies that the debugger  search  for  an  occurrence  of  the
     string  in  the specified range but display the string only if it
     is bounded on either side by af character that cannot be part  of
     an identifier in the current language.

NEXT

     Specifies that the debugger search for the  first  occurrence  of
     the string in the specified range and display the line containing
     this occurrence.  This is the default.

STRING

     Specifies that the debugger search for and display the string  as
     specified,   and   not   interpret  the  context  surrounding  an
     occurrence of the string, as it does in the case  of  IDENTIFIER.
     This is the default.

Examples

     DBG> SET SEARCH ALL,IDENT
     DBG> SEARCH FOO X  ! Find all occurences of X in module FOO
     module FOO
     21:        X = 3
     33:        Y = X+1

SOURCE

     Directs the  debugger  in  the  location  of  source  file(s)  by
     overriding  selected  field(s)  in the full file specification of
     the original (at compile time) source file(s).

     Typically you would specify a directory,  or  a  search  list  of
     directories.  For example:

     DBG> SET SOURCE [],SRC$

     The above says to first look for the source file in  the  current
     working  directory,  then  look  for it in the directory with the
     logical name SRC$.  If several versions of the file exist in  the
     specified  directory  then  the  debugger  attempts to choose the
     right one by matching the date and time  of  the  file  with  the
     information it has in the symbol table.

 Format:

     SET SOURCE[/MODULE=modname][/EDIT] dirname[,dirname...]

Additional information available:

ParametersQualifiers

Parameters

 dirname

     Specifies one or more  file-specification  fields  to  insert  in
     place   of   the   corresponding   field(s)   in  the  full  file
     specification of the original (at compile time) source file(s).

     Dirname may consist of one, several,  or  all  of  the  following
     fields  in  the  full file specification, which has the following
     format:

       node::device:[directory]file-name.file-type;version-number

     Typically, the reason for using SET SOURCE is that the  file  has
     been copied to another directory, and in this case you would just
     specify the [directory] portion of the full file spec.

Qualifiers

Additional information available:

/MODULE/EDIT

/MODULE=modname
     Specifies that the indicated directory search list is to be  used
     in locating source files only for the specified module.

/EDIT
     Specifies that the indicated directory search list is to be  used
     only for the EDIT command.

STEP

     The SET  STEP  command  establishes  default  qualifiers  (/LINE,
     /INTO, and so on) for subsequent STEP commands.

 Format:

       SET STEP step-default[,...]

     The parameters that you specify in the SET STEP command have  the
     same names as the STEP command qualifiers.

     You can override the current STEP defaults for the duration of  a
     single STEP command by specifying other qualifiers.  Use the SHOW
     STEP command to identify the current STEP defaults.

     If you invoke screen mode with the keypad-key  sequence  PF1-PF3,
     the  command  SET  STEP  NOSOURCE  is  entered in addition to the
     command SET MODE SCREEN.  Therefore, any display of  source  code
     in  output  and DO displays that would result from a STEP command
     or from a breakpoint, tracepoint, or watchpoint  being  triggered
     is suppressed, to eliminate redundancy with the source display.

Additional information available:

BRANCHCALLEXCEPTIONINSTRUCTIONINTO
JSBLINENOJSBNOSHARENOSILENTNOSOURCENOSYSTEM
OVERRETURNSHARESILENTSOURCESYSTEM

ParametersExamples

Parameters

 Step-default

     The following parameters affect where the STEP  command  suspends
     execution after a step:

       SET STEP BRANCH
       SET STEP CALL
       SET STEP EXCEPTION
       SET STEP INSTRUCTION
       SET STEP INSTRUCTION=(opcode-list)
       SET STEP LINE
       SET STEP RETURN

     The following parameters affect what output is seen when  a  STEP
     command is executed:

       SET STEP [NO]SILENT
       SET STEP [NO]SOURCE

     The following parameters affect what happens at a routine call:

       SET STEP INTO
       SET STEP [NO]JSB
       SET STEP OVER
       SET STEP [NO]SHARE
       SET STEP [NO]SYSTEM

BRANCH

     Subsequent STEP commands are treated as STEP/BRANCH (step to  the
     next branch instruction).

CALL

     Subsequent STEP commands are treated as STEP/CALL  (step  to  the
     next call instruction).

EXCEPTION

     Subsequent STEP commands are treated as STEP/EXCEPTION  (step  to
     the next exception condition).

INSTRUCTION

     Subsequent STEP commands are treated as STEP/INSTRUCTION (step to
     the  next  instruction).   You  can  also  specify  one  or  more
     instructions (INSTRUCTION=(opcode-  list)).   The  debugger  then
     steps to the next instruction that is in the specified list.

INTO

     Subsequent STEP commands are  treated  as  STEP/INTO  (step  into
     called   routines)   rather  than  STEP/OVER  (step  over  called
     routines).  When INTO is in effect, you can qualify the types  of
     routines  to  step  into  by means of the [NO]JSB, [NO]SHARE, and
     [NO]SYSTEM   parameters,   or   by   using   the    STEP/[NO]JSB,
     STEP/[NO]SHARE,     and     STEP/[NO]SYSTEM     command/qualifier
     combinations (the latter three take effect only for the immediate
     STEP command).

JSB

     If INTO is in effect, subsequent STEP  commands  are  treated  as
     STEP/INTO/JSB  (step into routines called by a JSB instruction as
     well as those called by a CALL instruction).  This is the default
     for all languages except DIBOL.

LINE

     Subsequent STEP commands are treated as STEP/LINE  (step  to  the
     next line).  This is the default for all languages.

NOJSB

     If INTO is in effect, subsequent STEP  commands  are  treated  as
     STEP/INTO/NOJSB  (step over routines called by a JSB instruction,
     but step into routines called by a CALL  instruction).   This  is
     the default for DIBOL.

NOSHARE

     If INTO is in effect, subsequent STEP  commands  are  treated  as
     STEP/INTO/NOSHARE (step over called routines in shareable images,
     but step into other routines).

NOSILENT

     Subsequent STEP commands are treated as  STEP/NOSILENT  (after  a
     step,  display  the "stepped to .  .  .  " message).  This is the
     default.

NOSOURCE

     Subsequent STEP commands are treated as  STEP/NOSOURCE  (after  a
     step,  do  not display the source line for the current location).
     Also, subsequent SET BREAK, SET TRACE, and SET WATCH commands are
     treated  as  SET  BREAK/NOSOURCE,  SET  TRACE/NOSOURCE,  and  SET
     WATCH/NOSOURCE, respectively (at  a  breakpoint,  tracepoint,  or
     watchpoint,  do  not  display  the  source  line  for the current
     location).

NOSYSTEM

     If INTO is in effect, subsequent STEP  commands  are  treated  as
     STEP/INTO/NOSYSTEM  (step  over  called routines in system space,
     but step into other routines).

OVER

     Subsequent STEP commands are treated as STEP/OVER (step over  all
     called   routines)   rather  than  STEP/INTO  (step  into  called
     routines).  SET STEP OVER is the default.

RETURN

     Subsequent STEP commands are treated as STEP/RETURN (step to  the
     RET  instruction  of  the  routine that is currently executing --
     that is, up to the point just prior to transferring control  back
     to the calling routine).

SHARE

     If INTO is in effect, subsequent STEP  commands  are  treated  as
     STEP/INTO/SHARE (step into called routines in shareable images as
     well as into other called routines).  This is the default.

SILENT

     Subsequent STEP commands are  treated  as  STEP/SILENT  (after  a
     step,  do  not  display the "stepped to .  .  .  " message or the
     source line for the current location).

SOURCE

     Subsequent STEP commands are  treated  as  STEP/SOURCE  (after  a
     step,  display  the source line for the current location).  Also,
     subsequent SET BREAK, SET  TRACE,  and  SET  WATCH  commands  are
     treated   as   SET   BREAK/SOURCE,   SET  TRACE/SOURCE,  and  SET
     WATCH/SOURCE,  respectively  (at  a  breakpoint,  tracepoint,  or
     watchpoint,  display  the  source line for the current location).
     This is the default.

SYSTEM

     If INTO is in effect, subsequent STEP  commands  are  treated  as
     STEP/INTO/SYSTEM  (step  into called routines in system space (P1
     space) as well as into  other  called  routines).   This  is  the
     default.

Examples

     1   DBG> SET STEP INSTRUCTION,NOSOURCE

     This command causes the debugger to execute the  program  to  the
     next  instruction  when  a  STEP  command  is entered, and to not
     display lines of source code with each STEP command.

     2   DBG> SET STEP LINE,INTO,NOSYSTEM,NOSHARE

     This command causes the debugger to execute the  program  to  the
     next line when a STEP command is entered, and to step into called
     routines in user space only.  The debugger steps over routines in
     system space and in shareable images.

TASK

     (Only valid for ADA multitasking programs).

     Modifies certain characteristics of tasks in your program.  Using
     this  command,  you  can  change a task's priority, put a task on
     hold, switch to a different active task, make a task  visible  to
     the debugger, cause a task to abort, or change the time all tasks
     are given to execute.

     For those commands which operate on individual tasks,  the  tasks
     to modify can be specified by taskname parameters and/or by "task
     selection qualifiers".  If neither of these means are  used,  the
     task  defaults  to  the  "visible task", %VISIBLE_TASK.  (See SET
     TASK/VISIBLE and SET TASK/ACTIVE).

 Format:
      SET TASK [/qualifier...]  [taskname [,taskname...] ]

Additional information available:

ParametersSelection QualifiersAttribute QualifiersExamples

Parameters

 taskname

     A taskname parameter may be a pathname which  designates  a  task
     declared in your program, for example, MY_MAIN\PROG\MONITOR.

     A taskname parameter may also be a task ID or pseudo taskname.  A
     task  ID is a unique number that is associated with a task at the
     time the task is created.  The debugger syntax for  specifying  a
     task  ID  is  "%TASK n", where "n" is a positive decimal integer.
     You can see what task IDs  are  assigned  to  currently  existing
     tasks by typing SHOW TASK/ALL.

     A pseudo taskname is one of the  built-in  symbols  %ACTIVE_TASK,
     %CALLER_TASK,    %NEXT_TASK,   or   %VISIBLE_TASK.    Type   HELP
     Built_in_Symbols for more information on these.

     The default taskname parameter is %VISIBLE_TASK.

Selection Qualifiers

     There is only one task selection qualifier, the  /ALL  qualifier.
     It cannot be used in combination with taskname parameters.

Additional information available:

/ALL

/ALL
     Selects all tasks that currently exist  in  your  program  to  be
     modified  as  specified  by the other qualifiers given.  Taskname
     parameters are not permitted.

Attribute Qualifiers

     These  qualifiers  determine  what  task  attributes  are  to  be
     modified.   If no task attribute qualifer is given, the qualifier
     /VISIBLE is assumed by default.

Additional information available:

/ABORT/ACTIVE/HOLD/PRIORITY/RESTORE/TIME_SLICE
/VISIBLE

/ABORT
     Forces an ABORT of the selected tasks.

/ACTIVE
     Causes the task given by the taskname  parameter  to  become  the
     "active  task"  (type  HELP  Built_in_Symbols %ACTIVE_TASK).  The
     active task is that task which  executes  instructions  when  the
     debugger  is  left  (as  when you type GO, STEP, or CALL).  It is
     marked with a '*' in the SHOW TASK display.

     The SET TASK/ACTIVE command allows you to force a  "task  switch"
     to the named task without leaving the debugger.

     In addition to making the named task become the active task, this
     command  also  makes  it  become  the  visible task, which is the
     default task assumed by other debugging commands.

     This qualifier requires exactly one taskname  parameter  and  the
     named task must be in either the READY or the RUN state.

/HOLD
 /HOLD
 /NOHOLD

     Controls whether or not the selected task(s) is allowed  to  make
     the  transition  into  the  RUN  state (that is become the active
     task).

     Putting a task on hold restricts the state transitions  the  task
     can  make once the program is subsequently allowed to execute.  A
     task that is already in the RUNNING state (the active  task)  and
     is then put on hold can continue to execute as long as it remains
     in the RUNNING state.  If the task leaves the RUNNING state while
     on  hold,  or  is  put  on hold while in another state, it cannot
     enter the RUNNING state until the hold is removed or until it  is
     made active with the SET TASK/ACTIVE command.

/PRIORITY = n
     Causes the selected task(s) to have its priority  changed  to  n,
     where  n  is  a decimal integer from 0 to 15 inclusive.  (VAX Ada
     specifies subtype PRIORITY to be INTEGER range 0..15).

/RESTORE
     Causes  the  selected  task(s)  to  have  its  natural   priority
     restored.

     This allows you to undo the effect of SET TASK/PRIORITY,  without
     the  need  to  remember  the task's natural priority.  The task's
     natural priority is the value given by the pragma PRIORITY in the
     task specification.

/TIME_SLICE = t
     Change the current  setting  of  the  value  of  the  Ada  pragma
     TIME_SLICE to t, where t is given as a fixed point decimal number
     of seconds.

     This is  the  time  used  by  the  Ada  multitasking  system  for
     round-robin  scheduling.   (See the command SET TASK/TIME_SLICE).
     The task list and task selection qualifiers must be omitted.

/VISIBLE
     Causes the task given by the taskname  parameter  to  become  the
     "visible task" (type HELP Built_in_Symbols %VISIBLE_TASK).

     The visible  task  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.

     The task whose execution  entered  the  debugger  is  called  the
     active task.  Each time the debugger is entered, the visible task
     and the active task are one and the same.  Using this  qualifier,
     you  can  make  the  visible task be a task other than the active
     task.

     This qualifier requires exactly one taskname parameter.

Examples

 SET TASK/PRI=3 X,Y

     Set the priority of tasks X and Y to 3.

 SET TASK/RESTORE X

     Restore the priority of task X.

 SET TASK/ALL/HOLD

     Put all tasks on hold.

 SET TASK/ALL/NOHOLD

     Remove hold status from all tasks that are currently held.

 SET TASK/VISIBLE X

     Make task X be the default visible task.

 SET TASK/ACTIVE %TASK 3

     Switch from the currently active task to task 3 and remain in the
     debugger.

TERMINAL

     The debugger obtains the size of your  terminal  when  you  begin
     your debugging session, and uses this size information (width and
     height) when formatting output.  You  may  change  your  terminal
     size during a debugging session with the SET TERMINAL command.

     This command adjusts all  the  predefined  windows  for  the  new
     screen  size.  (For example, H1 changes size to remain at the top
     half of the new screen.)

     This command also adjusts screen displays.  Those  displays  that
     are  marked  as  DYNAMIC  (See  HELP  [SET]  DISPLAY/DYNAMIC) are
     adjusted just like all the  windows.   Those  displays  that  are
     marked NODYNAMIC are not be affected.

Additional information available:

ExamplesQualifiers

Examples

     DBG> SET TERM/WIDTH:132

     ! Or on a VAXstation...
     DBG> SET TERM/PAGE=55/WIDTH=155


Qualifiers

Additional information available:

/PAGE/WIDTH

/PAGE
     Sets the terminal page size (that is, the number of lines on  the
     screen).

 Format:

     SET TERMINAL/PAGE:n

     This qualifier specifies that the terminal is now  n  rows  long.
     "n"  may  have  any  value between 18 and 100.  This qualifier is
     most commonly used on a VAXstation.

/WIDTH
     Sets the terminal screen width.

 Format:

     SET TERMINAL/WIDTH:n

     This qualifier specifies that the terminal is now n columns wide.
     Typically  n is either 80 or 132 on VT100 type terminals, but may
     have any value  between  20  and  255.   (these  sizes  are  most
     commonly used on a VAXstation.)

TRACE

     Establishes a tracepoint at the location denoted  by  an  address
     expression,  at  instructions  of  a  particular class, or at the
     occurrence of specified events.

 Format:

       SET TRACE[/qualifiers]
           [address-expression[,...]]
           [ WHEN (conditional-expression)]
           [ DO   (command[;...]]

     When a tracepoint is triggered, the debugger takes the  following
     action:

     1.  Suspends program execution at the tracepoint location.

     2.  If /AFTER was specified when the tracepoint was  set,  checks
         the  AFTER  count.  If the specified number of counts has not
         been reached, execution is resumed and the debugger does  not
         perform the remaining steps.

     3.  Evaluates the  expression  in  a  WHEN  clause,  if  one  was
         specified  when  the tracepoint was set.  If the value of the
         expression is FALSE, execution is resumed  and  the  debugger
         does not perform the remaining steps.

     4.  Reports that execution has reached the tracepoint location by
         issuing a "trace ..." message, unless /SILENT was specified.

     5.  Displays  the  line  of  source  code  corresponding  to  the
         tracepoint,  unless  /NOSOURCE  or /SILENT was specified when
         the breakpoint was set, or  SET  STEP  NOSOURCE  was  entered
         previously.

     6.  Executes the commands in a DO clause, if  one  was  specified
         when the tracepoint was set.

     7.  Resumes execution.


     You set a tracepoint at a particular location in your program  by
     specifying an address expression with the SET TRACE command.  You
     set  a  tracepoint  on  consecutive  source  lines,  classes   of
     instructions,  or  events  by specifying a qualifier with the SET
     TRACE command.  Generally, you must  specify  either  an  address
     expression  or  a qualifier, but not both.  The only exception is
     with the /EVENT qualifier, which requires  that  you  specify  an
     event  name  keyword  and  permits you also to specify an address
     expression for certain event names.

     If you set a  tracepoint  at  a  location  currently  used  as  a
     breakpoint,   the   breakpoint   is  canceled  in  favor  of  the
     tracepoint, and vice versa.

     Tracepoints may be user  defined  or  predefined.   User  defined
     tracepoints  are those that you set explicitly with the SET TRACE
     command.  Predefined tracepoints, which depend  on  the  type  of
     program you are debugging (for example, Ada or multiprocess), are
     established automatically when you invoke the debugger.  Use  the
     SHOW TRACE command to identify all tracepoints that are currently
     set.  Any predefined tracepoints are identified as such.

     User defined and predefined  tracepoints  are  set  and  canceled
     independently.   For example, a location or event may have both a
     user defined and a predefined  tracepoint.   Canceling  the  user
     defined tracepoint does not affect the predefined tracepoint, and
     conversely.

Additional information available:

ExamplesParametersQualifiers

Examples

     1   DBG> SET TRACE SUB3

     This command causes the debugger to trace the  start  of  routine
     SUB3 when that routine is executed.

     2   DBG> SET TRACE/BRANCH/CALL

     This  command  causes  the  debugger  to   trace   every   BRANCH
     instruction and every CALL instruction encountered during program
     execution.

     3   DBG> SET TRACE/LINE/INTO/NOSHARE/NOSYSTEM

     This command causes the debugger to  trace  the  start  of  every
     source  line,  including lines in called routines (/INTO) but not
     in  shareable  image  routines  (/NOSHARE)  or  system   routines
     (/NOSYSTEM).

     4   DBG> SET TRACE/NOSOURCE TEST5\%LINE 14 WHEN (X .NE. 2) DO (EX Y)

     This command causes the debugger to trace line 14 of module TEST5
     when X is not equal to 2.  At the tracepoint, the command EXAMINE
     Y is issued.  The /NOSOURCE qualifier suppresses the  display  of
     source code at the tracepoint.

     5   DBG> SET TRACE/INSTRUCTION WHEN (X .NE. 0)

     This command causes the debugger to trace when X is not equal  to
     0.   The  condition  is  tested  at  each instruction encountered
     during execution.

     6   DBG> SET TRACE/SILENT SUB2 DO (SET WATCH K)

     This SET TRACE command causes the debugger to trace the start  of
     routine  SUB2 during execution.  At the tracepoint, the DO clause
     sets a watchpoint on variable K.  The /SILENT  qualifier  on  the
     SET  TRACE  command  suppresses the "trace .  .  .  " message and
     the display of source code at the tracepoint.  This example shows
     a convenient way of setting a watchpoint on a nonstatic (stack or
     register) variable.  A nonstatic variable is  defined  only  when
     its  defining routine (SUB2, in this case) is active (on the call
     stack).

     7   DBG> SET TRACE/RETURN ROUT4 DO (EXAMINE X)

     This SET TRACE command causes  the  debugger  to  trace  the  RET
     instruction  of  routine  ROUT4  (that  is, just before execution
     returns to the calling  routine).   At  the  tracepoint,  the  DO
     clause  issues  the  command  EXAMINE  X.   This  example shows a
     convenient way of obtaining the value  of  a  nonstatic  variable
     just before execution leaves that variable's defining routine.

     8   DBG> SET TRACE/EVENT=TERMINATED

     This command causes the debugger to trace when an Ada task  makes
     a transition to the TERMINATED state.

Parameters

 address-expression

     Specifies an address expression (a program location) at  which  a
     tracepoint  is  to  be  set.  With high- level languages, this is
     typically a line number, a routine name,  or  a  label,  and  may
     include  a  path  name  to  specify  the  entity  uniquely.  More
     generally, an address expression may also  be  a  virtual  memory
     address  or  a  register and may be composed of numbers (offsets)
     and symbols, as well as  one  or  more  operators,  operands,  or
     delimiters.

     Do not specify the  asterisk  wildcard  character  (*).   Do  not
     specify  an  address expression with /ACTIVATING, /BRANCH, /CALL,
     /EXCEPTION,  /INSTRUCTION[=(opcode-  list)],   /INTO,   /[NO]JSB,
     /LINE,  /OVER,  /[NO]SHARE,  /[NO]SYSTEM,  or  /TERMINATING.  The
     /MODIFY and /RETURN qualifiers are used with  specific  kinds  of
     address expressions.

     If you specify a virtual memory address or an address  expression
     whose  value  is not a symbolic location, check (with the EXAMINE
     command) that an instruction  actually  begins  at  the  byte  of
     memory  so  indicated.   If an instruction does not begin at this
     byte, a run- time error may occur when an  instruction  including
     that  byte  is executed.  When you set a tracepoint by specifying
     an address expression whose value is not a symbolic location, the
     debugger  does  not  verify that the location specified marks the
     beginning of an instruction.  CALLS and CALLG routines start with
     an entry mask.

 command

     Specifies a debugger command that is to be executed  as  part  of
     the DO clause when trace action is taken.

 conditional-expression

     Specifies a conditional expression in the currently set  language
     that   is   to   be  evaluated  whenever  execution  reaches  the
     tracepoint.  If the expression is TRUE, trace action occurs,  and
     the  debugger reports that a tracepoint has been reached.  If the
     expression is FALSE, trace action does not occur.  In this  case,
     a  report  is not issued, the commands specified by the DO clause
     are not executed, and program execution is continued.

Qualifiers

     The qualifiers can be grouped as follows.

     The /LINE qualifier sets a tracepoint  on  each  line  of  source
     code.

     The  following  qualifiers  set   tracepoints   on   classes   of
     instructions.  Note that use of these qualifiers and of the /LINE
     qualifier causes the debugger to trace every instruction of  your
     program   as  it  executes  and  thus  significantly  slows  down
     execution:          /BRANCH,         /CALL,         /INSTRUCTION,
     /INSTRUCTION=(opcode-list), /RETURN.

     The following qualifiers set tracepoints on  classes  of  events:
     /ACTIVATING, /EVENT=event-name, /EXCEPTION, /TERMINATING.

     The following qualifiers affect what happens at a  routine  call:
     /INTO, /[NO]JSB, /OVER, /[NO]SHARE, /[NO]SYSTEM.

     The following qualifiers affect what output is displayed  when  a
     tracepoint is reached:  /[NO]SILENT, /[NO]SOURCE.

     The following  qualifiers  affect  the  timing  and  duration  of
     tracepoints:  /AFTER:n, /TEMPORARY.

     The /MODIFY qualifier is  used  to  monitor  changes  at  program
     locations (typically changes in the values of variables).

Additional information available:

/ACTIVATING/AFTER:n/BRANCH/CALL/EVENT/EXCEPTION
/INSTRUCTION/INSTRUCTION/INTO/JSB/LINE
/MODIFY/NOJSB/NOSHARE/NOSILENT/NOSOURCE/NOSYSTEM
/OVER/RETURN/SHARE/SILENT/SOURCE/SYSTEM/TEMPORARY
/TERMINATING

/ACTIVATING
     Note:   This  qualifier  applies  to  a  multiprocess   debugging
     configuration (when DBG$PROCESS has the value MULTIPROCESS).

     Causes the debugger to trace  when  a  new  process  comes  under
     debugger  control.  This is the default behavior.  Do not specify
     an address expression with /ACTIVATING.  See also /TERMINATING.

/AFTER:n
     Specifies that trace action not be taken until the nth  time  the
     designated  tracepoint  is  encountered (n is a decimal integer).
     Thereafter, the tracepoint occurs every time  it  is  encountered
     provided  that  conditions  in the WHEN clause (if specified) are
     TRUE.  The command SET TRACE/AFTER:1 has the same effect  as  the
     SET TRACE command.

/BRANCH
     Causes the debugger to trace every branch instruction encountered
     during program execution (including BEQL, BGTR, BLEQ, BGEQ, BLSS,
     BGTRU, BLEQU, BVC, BVS, BGEQU, BLSSU, BRB, BRW,  JMP,  BBS,  BBC,
     BBSS,  BBCS,  BBSC,  BBCC,  BBSSI, BBCCI, BLBS, BLBC, ACBB, ACBW,
     ACBL, ACBF, ACBD, ACBG, ACBH,  AOBLEQ,  AOBLSS,  SOBGEQ,  SOBGTR,
     CASEB,  CASEW, CASEL).  Do not specify an address expression with
     /BRANCH.  See also /INTO, /OVER.

/CALL
     Causes the debugger to trace every call  instruction  encountered
     during program execution (including the CALLS, CALLG, BSBW, BSBB,
     JSB, RSB, and RET  instructions).   Do  not  specify  an  address
     expression with /CALL.  See also /INTO, /OVER.

/EVENT=event-name
     Note:  This qualifier applies only to Ada and SCAN.  See the  VAX
     Ada and VAX SCAN documentation for complete information.

     Causes the debugger to trace the specified event (if  that  event
     is  defined and detected by the run-time system).  If you specify
     an address expression with /EVENT, causes the debugger  to  trace
     whenever  the specified event occurs for that address expression.
     Event names depend on the run-time facility.  You can display the
     event  names  associated  with  the  current run-time facility by
     entering the SHOW EVENT_FACILITY command.  Note that  you  cannot
     specify an address expression with certain event names.

/EXCEPTION
     Causes the debugger to trace every exception  that  is  signaled.
     The  trace  action  occurs  before  any  user-  written exception
     handlers are invoked.  Do not specify an address expression  with
     /EXCEPTION.

     As a result of  a  SET  TRACE/EXCEPTION  command,  whenever  your
     program  generates  an  exception condition, the debugger reports
     the  exception  condition  and  resignals  the  exception,   thus
     allowing any user-declared exception handler to execute.

/INSTRUCTION
     Causes the debugger to trace every instruction executed.  Do  not
     specify an address expression with /INSTRUCTION.  See also /INTO,
     /OVER.

/INSTRUCTION=(opcode-list)
     Causes the debugger to trace every instruction whose opcode is in
     the   list.    Do   not   specify   an  address  expression  with
     /INSTRUCTION.  See also /INTO, /OVER.

/INTO
     Applies  only   to   tracepoints   set   with   /BRANCH,   /CALL,
     /INSTRUCTION[=(opcode-list)],  or /LINE; that is, when an address
     expression is not explicitly specified.   When  used  with  those
     qualifiers,  causes  the  debugger  to trace the specified points
     within called routines (as  well  as  within  the  routine  where
     execution is currently suspended).  /INTO is the default behavior
     and is the opposite of /OVER.

     When using /INTO, you can further qualify the trace  action  with
     the /[NO]JSB, /[NO]SHARE, and /[NO]SYSTEM qualifiers.

/JSB
     Qualifies /INTO.  Use  /JSB  only  with  /INTO  and  one  of  the
     following          qualifiers:           /BRANCH,          /CALL,
     /INSTRUCTION[=(opcode-list)],  or  /LINE.    /JSB   permits   the
     debugger  to  set  tracepoints within routines that are called by
     the JSB or  CALL  instruction.   /JSB  is  the  default  for  all
     languages  except  DIBOL.   Do  not specify an address expression
     with /[NO]JSB.

/LINE
     Causes the debugger to trace the start of each new line.  Do  not
     specify an address expression with /LINE.  See also /INTO, /OVER.

/MODIFY
     Causes  the  debugger  to  report  a   tracepoint   whenever   an
     instruction  writes  to  and  modifies  the  value  of a location
     indicated  by  a  specified  address  expression.   The   address
     expression is typically a variable name.

     The command SET TRACE/MODIFY X is equivalent to the  command  SET
     WATCH  X  DO(GO).   SET  TRACE/MODIFY  operates  under  the  same
     restrictions as SET WATCH.

     If you specify an absolute address for  the  address  expression,
     the  debugger  may  not  be  able to associate the address with a
     particular data object.   In  this  case,  the  debugger  uses  a
     default  length of 4 bytes.  You can change this length, however,
     by setting the type to either WORD (SET TYPE WORD, which  changes
     the  default  length  to  2  bytes) or BYTE (SET TYPE BYTE, which
     changes the  default  length  to  1  byte).   SET  TYPE  LONGWORD
     restores the default length of 4 bytes.

/NOJSB
     Qualifies /INTO.  Use /NOJSB only  with  /INTO  and  one  of  the
     following          qualifiers:           /BRANCH,          /CALL,
     /INSTRUCTION[=(opcode-list)], or /LINE.

     /NOJSB specifies that tracepoints  not  be  set  within  routines
     called  by  JSB  instructions.   /NOJSB  is the default for DIBOL
     programs.  In DIBOL, user- written routines  are  called  by  the
     CALL  instruction  and DIBOL run-time library routines are called
     by the JSB instruction.  Do not  specify  an  address  expression
     with /NOJSB.

/NOSHARE
     Qualifies /INTO.  Use /NOSHARE only with /INTO  and  one  of  the
     following          qualifiers:           /BRANCH,          /CALL,
     /INSTRUCTION[=(opcode-list)], or /LINE.

     /NOSHARE specifies that tracepoints not be set  within  shareable
     images.  Do not specify an address expression with /[NO]SHARE.

/NOSILENT
     Specifies that the "trace .  .  .  " message is displayed at  the
     tracepoint.  This is the default.

/NOSOURCE
     Specifies that the source line for the current  location  is  not
     displayed at the tracepoint.  See also SET STEP [NO]SOURCE.

/NOSYSTEM
     Qualifies /INTO.  Use /NOSYSTEM only with /INTO and  one  of  the
     following          qualifiers:           /BRANCH,          /CALL,
     /INSTRUCTION[=(opcode-list)], or /LINE.

     /NOSYSTEM specifies that tracepoints not  be  set  within  system
     routines  (P1  space).  Do not specify an address expression with
     /SYSTEM.

/OVER
     Applies  only   to   tracepoints   set   with   /BRANCH,   /CALL,
     /INSTRUCTION[=(opcode-list)],  or /LINE; that is, when an address
     expression is not explicitly specified.   When  used  with  those
     qualifiers,  causes  the  debugger  to trace the specified points
     only within the routine where execution  is  currently  suspended
     (not  within  called  routines).   /OVER is the opposite of /INTO
     (the default behavior).

/RETURN
     Causes the debugger to trace the RET (return) instruction of  the
     routine  associated  with the specified address expression (which
     may be a routine name, line number, and so on).   This  qualifier
     can  only  be  applied  to  routines called with a CALLS or CALLG
     instruction; it cannot be used with JSB  routines.   Tracing  the
     RET instruction enables you to inspect the local environment (for
     example, obtain the values of local  variables)  before  the  RET
     instruction deletes the routine's call frame from the call stack.

     Causes the debugger to trace the RETURN (RET) instruction of  the
     specified  routine.   This  qualifier  can  only  be  applied  to
     routines called with a CALLS or CALLG instruction; it  cannot  be
     used with JSB routines.

     For  this  qualifier,  the  address-expression  parameter  is  an
     instruction  address  within  a  CALLS  or CALLG routine.  It may
     simply be a routine name, in which case it specifies the  routine
     start address.  However, you can also specify another location in
     a routine, so you can see only those returns that are taken after
     a certain code path is followed.

     A SET TRACE/RETURN command cancels a previous SET  TRACE  command
     if the same address expresion is specified.

/SHARE
     Qualifies /INTO.  Use /SHARE only  with  /INTO  and  one  of  the
     following          qualifiers:           /BRANCH,          /CALL,
     /INSTRUCTION[=(opcode-list)], or /LINE.

     /SHARE (default) permits the debugger to set  tracepoints  within
     shareable  image  routines  as  well  as  other routines.  Do not
     specify an address expression with /[NO]SHARE.

/SILENT
     Specifies that the "trace .  .  .  " message and the source  line
     for  the  current  location  are not displayed at the tracepoint.
     /SILENT overrides /SOURCE.

/SOURCE
     Specifies that the  source  line  for  the  current  location  is
     displayed  at the tracepoint.  This is the default.  See also SET
     STEP [NO]SOURCE.

/SYSTEM
     Qualifies /INTO.  Use /SYSTEM only with  /INTO  and  one  of  the
     following          qualifiers:           /BRANCH,          /CALL,
     /INSTRUCTION[=(opcode-list)], or /LINE.

     /SYSTEM (default) permits the debugger to set tracepoints  within
     system  routines  (P1  space)  as well as other routines.  Do not
     specify an address expression with /SYSTEM.

/TEMPORARY
     Causes the tracepoint to disappear after  it  is  triggered  (the
     tracepoint does not remain permanently set).

/TERMINATING
     Causes the debugger to trace when a  process  performs  an  image
     exit.   This  is  the  default  behavior.  Note that the debugger
     always gains control and displays its prompt when the last  image
     of  a  single-process  or  multiprocess  program  exits.   Do not
     specify  an  address  expression  with  /TERMINATING.   See  also
     /ACTIVATING.

TYPE

     Establishes the  default  type  to  be  associated  with  untyped
     program locations and, when the /OVERRIDE qualifier is specified,
     the type to be associated with both untyped program locations and
     program locations that have compiler-generated types.

 Format:

     SET TYPE [/qualifier] type-keyword

Additional information available:

ASCICASCIDASCIWASCIZBYTED_FLOATDATE_TIME
FLOATG_FLOATH_FLOATINSTRUCTIONLONGOCTAWORD
QUADWORDWORD

ParametersASCII:nPACKED:nTYPE=(t)QualifiersExamples

Parameters

 type-keyword

     May be one of the following debugger types:

     o  BYTE -- Type byte integer (length 1 byte).

     o  WORD -- Type word integer (length 2 bytes).

     o  LONGWORD -- Type longword integer (length 4 bytes).

     o  QUADWORD -- Type quadword integer (length 8 bytes).

     o  OCTAWORD -- Type octaword integer (length 16 bytes).

     o  PACKED:n -- Type packed decimal (length n nibbles).

     o  ASCII:n --  Type  ASCII  character  (length  n  bytes).   Each
        character  occupies one byte of memory.  If you do not specify
        a value for n, the debugger assumes  a  default  length  of  4
        bytes.  The value n is interpreted in decimal radix.

     o  ASCIC -- Counted ascii string (byte count).

     o  ASCIW -- Counted ascii string (word count).

     o  ASCIZ -- Zero-terminated ascii string.

     o  DATE_TIME -- Type date-time (internal VMS representation).

     o  INSTRUCTION -- Type  instruction  whose  length  is  variable,
        depending  on  the number of instruction operands and the kind
        of addressing modes used.

     o  FLOAT -- F_floating type (length 4  bytes).   Values  of  type
        F_floating  may  range  from  .29*10**-38  to  1.7*10**38 with
        approximately 7 decimal digits of precision.

     o  D_FLOAT -- D_floating type (length 8 bytes).  Values  of  type
        D_floating  may  range  from  .29*10**-38  to  1.7*10**38 with
        approximately 16 decimal digits of precision.

     o  G_FLOAT -- G_floating type (length 8 bytes).  Values  of  type
        G_floating  may  range  from  .56*10**-308  to .9*10**308 with
        approximately 15 decimal digits of precision.

     o  H_FLOAT -- H_floating type (length 16 bytes).  Values of  type
        H_floating  may  range from .84*10**-4932 to .59*10**4932 with
        approximately 33 decimal digits of precision.

     o  TYPE=(t) -- Same type as "t", where "t" is a variable in  your
        program.

ASCIC

     Sets the default type to counted ASCII.

ASCID

     Sets the default type to ASCID.

ASCII:n

     Sets the default type to ASCII strings of length n.

ASCIW

     Sets the default type to word-counted ASCII.

ASCIZ

     Sets the default type to zero-terminated ASCII.

BYTE

     Sets the default type to byte-integer.

D_FLOAT

     Sets the default type to D_Floating.

DATE_TIME

     Sets  the   default   type   to   be   VMS   internal   date/time
     representation.

FLOAT

     Sets the default type to single-precision floating.

G_FLOAT

     Sets the default type to G_Floating.

H_FLOAT

     Sets the default type to H_Floating.

INSTRUCTION

     Sets the default type to instruction.

LONG

     Sets the default type to LONG.

OCTAWORD

     Sets the default type to OCTAWORD.

PACKED:n

     Sets the default type to PACKED with length n.

QUADWORD

     Sets the default type to QUADWORD.

TYPE=(t)

     Sets the default type to be the same type as "t", where "t" is  a
     variable in your program.

WORD

     Sets the default type to WORD.

Qualifiers

Additional information available:

/OVERRIDE

/OVERRIDE
     Indicates that the specified  type  be  associated  with  untyped
     program   locations   and   with   those   locations   that  have
     compiler-generated types.

Examples

     DBG> SET TYPE ASCII
     ! Now untyped locations get displayed as ASCII strings.
     DBG> EXAM 1000 ! Location 1000 has no compiler-generated type.
     1000: "...."
     DBG> SHOW SYM/TYPE X
     data FOO\X
         type: floating point (F_FLOAT, size 4 bytes)
     DBG> EXAMINE X
     FOO\X:     1.2    ! X does have a type (float), so it is
     displayed
                    ! according to that type.
     DBG> SET TYPE/OVERR ASCII
     DBG> EXAMINE X
     FOO\X: "...."  ! Now X is displayed as ASCII because of the
                    ! /OVERRIDE qualifier on the SET TYPE.

WATCH

     Establishes a watchpoint at the location denoted  by  an  address
     expression.

 Format:

       SET WATCH [/qualifiers]
           address-expression [,...]
           [ WHEN (conditional-expression)]
           [ DO   (command[;...])]

     Whenever an instruction causes  the  modification  of  a  watched
     location, the debugger takes the following action:

     1.  Suspends  program  execution  after  that   instruction   has
         completed execution.

     2.  If /AFTER was specified when the watchpoint was  set,  checks
         the  AFTER  count.  If the specified number of counts has not
         been reached, execution continues and the debugger  does  not
         perform the remaining steps.

     3.  Evaluates the  expression  in  a  WHEN  clause,  if  one  was
         specified  when  the watchpoint was set.  If the value of the
         expression is FALSE, execution  continues  and  the  debugger
         does not perform the remaining steps.

     4.  Reports that execution has reached the  watchpoint  location,
         unless /SILENT was specified.

     5.  Reports the old (unmodified) value at the watched location.

     6.  Reports the new (modified) value at the watched location.

     7.  Displays  the  line  of  source  code  where   execution   is
         suspended, unless /NOSOURCE or /SILENT was specified when the
         watchpoint  was  set,  or  SET  STEP  NOSOURCE  was   entered
         previously.

     8.  Executes the commands in a DO clause, if  one  was  specified
         when  the watchpoint was set.  If the DO clause contains a GO
         command,  execution  continues  and  the  debugger  does  not
         perform the next step.

     9.  Issues the prompt.


     For high-level language programs,  the  address  expressions  you
     specify  with the SET WATCH command are typically variable names.
     If you specify an absolute memory address that is associated with
     a  compiler-generated  type,  the debugger symbolizes the address
     and uses the  length  in  bytes  associated  with  that  type  to
     determine  the  length  in bytes of the watched location.  If you
     specify an absolute  memory  address  that  the  debugger  cannot
     associate  with a compiler-generated type, the debugger watches 4
     bytes of virtual  memory,  by  default,  beginning  at  the  byte
     identified  by  the  address  expression.   You  can  change this
     length, however, by setting the type to  either  WORD  (SET  TYPE
     WORD,  which  changes the default length to 2 bytes) or BYTE (SET
     TYPE BYTE, which changes the default length to 1 byte).  SET TYPE
     LONGWORD restores the default length of 4 bytes.

     You can set watchpoints on aggregates (that is, entire arrays  or
     records).  A watchpoint set on an array or record triggers if any
     element of the array or record changes.  Thus, you do not need to
     set   watchpoints   on   individual   array  elements  or  record
     components.  Note, however, that  you  cannot  set  an  aggregate
     watchpoint on a variant record.

Additional information available:

ExamplesGlobal Section WatchpointsParametersStatic Nonstatic Watchpoints
Qualifiers

Examples

     1   DBG> SET WATCH MAXCOUNT

     This command establishes a watchpoint on the variable MAXCOUNT.

     2   DBG> SET WATCH ARR
         DBG> GO
            .
            .
         watch of SUBR\ARR at SUBR\%LINE 12+8
           old value:
            (1):         7
            (2):         12
            (3):         3

           new value:
            (1):         7
            (2):         12
            (3):         28

         break at SUBR\%LINE 14
         DBG>

     In this example, the SET WATCH command sets a watchpoint  on  the
     three-element integer array, ARR.  Execution is then resumed with
     the GO command.  The watchpoint is triggered whenever  any  array
     element changes.  In this case the third element changed.

     3   DBG> SET TRACE/SILENT SUB2 DO (SET WATCH K)

     In this example variable K is a nonstatic variable and is defined
     only  when  its  defining  routine,  SUB2, is active (on the call
     stack).  The SET TRACE command sets a tracepoint on  SUB2.   When
     the  tracepoint is triggered during execution, the DO clause sets
     a  watchpoint  on  K.   The  watchpoint  is  then  canceled  when
     execution  returns  from  routine SUB2.  The /SILENT qualifier on
     the SET TRACE command suppresses the "trace at .  .  .  " message
     and the display of source code at the tracepoint.

     4   DBG_1> SET WATCH ARR(1)
         DBG_1> SHOW WATCH
         watchpoint of PPL3\ARR(1)
         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
         predefined trace on activation at routine PPL3
                 in %PROCESS_NUMBER 3
         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
         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]
         DBG_2>

     In this example of a global section  watchpoint,  the  SET  WATCH
     command sets a watchpoint on element 1 of array ARR.  Because ARR
     has not yet been mapped to  a  global  section,  the  SHOW  WATCH
     command  identifies  the  watchpoint  as  a  conventional  static
     watchpoint.

     After the GO command resumes execution,  ARR  is  remapped  to  a
     global  section.   The  watchpoint  is automatically treated as a
     global section watchpoint.

     Processes  2  and  3  come  under  debugger  control,  then   the
     watchpoint is triggered in process 2, interrupting execution.  At
     this point, the SHOW WATCH command confirms that  the  watchpoint
     is visible from each process.

Global Section Watchpoints

     You  can  set  watchpoints  on  variables  or  arbitrary  program
     locations  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.

     You set a global section watchpoint  just  as  you  would  set  a
     watchpoint on a static variable.  However, because of the way the
     debugger monitors global section watchpoints, note the  following
     point.    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.  When the location is subsequently mapped to a
     global  section,  the  watchpoint  is  automatically treated as a
     global section watchpoint and an informational message is issued.
     The   watchpoint  is  then  visible  from  each  process  of  the
     multiprocess program.

Parameters

 address-expression

     Specifies an address expression (a program location) at  which  a
     watchpoint  is  to  be  set.   With high-level languages, this is
     typically the name of a program variable and may include  a  path
     name  to  specify  the  variable  uniquely.   More  generally, an
     address expression may also be a  virtual  memory  address  or  a
     register and may be composed of numbers (offsets) and symbols, as
     well as one or more operators, operands, or delimiters.

     Do not specify the asterisk wildcard character (*).

 command

     Specifies a debugger command that is to be executed  as  part  of
     the DO clause when watch action is taken.

 conditional-expression

     Specifies a conditional expression in the currently set  language
     that   is   to   be  evaluated  whenever  execution  reaches  the
     watchpoint.  If the expression is TRUE, watch action occurs,  and
     the  debugger  reports  that a watchpoint has been triggered.  If
     the expression is FALSE, watch action does not  occur.   In  this
     case,  a  report  is not issued, the commands specified by the DO
     clause are not executed, and program execution is continued.

Static Nonstatic Watchpoints

     The technique for setting a watchpoint  depends  on  whether  the
     variable is static or nonstatic.  A static variable is associated
     with the same virtual memory address throughout execution of  the
     program.   You  can  always set a watchpoint on a static variable
     throughout execution.

     A nonstatic variable is allocated on the stack or in  a  register
     and  has a value only when its defining routine is active (on the
     call stack).  Therefore, you can set a watchpoint on a  nonstatic
     variable  only  when  the  PC  value  is  within the scope of the
     defining routine (including any routine called by the  definining
     routine).   The  watchpoint  is  cancelled when execution returns
     from the defining routine.

     The debugger determines whether a variable is static or nonstatic
     by checking how it is allocated.  Typically, a static variable is
     in P0  space  (0  through  3FFFFFFF,  hexadecimal);  a  nonstatic
     variable  is  in  P1  space  (40000000  through 7FFFFFFF) or in a
     register.  The debugger issues a warning if  you  try  to  set  a
     watchpoint  on  a  variable that is allocated in P1 space or in a
     register when the PC  value  is  not  within  the  scope  of  the
     defining  routine.   The  /[NO]STATIC  qualifiers  enable  you to
     override  the  default  behavior.   For  example,  if  you   have
     allocated nonstack storage in P1 space, use the /STATIC qualifier
     when setting a watchpoint on a variable that is allocated in that
     storage  area.   This  enables  the  debugger  to  use the faster
     write-protection method  of  watching  the  location  instead  of
     tracing every instruction.  Conversely, if, for example, you have
     allocated your own stack in P0 space, use the /NOSTATIC qualifier
     when setting a watchpoint on a variable that is allocated on that
     stack.  This enables the debugger to treat the  watchpoint  as  a
     nonstatic watchpoint.

     Another distinction between static and nonstatic  watchpoints  is
     speed  of  execution.   To  watch a static variable, the debugger
     write-protects the page containing the variable.  If your program
     attempts  to  write  to that page, an access violation occurs and
     the debugger  handles  the  exception,  determining  whether  the
     watched variable was modified.  Except when writing to that page,
     the program executes at normal speed.

     To  watch  a  nonstatic  variable,  the  debugger  traces   every
     instruction  in  the  variable's  defining routine and checks the
     value of the variable after each instruction has  been  executed.
     Since  this  significantly  slows  down  execution,  the debugger
     issues a message when you set a nonstatic watchpoint.  The  /INTO
     and  /OVER  qualifiers enable you to choose whether to also trace
     instructions within any routine that is called  by  the  defining
     routine or to execute the called routine at normal speed.

Qualifiers

     The qualifiers can be grouped as follows.

     The following qualifiers  affect  what  output  is  seen  when  a
     watchpoint is reached:  /[NO]SILENT, /[NO]SOURCE.

     The following  qualifiers  affect  the  timing  and  duration  of
     watchpoints:  /AFTER:n, /TEMPORARY.

     The following  qualifiers  apply  only  to  nonstatic  variables:
     /INTO, /OVER.

     The following qualifiers are  used  to  override  the  debugger's
     determination  of  whether  a  variable  is  static or nonstatic:
     /[NO]STATIC.

Additional information available:

/AFTER:n/INTO/NOSILENT/NOSOURCE/NOSTATIC/OVER
/SILENT/SOURCE/STATIC/TEMPORARY

/AFTER:n
     Specifies that watch action not be taken until the nth  time  the
     designated  watchpoint  is  encountered (n is a decimal integer).
     Thereafter, the watchpoint occurs every time  it  is  encountered
     provided  that  conditions  in  the  WHEN  clause  are TRUE.  The
     command SET WATCH/AFTER:1 has the same effect as  the  SET  WATCH
     command.

/INTO
     Specifies that the debugger is to monitor a nonstatic variable by
     tracing  instructions  not  only within the defining routine, but
     also within a routine that is called from  the  defining  routine
     (and any other such nested calls).  SET WATCH/INTO enables you to
     monitor nonstatic variables within called routines more precisely
     than  SET  WATCH/OVER;  but  the speed of execution within called
     routines is faster with SET WATCH/OVER.

/NOSILENT
     Specifies that the "watch .  .  .  " message is displayed at  the
     watchpoint.  This the default.

/NOSOURCE
     Specifies that the source line for the current  location  is  not
     displayed at the watchpoint.  See also SET STEP [NO]SOURCE.

/NOSTATIC
     Enables you to override the debugger's default  determination  of
     whether  a  specified variable (location) is static or nonstatic.
     /NOSTATIC specifies that the debugger should treat  the  variable
     as  a  nonstatic  variable, even though it may be allocated in P0
     space.  /NOSTATIC causes the debugger to monitor the location  by
     tracing  every  instruction.   Exercise  caution  when using this
     qualifier.

/OVER
     Specifies that the debugger is to monitor a nonstatic variable by
     tracing instructions only within the defining routine, not within
     a routine that is called by the defining routine.  As  a  result,
     the  debugger  executes  a  called  routine  at  normal speed and
     resumes tracing instructions only when execution returns  to  the
     defining  routine.  SET WATCH/OVER provides faster execution than
     SET WATCH/INTO; but if a  called  routine  modifies  the  watched
     variable,  execution  is  interrupted  only upon returning to the
     defining routine.  SET WATCH/OVER is the  default  behavior  when
     you set watchpoints on nonstatic variables.

/SILENT
     Specifies that the "watch .  .  .  " message and the source  line
     for  the  current  location  are not displayed at the watchpoint.
     /SILENT overrides /SOURCE.

/SOURCE
     Specifies that the  source  line  for  the  current  location  is
     displayed  at  the  watchpoint.   This  is  the default.  /SILENT
     overrides /SOURCE.  See also SET STEP [NO]SOURCE.

/STATIC
     Enables you to override the debugger's default  determination  of
     whether  a  specified variable (location) is static or nonstatic.
     /STATIC specifies that the debugger should treat the variable  as
     a  static  variable, even though it may be allocated in P1 space.
     This causes the debugger to monitor the  location  by  using  the
     faster  write-protection  method  rather  than  by  tracing every
     instruction.  Exercise caution when using this qualifier.

/TEMPORARY
     Causes the watchpoint to disappear after  it  is  triggered  (the
     watchpoint does not remain permanently set).

WINDOW

     Establishes a screen window definition.  A  screen  window  is  a
     region  on  the  terminal screen at which a screen display may be
     displayed.  A screen window definition associates a  window  name
     with  a  screen  region  specified  in terms of a beginning line,
     height (line count),  beginning  column,  width  (characters  per
     line).   The  last two values are optional and, if not specified,
     default to  column  1  and  the  current  terminal  screen  width
     respectively.   Once  defined, the name of a screen window can be
     used in DISPLAY and  SET  DISPLAY  commands  to  position  screen
     displays on the screen.

 Format:
      SET WINDOW wname AT (start-line, line_count
                          [, start-column, column-count])

Additional information available:

ParametersExamples

Parameters

 wname

     The name of the window being defined.

 start-line

     The starting line number of the window.   This  is  the  line  at
     which  the  window header line is displayed.  The top line of the
     screen is line 1.

 line-count

     The number of lines of text  in  the  window,  not  counting  the
     header  line.   Line-count  must  be at least 1.  Start-line plus
     line-count may not exceed the current screen height.

 start-column

     The starting column number of the window.  This is the column  at
     which  the first character in the window is displayed.  Note, the
     left hand border may occupy the column just to the  left  of  the
     starting  column  number.   The left most column on the screen is
     column 1.

 column-count

     The number of characters per line in  the  window.   Column-count
     must  be  at  least  1  and less than the current terminal screen
     width.  Start-column plus column-count may not exceed the current
     screen width.

Examples

     ! Make a window named ONELINE at the top of the
     ! screen that spans the entire width of the screen.
     !
     DBG> SET WINDOW ONELINE AT (1,1)

     ! Make a window named MIDDLE for the central
     ! region of the screen.
     !
     DBG> SET WINDOW MIDDLE AT (9,4,30,20)

SHOW

     The function depends on the keyword.   For  example,  SHOW  BREAK
     displays  the  current  breakpoints.   See  the the subtopics for
     details.

 Format:

     SHOW keyword [/qualifier] [parameter]

Additional information available:

ABORT_KEYASTATSIGNBREAKCALLSDEFINE
DISPLAYEDITOREVENT_FACILITYEXIT_HANDLERSIMAGE
KEYLANGUAGELOGMARGINSMAX_SOURCE_FILESMODE
MODULEOUTPUTPROCESSRADIXSCOPESEARCHSELECT
SOURCESTACKSTEPSYMBOLTASKTERMINALTRACE
TYPEWATCHWINDOW

Parameters

Parameters

 keyword

     Specifies  the  item   to   be   displayed.    Keyword   can   be
     ABORT_KEY,AST,  ATSIGN,  BREAK,  CALLS,  DEFINE, DISPLAY, EDITOR,
     EVENT_FACILITY,  EXIT_HANDLERS,  KEY,  LANGUAGE,   LOG,   MARGIN,
     MAX_SOURCE_FILES,  MODE,  MODULE,  OUTPUT, PROCESS, RADIX, SCOPE,
     SEARCH, SELECT, SOURCE,  STEP,  SYMBOL,  TASK,  TERMINAL,  TRACE,
     TYPE, WATCH, or WINDOW.

 qualifiers

     Depends on the keyword specified.

 parameters

     Depends on the keyword specified.

ABORT_KEY

     Identifies the CTRL-key sequence currently defined to  abort  the
     execution   of   a  debugger  command  or  to  interrupt  program
     execution.

     By default, the CTRL/C sequence, when entered within a  debugging
     session,   aborts   the  execution  of  a  debugger  command  and
     interrupts program execution.  The SET ABORT_KEY command  enables
     you  to  assign  the abort function to another CTRL-key sequence.
     The SHOW ABORT_ KEY  command  identifies  the  CTRL-key  sequence
     currently in effect for the abort function.

 Format:

       SHOW ABORT_KEY

Additional information available:

Example

Example

     DBG> SHOW ABORT_KEY
     Abort Command Key is CTRL_C
     DBG> SET ABORT_KEY = CTRL_P
     DBG> SHOW ABORT_KEY
     Abort Command Key is CTRL_P

     The first SHOW ABORT_KEY command  identifies  the  default  abort
     command key sequence, CTRL/C.  The command SET ABORT_KEY = CTRL_P
     assigns the abort- command function to the  CTRL/P  sequence,  as
     verified by the second SHOW ABORT_KEY command.

AST

     SHOW AST tells you whether ASTs are enabled or disabled  in  your
     program.   See  the  ENABLE AST and DISABLE AST commands for more
     details.

     SHOW AST does not  give  you  information  about  what  ASTs  are
     pending.

     Example:

     DBG> SHOW AST
     ASTs are enabled
     DBG> DISABLE AST
     ASTs were enabled, are now disabled
     DBG> SHOW AST
     ASTs are disabled

ATSIGN

     SHOW ATSIGN displays  the  default  file  specification  that  is
     applied  to  the "@file-spec" command, as previously specified by
     the SET ATSIGN command.

     Example:

     DBG> SHOW ATSIGN
     No indirect command file default in effect, using DEBUG.COM
     DBG> SET ATSIGN MYDISK:[MYDIR.DEBUG].DBG
     DBG> SHOW ATSIGN
     Indirect command file default is MYDISK:[MYDIR.DEBUG].DBG

BREAK

     Displays information about breakpoints that  are  currently  set,
     including  any options such as WHEN or DO clauses, /AFTER counts,
     and so on.

 Format:

       SHOW BREAK [/qualifier]

     By default, SHOW  BREAK  displays  information  about  both  user
     defined  and predefined breakpoints (if any).  This is equivalent
     to entering the command SHOW BREAK/USER/PREDEFINED.  User defined
     breakpoints  are  set  with  the  SET  BREAK command.  Predefined
     breakpoints are set automatically when you invoke  the  debugger,
     and they depend on the type of program you are debugging.

     If you  established  a  breakpoint  using  the  /AFTER:n  command
     qualifier  with  the  SET  BREAK  command, the SHOW BREAK command
     displays the current value of the decimal integer n, that is, the
     originally  specified  integer  value minus one for each time the
     breakpoint location was reached.  (The debugger decrements n each
     time  the  breakpoint location is reached until the value of n is
     zero, at which time the debugger takes break action.)

Additional information available:

ExamplesQualifiers

Examples

     1   DBG> SET BREAK/AFTER:3 MAIN WHEN (A .EQ. B)
         DBG> SHOW BREAK
         breakpoint at routine MAIN
            /after: 3
            WHEN (A .EQ. B)

     This SHOW BREAK command identifies the  user  defined  breakpoint
     set with the previous SET BREAK command.

     2   DBG> SHOW BREAK
         breakpoint at SUB1\LOOP
         breakpoint at MAIN\MAIN+1F
            do (EX SUB1\D ; EX/SYMBOLIC PSL; GO)
         breakpoint at routine SUB2\SUB2
            /after: 2

     The SHOW  BREAK  command  identifies  all  breakpoints  that  are
     currently  set.   This example indicates user defined breakpoints
     that  are  triggered  whenever   execution   reaches   SUB1\LOOP,
     MAIN\MAIN, and SUB2\SUB2, respectively.

     3   DBG> SHOW BREAK/PREDEFINED
         predefined breakpoint on Ada event "DEPENDENTS_EXCEPTION"
             for any value
         predefined breakpoint on Ada event "EXCEPTION_TERMINATED"
             for any value

     This command  identifies  the  predefined  breakpoints  that  are
     currently  set.   The  example  shows two predefined breakpoints,
     which are associated with Ada tasking  exception  events.   These
     breakpoints  are  set  automatically  by the debugger for all Ada
     programs and for any mixed language program that is  linked  with
     an Ada module.

Qualifiers

Additional information available:

/PREDEFINED/USER

/PREDEFINED
     Displays information about predefined breakpoints.

/USER
     Displays information about user defined breakpoints.

CALLS

     Causes the debugger to display information about the sequence  of
     currently  active  procedure calls.  This tells you where you are
     in the execution of your program.

     The optional parameter n specifies the number of call  frames  to
     be displayed.  If you do not specify the parameter n, information
     about all call frames is displayed.

 Format:

     SHOW CALLS [n]

Additional information available:

ParametersExample

Parameters

 n

     Specifies the number of call frames  that  you  wish  information
     about.   If  omitted, the debugger displays information about all
     call frames.

Example

     In the following example we  are  now  at  line  117  of  routine
     PRIMES,  which  was  called  from line 141 of routine LISTPRIMES.
     The asterisks before the module name indicate that the module  is
     set.

     DBG> SHOW CALLS
     module name     routine name      line       rel PC    abs PC
     *PRIMES          PRIME             117      00000002  000009B8
     *PRIMES          LISTPRIMES        141      0000004D  00000A29

DEFINE

     Shows what define setting has been specified by  a  previous  SET
     DEFINE  command.  (To display all defined symbols, the command is
     SHOW SYMBOL/DEFINED.)

 Format:  SHOW DEFINE

     Example:

     ! The default is DEFINE/ADDRESS
     DBG> SHOW DEFINE
     current setting is: DEFINE/ADDRESS
     DBG> SET DEFINE VALUE
     ! Treat all DEFINEs as DEFINE/VALUE
     DBG> SHOW DEFINE
     current setting is: DEFINE/VALUE

DISPLAY

     Causes the debugger to list defined screen displays.   The  name,
     maximum  size, screen window, kind, and debugger command list (if
     any) of the defined screen displays are listed.  The displays are
     listed  in  their  pasting  order  with  the display that is most
     hidden listed first.

     With no parameters, /ALL, or *, the names and attributes  of  all
     displays  are listed.  The debugger also accepts a parameter list
     of display names.  This list of names can include wildcarded  (*)
     names, in which case all matching display names are displayed.

 Format:

     SHOW DISPLAY [/qualifier[,...]] display-name

Additional information available:

ExampleParametersQualifiers

Example

     DBG> SHOW DISPLAY
     display SRC at H1, size = 64
         kind = SOURCE (EXAMINE/SOURCE .%SOURCE_SCOPE\%PC)
     display INST at H1, size = 64, removed
         kind = INSTRUCTION (EXAMINE/INSTRUCTION .0\%PC)
     display REG at RH1, size = 64, removed, kind = REGISTER
     display OUT at S45, size = 100, kind = OUTPUT
     display FOO at (10,4,24,30), size = 64, kind = OUTPUT
     display PROMPT at S6, size = 64, kind = PROGRAM

     DBG> SHOW DISPLAY SRC
     display SRC at H1, size = 64
         kind = SOURCE (EXAMINE/SOURCE .%SOURCE_SCOPE\%PC)

Parameters

     display-name (optional) -  the  name  of  the  display  you  want
     displayed.    If   this  parameter  is  omitted,  information  is
     displayed  about  all  displays.   The  disp-name  parameter  may
     contain * as a wildcard.

 Example:

     SHOW DISPLAY S* - gives information about all displays whose name
     begins with S.

Qualifiers

Additional information available:

/ALL/SUFFIX

/ALL
     Lists all display definitions.  Do not  specify  a  display  name
     with /ALL.

/SUFFIX[=process-identifier-type]
     Note:   This  qualifier  applies  to  a  multiprocess   debugging
     configuration (when DBG$PROCESS has the value MULTIPROCESS).  Use
     this qualifier only directly after a display name.

     Appends a process-identifying suffix  to  a  display  name.   The
     suffix  denotes  the  visible  process.   This  qualifier is used
     primarily  in  command   procedures   when   specifying   display
     definitions   or  key  definitions  that  are  bound  to  display
     definitions.  Use any of  the  following  process-identifier-type
     keywords:

        PROCESS_NAME     The display-name suffix is the VMS process name.

        PROCESS_NUMBER   The display-name suffix is the process number
                         (as shown in a SHOW PROCESS display).

        PROCESS_PID      The display-name suffix is the VMS process
                         identification number (PID).

     If  you  specify  /SUFFIX  without  a  process-identifier-   type
     keyword,  the  process  identifier type used for the display-name
     suffix is, by default, the same  as  that  used  for  the  prompt
     suffix (see SET PROMPT/SUFFIX).

EDITOR

     SHOW EDITOR displays the action taken by the EDIT command, as set
     by the SET EDITOR command.

     Example:

     DBG> SHOW EDITOR
     The editor is SPAWNed, with command line "LSEDIT/START=(n,1)"
     DBG> SET EDITOR/CALLABLE_TPU
     DBG> SHOW EDITOR
     The editor is CALLABLE_TPU, with command line "TPU"

EVENT_FACILITY

     Displays the run-time facility that  has  been  selected  by  the
     command  SET  EVENT_FACILITY.  Also displays the event names that
     are defined by the facility (that is the keywords  that  you  can
     specify  on the command SET BREAK/EVENT=keyword).  Currently, the
     languages that have event facilities are ADA and SCAN.

 Format:

       SHOW EVENT_FACILITY

Additional information available:

Example:

Example:

     DBG> SHOW EVENT
     event facility is ADA

       The general forms of commands to set a breakpoint or tracepoint
       on an Ada event are:
         SET BREAK/EVENT=event [task[, ... ]] [WHEN(expr)] [DO(comnd[;
     ... ])]
         SET TRACE/EVENT=event [task[, ... ]] [WHEN(expr)] [DO(comnd[;
     ... ])]

       If tasks are specified, the breakpoint triggers only if the
       event occurs for those specific tasks.

       Ada event names and their definitions

       HANDLED               an exception is about to be handled
       HANDLED_OTHERS        an exception is about to be handled in an
     OTHERS handler
       TERMINATED            a task is terminating (including by abort
     or exception)
       EXCEPTION_TERMINATED  a task is terminating because of an
     exception
       ABORT_TERMINATED      a task is terminating because of abort
       DEPENDENTS_EXCEPTION  an exception is about to cause a task to
     await
                             dependent tasks
       RENDEZVOUS_EXCEPTION  an exception is propagating out of a
     rendezvous
       RUN                   a task is about to run
       ACTIVATING            a task is about to begin its activation
       PREEMPTED             a task is about to be preempted
       SUSPENDED             a task is about to be suspended

EXIT_HANDLERS

     SHOW EXIT_HANDLERS gives a display of the exit handlers that your
     program has declared.  The exit handler routines are displayed in
     the order that they are called (that is,  last  in,  first  out).
     The routine name is displayed symbolically if possible; otherwise
     its address is displayed.  The debugger's exit handlers  are  not
     displayed.

     Example:

     DBG> SHOW EXIT
     exit handler at MODNAME\EXIT_ROUT1
     exit handler at MODNAME\EXIT_ROUT2

IMAGE

     Displays information about the shareable images that are part  of
     your  running program.  The name, start address and end addresses
     are displayed.  Also displayed is whether the image is "set" (see
     HELP SET IMAGE).

     Format:

     SHOW IMAGE [image-name]

     If  "image-name"  is   omitted,   all   images   are   displayed.
     "image-name" may include wildcards.

     Example:

     DBG> SHOW IMAGE SHARE$*
      image name                      set    base address    end
     address
     *SHARE                           yes    00000200        00000FFF
      SHARE1                          no     00001000        000017FF
      SHARE2                          no     00018C00        000191FF
      SHARE3                          no     00019200        000195FF
      SHARE4                          no     00019600        0001B7FF

      total images: 5                bytes allocated: 33032

     The asterisk next to the image name indicates that the  image  is
     the "current image".

KEY

     Displays current key definitions for the specified  keys  in  the
     specified states.

 Format:

     SHOW KEY [/qualifiers] [key-name-list]

 Example:

     DBG> DEFINE/KEY KP0 "STEP"
     DBG> SHOW KEY KP0
     DEFAULT definition for key KP0:
         "STEP"

Additional information available:

Qualifiers

Qualifiers

Additional information available:

/ALL/BRIEF/DIRECTORY/NOSTATE/STATE

/ALL
     Show all keys defined in the current state(s).

/BRIEF
     Only display the key  definition  and  state.   By  default,  the
     system provides other information including qualifiers associated
     with the definition, etc.

/DIRECTORY
     Only give the names of the keys that have been defined

/NOSTATE
     Give the definitions for the keys in the currently active  state.
     (default)

/STATE
 Format:

     SHOW KEY/STATE=state-name-list[/qualifier[...]] [key-name[,...]]

     This qualifier modifies the others so  that  they  perform  their
     operations on the list of states given.  For example:

               SHOW  KEY/STATE=GOLD/DIR  gives  a  list  of  the  keys
     defined for the GOLD state.

LANGUAGE

     Causes the debugger to display the current language.

     The current language is the language last established by the  SET
     LANGUAGE   command   or  the  language  established  at  debugger
     start-up.

     Supported languages are  ADA,  BASIC,  BLISS,  C,  COBOL,  DIBOL,
     FORTRAN, MACRO, PASCAL, PLI, RPG, and SCAN.  See "HELP Languages"
     for details on the support for each one.

 Format:

     SHOW LANGUAGE

LOG

     Causes the debugger to display the name of the current  log  file
     and to report whether the debugger is writing to that log file.

     The current log file is the log file last established  by  a  SET
     LOG command or the default log file DEBUG.LOG.

 Format:

     SHOW LOG

MARGINS

     Displays the current source-line margin settings for the  display
     of source code.

     Margin settings are established by the SET  MARGIN  command.   By
     default,  the  debugger  sets  the left margin to 1 and the right
     margin to 255.

 Format:

     SHOW MARGINS

MAX_SOURCE_FILES

     Displays the maximum number of source files that the debugger may
     keep open at any one time.

     The maximum number of source files that  the  debugger  may  keep
     open   at   any   one   time  may  be  specified  using  the  SET
     MAX_SOURCE_FILES command or may be the default value of 5.

 Format:

     SHOW MAX_SOURCE_FILES

MODE

     Identifies the current  debugger  modes  (screen  or  no  screen,
     keypad or nokeypad, and so on) and the current radix.

     The current debugger modes are the modes  last  established  with
     the  SET  MODE  command.  If no SET MODE command was entered, the
     current modes are, by  default:   DYNAMIC,  NOG_FLOAT  (D_float),
     INTERRUPT, KEYPAD, LINE, NOSCREEN, SCROLL, NOSEPARATE, SYMBOLIC.

 Format:

       SHOW MODE

MODULE

     SHOW MODULE provides  a  formatted  alphabetized  display  giving
     information  about all the modules in your program.  "SHOW MODULE
     modname"  displays  information  only  about  the  module   named
     "modname".  The name may contain wildcards (*).

     Included in the display is  a  column  telling  you  whether  the
     module  is  set,  and  a  column  telling  you how many bytes are
     required to set the module.  At the bottom of the  display  is  a
     number  which tells you how many bytes are currently allocated in
     the debugger's memory pool.

 Format:

     SHOW MODULE [/qualifiers] [name]

Additional information available:

ParametersExample:Qualifiers

Parameters

     name (optional) - the name of the module you want displayed.   If
     the  "name"  parameter is omitted, information is displayed about
     all modules.  The "name" parameter may contain * as a wildcard.

 Example:

     SHOW MODULE DBG* - gives information about all modules whose name
     begins with DBG.

Example:

     DBG> SHOW MODULE
     module name                     symbols    size
     X1                              no         1504
     X2                              no         1520
     X3                              yes         396
     total PASCAL modules: 3.                bytes allocated: 35928.

Qualifiers

Additional information available:

/NORELATED/NOSHARE/RELATED/SHARE

/NORELATED
     (ADA only) This is the default.  It specifies that no information
     about related modules is to be output.

/NOSHARE
     This is the default.  It specifies that shareable  image  modules
     not be included in the SHOW MODULE output.

/RELATED
     (ADA  only)  This  qualifier  tells  the   debugger   to   output
     information  about  those modules that are related to each module
     that is normally displayed.  It lists the relationship of each of
     these  subordinate  modules  to  the  main  module along with the
     normal information you get with each module.   ADA  packages  and
     ADA  subunits  are  the  language  constructs  which give rise to
     relationships between modules.

/SHARE
     This tells the debugger to include shareable images in  the  SHOW
     MODULE  display  (for  example,  SHARE$LIBRTL, SHARE$FORRTL).  By
     default, these are omitted since there is  only  limited  support
     for debugging shareable images.

OUTPUT

     Says whether or not the debugger  is  displaying  output  on  the
     terminal (term or noterm), whether or not the debugger is writing
     output to a log file (log or  nolog),  and  whether  or  not  the
     debugger  echos  commands  from command procedures and DO clauses
     (verify/noverify).

 Format:

     SHOW OUTPUT

PROCESS

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

     The SHOW PROCESS command  displays  information  about  specified
     processes  and  any images running in those processes.  A process
     can first appear in a SHOW PROCESS display as soon  as  it  comes
     under debugger control.  A process can no longer appear in a SHOW
     PROCESS display if it is  terminated  through  an  EXIT  or  QUIT
     command.

 Format:

       SHOW PROCESS [/qualifier] [process-spec[, . . . ]]

     By default (/BRIEF), one line of  information  is  displayed  for
     each process, including the following:

     1.  The process number  assigned  by  the  debugger.   A  process
         number  is assigned sequentially, starting with process 1, to
         each process that comes under debugger control.  If a process
         is  terminated by an EXIT or QUIT command, its process number
         is not reused during that  debugging  session.   The  visible
         process  is  marked  with  an  asterisk  (*)  in the leftmost
         column.

     2.  The VMS process name.

     3.  Whether  the  process  has  been  put  on  hold  with  a  SET
         PROCESS/HOLD command.

     4.  The current debugging state for that process (see the  States
         subtopic).

     5.  The location (symbolized, if possible) where execution of the
         image is suspended in that process.

     The  SHOW  PROCESS/FULL  gives   additional   information   about
     processes.

Additional information available:

ExamplesParametersQualifiersStates

Examples

     1   DBG_2> SHOW PROCESS
          Number  Name          Hold  State            Current PC
         *    2 _WTA3:          HOLD  break            SCREEN_IO\%LINE 47

     In this example, the SHOW PROCESS command, by  default,  displays
     one  line  of  information  about  the  visible process (which is
     identified with an asterisk in the leftmost column.  The  process
     has  the  VMS  process  name  _WTA3:.   It  is the second process
     brought under debugger control (process number 2).  It  has  been
     put  on  hold,  and  the  image's  execution  is  suspended  at a
     breakpoint at line 47 of module SCREEN_IO.

     2   DBG_2> SHOW PROCESS/FULL %PREVIOUS_PROCESS

     The command  SHOW  PROCESS/FULL  %PREVIOUS_PROCESS  displays  the
     maximum  level  of  information about the previous process in the
     circular list of processes (process number 1, in this case).

     3   DBG_2> SHOW PROCESS %PROCESS_NAME TEST_3
         Number  Name          Hold  State            Current PC
             7 TEST_3                watch of TEST_3\ROUT4\COUNT
                                                         TEST_3\%LINE 54

     This SHOW PROCESS command displays one line of information  about
     process  TEST_3.   The  image  is  suspended  at  a watchpoint of
     variable COUNT.

     4   DBG_2> SHOW PROCESS/DYNAMIC
         Dynamic process setting is enabled

     This SHOW PROCESS/DYNAMIC command indicates that dynamic  process
     setting is enabled.

Parameters

 process-spec Specifies a process.  Use any of the following forms:

     [%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.
                                     Process numbers appear in a
                                     SHOW PROCESS display.

     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 also use the asterisk wildcard character (*)  to  specify
     all  processes.   If  you  do  not specify a process, the visible
     process is selected, unless you specify /ALL.

Qualifiers

Additional information available:

/ALL/BRIEF/DYNAMIC/FULL/HOLD/NOHOLD/VISIBLE

/ALL
     Selects all processes known to the debugger for display.  Do  not
     specify a process with /ALL.

/BRIEF
     Displays only one line of information for each  process  selected
     for display.  /BRIEF is the default.

/DYNAMIC
     Shows whether dynamic process setting  is  enabled  or  disabled.
     Dynamic  process  setting is enabled by default and is controlled
     with the command SET PROCESS/[NO]DYNAMIC.

     Do not specify a process with /DYNAMIC.   Do  not  specify  /ALL,
     /BRIEF, /FULL, /[NO]HOLD, or /VISIBLE with /DYNAMIC.

/FULL
     Displays  maximum  information  for  each  process  selected  for
     display.

/HOLD
     Selects processes that are on hold for display.  If  you  do  not
     specify  a process, /HOLD selects all processes that are on hold.
     If you specify a process list, /HOLD selects the processes in the
     list that are on hold.

     If you specify both /HOLD and /NOHOLD on the same  command  line,
     the  effect is to select processes that are on hold and processes
     that are not on hold for display (the qualifier specified last on
     the command line does not override the other).

/NOHOLD
     Selects processes that are not on hold for display.   If  you  do
     not specify a process, /NOHOLD selects all processes that are not
     on hold.  If you specify a  process  list,  /NOHOLD  selects  the
     processes in the list that are not on hold.

     If you specify both /HOLD and /NOHOLD on the same  command  line,
     the  effect is to select processes that are on hold and processes
     that are not on hold for display (the qualifier specified last on
     the command line does not override the other).

/VISIBLE
     Selects the visible process for display.  If you do  not  specify
     /VISIBLE, it is assumed by default.

States

     The debugging states that may appear in a  SHOW  PROCESS  display
     are as follows:

     _______________________________________________________
     Activated                 The image and its process have
                               just been brought under debugger
                               control, either through a DCL
                               RUN/DEBUG command, a debugger
                               CONNECT command, a CTRL/Y - DEBUG
                               sequence, or by the program
                               signalling SS$_DEBUG while it
                               was not under debugger control.

     Break                     A breakpoint was triggered.
     Break on branch
     Break on call
     Break on instruction
     Break on lines
     Break on modify of
     Break on return
     Exception break
     Excep. break preceding

     Interrupted               Execution was interrupted in that
                               process, either because execution
                               was suspended in some other process,
                               or because the user interrupted
                               program execution with the abort-key
                               sequence (CTRL/C, by default).

     Step                      A STEP command has completed.
     Step on return

     Terminated                The image indicated has terminated
                               execution but the process is still
                               under debugger control. Therefore,
                               you can obtain information about
                               the image and its process. You can
                               use the EXIT or QUIT command to
                               terminate the process.

     Trace                     A tracepoint was triggered.
     Trace on branch
     Trace on call
     Trace on instruction
     Trace on lines
     Trace on modify of
     Trace on return
     Exception trace
     Excep. trace preceding

     Unhandled exception at   An unhandled exception was encountered.

     Watch of                 A watchpoint was triggered.

RADIX

     Causes the debugger to display the current radix  settings.   The
     current  input  radix and the current output radix are displayed.
     Radix may be one of BINARY, OCTAL, DECIMAL, or HEXADECIMAL.

SCOPE

     Causes the debugger to display the  current  scope  search  list,
     that  is, the scope search list established by the last SET SCOPE
     command.

     The current scope search list  designates  one  or  more  program
     locations   (specified   by   pathnames   and/or   other  special
     characters) to be used in the interpretation of symbols that  are
     specified without pathname prefixes in debugger commands.

 Format:

     SHOW SCOPE

SEARCH

     Displays the current SEARCH parameters.

     Current SEARCH parameters  are  either  established  by  the  SET
     SEARCH command or are the default values ALL and STRING.

     SEARCH parameters determine whether the debugger searches for all
     occurrences  (ALL)  of  the  string  or  only the next occurrence
     (NEXT) of the string,  and  whether  the  debugger  displays  any
     occurrence  of  the  string (STRING) or only those occurrences in
     which the string is not bounded on either  side  by  a  character
     that  cannot  be  part  of  an identifier in the current language
     (IDENTIFIER).

 Format:

     SHOW SEARCH

SELECT

     Shows the current screen display select settings as  set  by  the
     SELECT command.

 Format:

       SHOW SELECT

SOURCE

     Displays the source directory search list(s) currently in effect.

     The  SET  SOURCE/MODULE=modname  command  establishes  a   source
     directory  search  list  for a particular module.  The SET SOURCE
     command establishes  a  source  directory  search  list  for  all
     modules  not  explicitly mentioned in a SET SOURCE/MODULE=modname
     command.

     If a directory search list has not been established by  means  of
     the  SET  SOURCE  or SET SOURCE/MODULE=modname commands, the SHOW
     SOURCE  command  indicates  that  no  directory  search  list  is
     currently  in  effect.   In  this case, the debugger expects each
     source file to be in the same directory as it was in  at  compile
     time.

 Format:

     SHOW SOURCE [/EDIT]

Additional information available:

Qualifiers

Qualifiers

Additional information available:

/EDIT

/EDIT
     Shows the directory search lists that were established  with  SET
     SOURCE/EDIT.

STACK

     Displays information from  the  current  call  stack.   For  each
     frame,  information  such  as  the  condition  handler  and saved
     register values is displayed.

     Format:

     SHOW STACK [n]

     The optional argument "n" specifies how many frames  to  display.
     If   it  is  omitted,  information  about  all  stack  frames  is
     displayed.

Additional information available:

ExampleArgument List

Example

     DBG> SHOW STACK

     stack frame 0 (2146814812)

         condition handler: 0
            SPA:            0
            S:              0
            mask:           M<R2>
            PSW:            0000 (hexadecimal)
         saved AP:          7
         saved FP:          2146814852
         saved PC:          EIGHTQUEENS\%LINE 69
         saved R2:          0
         argument list:(1)  EIGHTQUEENS\%LINE 68+2

     stack frame 1 (2146814852)

         condition handler: SHARE$PASRTL+888
            SPA:            0
            S:              0
            mask:           none saved
            PSW:            0000 (hexadecimal)
         saved AP:          2146814924
         saved FP:          2146814904
         saved PC:          SHARE$DEBUG+667

Argument List

     One part of the output of  SHOW  STACK  (if  existing)  for  each
     frame,  is the Argument List.  It is the list of arguments passed
     along with the call to a subroutine.

     NOTE:  In some cases the list may  contain  addresses  to  actual
     arguments.   In  these  cases, "DBG> EXAMINE address" returns the
     values of these arguments.

STEP

     Causes the debugger to display the current step conditions.

     The current step conditions include:  whether the debugger  steps
     by  lines  or  by instructions, whether the debugger steps "into"
     routines in the user program or "over" them,  whether  source  is
     displayed on each STEP command (source/nosource), and whether any
     output is given on each STEP command (silent/nosilent).

     Current step conditions are the step  conditions  established  by
     the  last  SET  STEP  command  or  the  default  step  conditions
     established by the current language.

 Format:

     SHOW STEP

SYMBOL

     Displays information about symbols in your program.   Using  this
     command,  you  can  obtain  a  list  of  symbols  in your program
     matching  a  given  namespec,  together  with  type  and  address
     information about the symbols.

 Format:
      SHOW SYMBOL [/qualifier] namespec [,namespec...]
                               [IN scope [,scope...]]

Additional information available:

ExampleParametersQualifiers

Example

     DBG> SHOW SYMBOL/TYPE/ADDRESS *
     module FFF, language FORTRAN
     routine FFF
         address: 1024, size: 32 bytes
     data FFF\B
         address: +512
         atomic type, byte logical, size: 1 bytes
     data FFF\W
         address: +514
         atomic type, word integer, size: 2 bytes
     data FFF\L
         address: +528
         atomic type, longword integer, size: 4 bytes
     data FFF\F
         address: +532
         atomic type, F_floating, size: 4 bytes
     data FFF\D
         address: +520
         atomic type, D_floating, size: 8 bytes
     routine FFF (global)
         address: 1024

Parameters

 namespec

     This consists of a single symbol name,  or  a  symbol  name  that
     includes wildcard characters.  "*" is the wildcard character, and
     it can match zero or more characters.

 scopespec

     Specifies a module, routine, lexical block, or numeric scope.  It
     has  the  same syntax as the scope specification in the SET SCOPE
     command.  This specifies that only those symbols that  match  the
     namespec  and  are  declared  within  the  given  scope are to be
     selected.

Qualifiers

Additional information available:

/ADDRESS/DEFINED/DIRECT/GLOBAL/LOCAL/TYPE/USE_CLAUSE

/ADDRESS
     Directs the debugger to print the address specification for  each
     selected symbol.

/DEFINED
     Displays symbols you have defined with the DEFINE command.

/DIRECT
     Select only those symbols that are declared directly in the given
     scope, but not those that are declared in nested scopes.

/GLOBAL
     Displays only those defined symbols  that  are  defined  /GLOBAL.
     Only applies to SHOW SYMBOL/DEFINED.

/LOCAL
     Displays only those defined  symbols  that  are  defined  /LOCAL.
     Only applies to SHOW SYMBOL/DEFINED.

/TYPE
     Display type information about each selected symbol.

/USE_CLAUSE
     Note:  This qualifier applies to Ada programs.

     Identifies any package that this routine (subprogram), block,  or
     package mentions in a use clause.  In the case of a package, also
     identifies any routine, blocks, or  packages  that  mention  this
     package in a use clause.

TASK

     (Only valid for ADA multitasking programs).

     Using this command, you can obtain a list of individual tasks  in
     existence and their current state.  Alternatively, you can obtain
     information on the  entire  multitasking  system.   The  type  of
     display  is  determined  by "task information qualifiers".  If no
     task information qualifer is given, the command displays a  brief
     one line status report for each task specified.

     For those commands which operate on individual tasks,  the  tasks
     of  interest  can  be  specified by taskname parameters and/or by
     "task selection qualifiers".  If neither of these means are used,
     the task defaults to the "visible task", %VISIBLE_TASK.  (See SET
     TASK/VISIBLE and SET TASK/ACTIVE).

 Format:
      SHOW TASK [/qualifier...]  [taskname [,taskname...] ]

Additional information available:

ParametersSelection QualifiersInformation QualifiersExamples

Parameters

 taskname

     A taskname parameter may be a pathname which  designates  a  task
     declared in your program, for example, MY_MAIN\PROG\MONITOR.

     A taskname parameter may also be a task ID or pseudo taskname.  A
     task  ID is a unique number that is associated with a task at the
     time the task is created.  The debugger syntax for  specifying  a
     task  ID  is  "%TASK n", where "n" is a positive decimal integer.
     You can see what task IDs  are  assigned  to  currently  existing
     tasks by typing SHOW TASK/ALL.

     A pseudo  taskname  is  one  of  the  debugger  built-in  symbols
     %ACTIVE_TASK,  %CALLER_TASK,  %NEXT_TASK, or %VISIBLE_TASK.  Type
     "HELP Built_in_Symbols" for more information on these.

     The default taskname parameter is %VISIBLE_TASK.

Selection Qualifiers

     Task selection qualifiers can be used singly or  in  combination.
     Except  for  the  ALL"  qualifier,  they  can  also  be used with
     taskname parameters.  When used in combination, the  logical  AND
     of  the selection criterea is applied.  This gives the programmer
     a powerful and flexible mechanism to select the tasks of interest
     from  the many tasks a complicated program may create.  There are
     five ways to indicate what tasks are of interest:

      o  A task list selects an explicit set of tasks.

      o  The /ALL qualifier selects all tasks.

      o  The /PRIORITY, /STATE, and /[NO]HOLD qualifiers can  be  used
         singly  or  in  combination  to  select  all tasks having the
         logical AND of the specified criteria.

      o  The /PRIORITY, /STATE, and /[NO]HOLD qualifiers can  be  used
         with  a task list to select from a small set of "interesting"
         tasks.

      o  The visible task is selected by default if no other selection
         is specified.


Additional information available:

/ALL/HOLD/PRIORITY/STATE

/ALL
     Selects all tasks that currently exist in your program.  Taskname
     parameters are not permitted.

/HOLD
 /HOLD
 /NOHOLD

     Selects either those tasks that are on hold or those  tasks  that
     are not on hold (see SET TASK/[NO]HOLD).

     If a list of tasknames is given, select from the list those tasks
     that  satisfy  the hold criterea.  If the taskname parameters are
     omitted, select from all tasks in the program  those  tasks  that
     satisfy  the  hold  criterea  (that  is,  the  /ALL  qualifier is
     implied).

/PRIORITY
 /PRIORITY = n
 /PRIORITY = (n1,...,nk)

     Selects those tasks that have priority n or those tasks that have
     one  of  the priorities (n1,...,nk), where n is a decimal integer
     from 0 to 15 inclusive.  (VAX Ada specifies subtype  PRIORITY  to
     be INTEGER range 0..15).

     If a list of tasknames is given, select from the list those tasks
     that  satisfy  the priority criteria.  If the taskname parameters
     are omitted, select from all tasks in  the  program  those  tasks
     that  have  the  given priorities (that is, the /ALL qualifier is
     implied).

/STATE
 /STATE = s
 /STATE = (s1,...,sk)

     Selects those tasks that are in state s or those tasks  that  are
     in one of the states (s1,...,sk).

     The state s must be one of the following task states:
         READY, RUNNING, SUSPENDED, TERMINATED

     If a list of tasknames is given, select from the list those tasks
     that  satisfy the state criteria.  If the taskname parameters are
     omitted, select from all tasks in the program  those  tasks  that
     are in the given state (that is, the /ALL qualifier is implied).

Information Qualifiers

     These qualifiers determine what type of information  to  display.
     If  no  task  information  qualifer  is  given, the default is to
     display a brief one line status report for each task selected  by
     other qualifiers, or explicitly given in the list of tasknames.

Additional information available:

/CALLS/FULL/STATISTICS/TIME_SLICE

/CALLS
 /CALLS
 /CALLS = n

     For each selected task, display information about the sequence of
     currently  active  procedure calls -- that is, the call frames on
     the stack of that task.

     The optional parameter n specifies the number of call  frames  to
     display.   The value of n may be a decimal integer in the range 0
     through 32767.  If the  parameter  n  is  omitted,  the  debugger
     displays information about all call frames.

     The /FULL qualifier provides additional information.

/FULL
     Display additional information.

     The exact function  of  this  qualifier  depends  on  what  other
     information  qualifiers  are  given.  It is meaningfull when used
     with /CALL, /STATISTICS, or by itself.   When  used  without  any
     other  information  qualifiers,  it  changes  the  brief one line
     display of the  basic  task  state  to  a  multi-line  report  of
     detailed information.

/STATISTICS
     Display tasking statistics for the  entire  multitasking  system.
     These   statistics   include  the  number  of  task  activations,
     terminations, schedulings, blocks, and  other  information.   The
     task list and task selection qualifiers must be omitted.

     The /FULL qualifier provides additional information.

/TIME_SLICE
     Display the current setting  of  the  value  of  the  Ada  pragma
     TIME_SLICE.  This is the time used by the Ada multitasking system
     for round-robin scheduling.  It is  displayed  in  seconds  as  a
     fixed    point    decimal   number.    (See   the   command   SET
     TASK/TIME_SLICE).  The task list and  task  selection  qualifiers
     must be omitted.

Examples

 SHOW TASK

     Shows information for the visible task (typically the  task  that
     entered the debugger).

 SHOW TASK/ALL/FULL

     Shows detailed information for all currently existing tasks.

 SHOW TASK/ALL/PRI=(4,5)/STATE=(READY,RUN)/NOHOLD/CALLS=3

     Shows information for all priority 4 or 5 tasks, in the READY  or
     RUN  state,  and  not on hold.  In addition, the last 3 procedure
     calls in each task are shown.

 SHOW TASK/PRIORITY=(3,4)/STATE=READY X,Y,Z

     Shows which of X,Y,and Z have priority 3 or  4  and  are  in  the
     READY state.

 SHOW TASK/STATISTICS/FULL

     Shows full statistics for the multitasking system.

 SHOW TASK/ALL/STATE=READY

     Shows all tasks which are ready to be run.

 SHOW TASK/PRI=3/STATE=SUSP X,Y,Z

     Shows which  tasks  of  X,Y,  and  Z  have  priority  3  and  are
     suspended.

TERMINAL

     Causes the debugger to display  the  terminal  width  and  height
     currently  used  to format debugger output.  The width and height
     can be set with the SET TERMINAL command.

 Format:

     SHOW TERMINAL

TRACE

     Displays information about tracepoints that  are  currently  set,
     including  any options such as WHEN or DO clauses, /AFTER counts,
     and so on.

 Format:

       SHOW TRACE [/qualifier]

     By default, SHOW  TRACE  displays  information  about  both  user
     defined  and predefined tracepoints (if any).  This is equivalent
     to entering the command SHOW TRACE/USER/PREDEFINED.  User defined
     tracepoints  are  set  with  the  SET  TRACE command.  Predefined
     tracepoints are set automatically when you invoke  the  debugger,
     and they depend on the type of program you are debugging.

     If you  established  a  tracepoint  using  the  /AFTER:n  command
     qualifier  with  the  SET  TRACE  command, the SHOW TRACE command
     displays the current value of the decimal integer n, that is, the
     originally  specified  integer  value minus one for each time the
     tracepoint location was reached.  (The debugger decrements n each
     time  the  tracepoint location is reached until the value of n is
     zero, at which time the debugger takes trace action.)

Additional information available:

ExamplesQualifiers

Examples

     1   DBG> SET TRACE/INST WHEN (A .NE. 0)
         DBG> SHOW TRACE
         tracepoint on instructions
             WHEN (A .NE. 0)

     This SHOW TRACE command identifies the  user  defined  tracepoint
     set with the previous SET TRACE command.

     2   DBG> SHOW TRACE
         tracepoint at routine CALC\MULT
         tracepoint on calls:
                 RET     RSB     BSBB    JSB     BSBW    CALLG   CALLS

     The SHOW  TRACE  command  identifies  all  tracepoints  that  are
     currently  set.   This example indicates user defined tracepoints
     that are triggered whenever execution  reaches  routine  MULT  in
     module CALC or one of the instructions RET, RSB, BSBB, JSB, BSBW,
     CALLG, or CALLS.

     3   DBG_2> SHOW TRACE/PREDEFINED
         predefined tracepoint on program activation
            DO (SET DISP/DYN/REM/SIZE:64/PROC SRC_/SUF=PROCESS_NU AT H1
                   SOURCE (EXAM/SOURCE .%SOURCE_SCOPE\%PC);
               SET DISP/DYN/REM/SIZE:64/PROC INST_/SUF=PROCESS_NU AT H1
                   INSTRUCTION (EXAM/INSTRUCTION .0\%PC))
         predefined tracepoint on program termination

     This command  identifies  the  predefined  tracepoints  that  are
     currently set.  The example shows the predefined tracepoints that
     are set automatically by the debugger for a multiprocess  program
     (when DBG$PROCESS has the value MULTIPROCESS).  The tracepoint on
     program activation triggers whenever a new  process  comes  under
     debugger  control.   The  DO  clause  creates  a process-specific
     source display named SRC_n  and  a  process-specific  instruction
     display  named INST_n whenever a process activation tracepoint is
     triggered.   The  tracepoint  on  program  termination   triggers
     whenever a process performs an image exit.

Qualifiers

Additional information available:

/PREDEFINED/USER

/PREDEFINED
     Displays information about predefined tracepoints.

/USER
     Displays information about user defined tracepoints.

TYPE

     Causes the debugger to display the current default  type  or,  if
     the   /OVERRIDE  command  qualifier  is  specified,  the  current
     override type.

 Format:

     SHOW TYPE [/qualifier]

Additional information available:

Qualifiers

Qualifiers

Additional information available:

/OVERRIDE

/OVERRIDE
     Causes the debugger to display the current override type.

WATCH

     Causes the debugger to display the locations at which watchpoints
     have been established by the SET WATCH.

     All of the information about each watchpoint is displayed -- that
     is, WHEN and DO clauses, after count, and so on.

 Format:

     SHOW WATCH

     Example:

     DBG> SET WATCH X DO (SHOW CALLS)
     DBG> SHOW WATCH
     watchpoint of X
         DO (SHOW CALLS)

WINDOW

     Causes the debugger to list defined screen windows.  The name and
     screen  position  of each defined window are displayed.  The list
     consists of all user defined windows as well as the many debugger
     predefined  windows.   The  windows  are  listed  in alphabetical
     order.

     With no parameters, /ALL, or *, the names and attributes  of  all
     windows  are  listed.  The debugger also accepts a parameter list
     of window names.  This list of names can include  wildcarded  (*)
     names, in which case all matching window names are displayed.

 Format:

     SHOW WINDOW [/ALL | name [,...]]

Additional information available:

QualifiersParameters

Qualifiers

Additional information available:

/ALL

/ALL
     /ALL qualifier, like the default SHOW WINDOW and SHOW  WINDOW  *,
     causes the debugger to list all of the screen window definitions.

Parameters

     name (optional) - the name of the window you want displayed.   If
     the  "name"  parameter is omitted, information is displayed about
     all windows.  The "name" parameter may contain * as a wildcard.

 Example:

     SHOW WINDOW S* - gives information about all windows  whose  name
     begins with S.

SPAWN

     Enables you to execute DCL commands without leaving the debugging
     session.  If you specify a DCL command as the parameter to SPAWN,
     the command is executed in the context of a  spawned  subprocess.
     For  example, the command SPAWN MAIL invokes the VMS MAIL utility
     and, when you exit  from  MAIL,  you  return  to  your  debugging
     session.   If  you  do not specify a parameter, the SPAWN command
     brings you to DCL level in the spawned subprocess.  You can  then
     enter  DCL  commands, and you return to your debugging session by
     logging out of the subprocess.

 Format:

     SPAWN [/qualifier]

     SPAWN dcl-command

     SPAWN "dcl-command"

Additional information available:

ParametersExampleQualifiers

Parameters

 dcl-command

     Can be any dcl-command.  If the  command  contains  a  semicolon,
     then  the entire command must be placed inside quotes so that the
     debugger does not  interpret  the  semicolon  as  the  end  of  a
     debugger command.

Example

     DBG> SPAWN MAIL
     You have 2 new messages
     MAIL> ...
     MAIL> EXIT
     %DEBUG-I-RETURNED, control returned to process TITLE
     DBG>

Qualifiers

Additional information available:

/INPUT/NOWAIT/OUTPUT/WAIT

/INPUT=file-spec

     Specifies an input file containing one or more DCL commands to be
     executed by the spawned subprocess.  If you specify a dcl-command
     string with the SPAWN command and an input file with  the  /INPUT
     qualifier,  the  dcl-command string is processed before the input
     file.  Once  processing  of  the  input  file  is  complete,  the
     subprocess is terminated.

     No wildcards are allowed in the file specification.

/NOWAIT

     Specifies that the parent process continue in parallel  with  the
     spawned subprocess.  This is the same as SPAWN/NOWAIT in DCL.

/OUTPUT=file-spec

     Requests that the output from the SPAWN operation be  written  to
     the specified file.

     No wildcards are allowed in the file specification.

/WAIT

     Specifies that the parent process should be  suspended  and  that
     the terminal should be attached to the sub-process.

SS$_DEBUG

     SS$_DEBUG (defined in STARLET) is a condition you can signal from
     your  program  to invoke the debugger.  Signalling SS$_DEBUG from
     your program is equivalent  to  typing  "control-Y"  followed  by
      DEBUG at that point.

     You can pass commands to the debugger at the time you  signal  it
     with  SS$_DEBUG.   For  example,  to invoke the debugger and do a
     SHOW CALLS command at a given point in your  program,  you  could
     put  the  following  into  your program (this example is coded in
     BLISS):

         SIGNAL(SS$_DEBUG, 1,
             UPLIT BYTE(%ASCIC 'SHOW CALLS'));

STEP

     The STEP command causes the debugger to execute your  program  by
     line, by instruction, or by some other step unit.  STEP is one of
     the four debugger commands that can cause your program to execute
     (the others are CALL, EXIT, and GO).

 Format:

       STEP [/qualifier] [n]

     The behavior  of  the  STEP  command  depends  on  the  following
     factors:

      o  The default STEP mode previously established with a SET  STEP
         command, if any.

      o  The qualifier specified with the STEP command, if any.

      o  The number of step units specified as parameter to  the  STEP
         command, if any.

     If no SET STEP command was previously entered, the debugger takes
     the  following  default  action  when  you  enter  a STEP command
     without specifying a qualifier or parameter:

     1.  Executes a line of source code (STEP/LINE is the default).

     2.  Reports that execution has completed by issuing a "stepped to
         ..." message (STEP/NOSILENT is the default).

     3.  Displays the line of source code where execution is suspended
         (STEP/SOURCE is the default).

     4.  Issues the prompt.

     If you  plan  to  enter  several  STEP  commands  with  the  same
     qualifiers,  you  can first use the SET STEP command to establish
     new default qualifiers (for example, SET STEP INTO NOSYSTEM makes
     the  STEP  command  behave like STEP/INTO/NOSYSTEM).  Then you do
     not have to use those qualifiers with the STEP command.  You  can
     override  the  current  default  qualifiers for the duration of a
     single STEP command by specifying other qualifiers.  Use the SHOW
     STEP command to identify the current STEP defaults.

Additional information available:

ExamplesMultiprocess ProgramsParametersQualifiers

Examples

     1   DBG> SHOW STEP
         step type: source, nosilent, by line,
                    over routine calls
         DBG> STEP
         stepped to SQUARES$MAIN\%LINE 4
           4:         OPEN(UNIT=8, FILE='DATAFILE.DAT', STATUS='OLD')
         DBG>

     The SHOW STEP command identifies the default qualifiers currently
     in  effect for the STEP command.  In this case, the STEP command,
     without any parameters or  qualifiers,  causes  the  debugger  to
     execute the next line of source code.  After the STEP command has
     completed, execution is suspended at the beginning of line 4.

     2   DBG> STEP 5
         stepped to MAIN\%LINE 47
             47:         SWAP(X,Y);
         DBG>

     This command causes the debugger to execute the next 5  lines  of
     source  code.  After the STEP command has completed, execution is
     suspended at the beginning of line 47.

     3   DBG> STEP/INTO
         stepped to routine SWAP
             23: procedure SWAP (A,B: in out integer) is
         DBG> STEP
         stepped to MAIN\SWAP\%LINE 24
             24:    TEMP: integer := 0;
         DBG> STEP/RETURN
         stepped on return from MAIN\SWAP\%LINE 24 to MAIN\SWAP\%LINE 29
             29: end SWAP;
         DBG>

     In this example, the STEP/INTO command  causes  the  debugger  to
     execute  the program up to the start of the routine that is being
     called at the current PC value (SWAP, in this  case).   The  STEP
     command  executes  the next line of source code.  The STEP/RETURN
     command causes the debugger to finish executing routine  SWAP  up
     to  its  RET  instruction (that is, up to the point just prior to
     transferring control back to the calling routine).

     4   DBG> SET STEP INSTRUCTION
         DBG> SHOW STEP
         step type: source, nosilent, by instruction,
                    over routine calls
         DBG> STEP
         stepped to SUB1\%LINE 26: MOVL     S^#4,B^-20(FP)
             26:    Z:integer:=4;
         DBG>

     In this example, the SET STEP INSTRUCTION command establishes the
     default  STEP  command  qualifier  to  be  /INSTRUCTION.  This is
     verified by the SHOW STEP command.  The STEP command  causes  the
     debugger to execute the next instruction.  After the STEP command
     has completed, execution is suspended at  the  first  instruction
     (MOVL) of line 26 in module SUB1.

Multiprocess Programs

     If you are using  the  multiprocess  debugging  configuration  to
     debug a multiprocess program (if the logical name DBG$PROCESS has
     the value MULTIPROCESS), note the following additional points:

     1.  The STEP command is executed in the context  of  the  visible
         process,  but images in any other unheld processes (processes
         that have not been  put  on  hold  with  a  SET  PROCESS/HOLD
         command)  are  also  allowed  to  execute.  If you use the DO
         command to broadcast a STEP command to one or more processes,
         the STEP 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 in
         the visible process is ignored.

     2.  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.


Parameters

 n
     A decimal integer that specifies the number of step units (lines,
     instructions,  and  so on) to be executed.  If you do not specify
     the parameter n, the debugger executes one step unit.

Qualifiers

     STEP command qualifiers determine the exact stepping behavior.

     The following qualifiers affect the location to which  you  step:
     /BRANCH,         /CALL,         /EXCEPTION,         /INSTRUCTION,
     /INSTRUCTION=(opcode-list), /LINE, /RETURN.

     The  following  qualifiers  affect  what  output  is  seen   upon
     completion of a step:  /[NO]SILENT, /[NO]SOURCE.

     The following qualifiers affect what happens at a  routine  call:
     /INTO, /[NO]JSB, /OVER, /[NO]SHARE, /[NO]SYSTEM.

Additional information available:

/BRANCH/CALL/EXCEPTION/INSTRUCTION/INSTRUCTION
/INTO/JSB/LINE/NOJSB/NOSHARE/NOSILENT/NOSOURCE
/NOSYSTEM/OVER/RETURN/SHARE/SILENT/SOURCE
/SYSTEM

/BRANCH

     Executes the program to the next branch instruction.  STEP/BRANCH
     has the same effect as SET BREAK/TEMPORARY/BRANCH;GO.

/CALL

     Executes the  program  to  the  next  call  or  RET  instruction.
     STEP/CALL has the same effect as SET BREAK/TEMPORARY/CALL;GO.

/EXCEPTION

     Executes the program to the next  exception  condition,  if  any.
     STEP/EXCEPTION     has     the     same     effect     as     SET
     BREAK/TEMPORARY/EXCEPTION;GO.  If no exception condition  occurs,
     STEP/EXCEPTION has the same effect as GO.

/INSTRUCTION

     Executes the program to the next  instruction.   STEP/INSTRUCTION
     has the same effect as SET BREAK/TEMPORARY/INSTRUCTION;GO.

/INSTRUCTION=(opcode-list)

     Executes the program to the  next  instruction  whose  opcode  is
     specified  in  the list.  STEP/INSTRUCTION=(opcode[,...]) has the
     same effect as SET BREAK/TEMPORARY/INSTRUCTION=(opcode[,...]);GO.

/INTO

     If execution is currently suspended at a routine call,  STEP/INTO
     executes  the program up to the start of that routine (steps into
     that routine).  Otherwise, STEP/INTO has the same effect as  STEP
     without a qualifier.  /INTO is the opposite of /OVER (the default
     behavior).

     The  STEP/INTO  behavior  may  be  modified  by  also  using  the
     /[NO]JSB, /[NO]SHARE, and /[NO]SYSTEM qualifiers.

/JSB

     Use STEP/INTO/JSB to override a previous SET STEP NOJSB  command.
     STEP/INTO/JSB  enables  a STEP/INTO command to step into routines
     that are called by a JSB instruction, as well  as  into  routines
     that  are  called by a CALL instruction.  /JSB is the default for
     all languages except DIBOL.  (See /NOJSB for more information).

/LINE

     Executes the program to the next line of source  code.   However,
     note  that  the  debugger skips over any source lines that do not
     result in executable code when  compiled  (for  example,  comment
     lines).     STEP/LINE    has    the    same    effect    as   SET
     BREAK/TEMPORARY/LINE;GO.  This is the default  behavior  for  all
     languages.

/NOJSB

     Use /NOJSB with /INTO.  If execution is currently suspended at  a
     routine  call  and  the  routine  is called by a JSB instruction,
     STEP/INTO/NOJSB has the same  effect  as  STEP/OVER.   Otherwise,
     STEP/INTO/NOJSB has the same effect as STEP/INTO.

     /NOJSB is the default for DIBOL.  In DIBOL, user-written routines
     are  called  by  the  CALL instruction and DIBOL run-time library
     routines are called by the JSB instruction.

/NOSHARE

     Use /NOSHARE with /INTO.  If execution is currently suspended  at
     a  call  to  a shareable image routine, STEP/INTO/NOSHARE has the
     same effect as STEP/OVER.  Otherwise, STEP/INTO/NOSHARE  has  the
     same effect as STEP/INTO.

/NOSILENT

     Specifies that the "stepped to..." message is displayed after the
     STEP has completed.  This is the default.

/NOSOURCE

     Specifies that the source line for the current  location  is  not
     displayed  after  the  STEP  has  completed.   See  also SET STEP
     [NO]SOURCE.

/NOSYSTEM

     Use /NOSYSTEM with /INTO.  If execution is currently suspended at
     a  call to a system routine (in P1 space), STEP/INTO/NOSYSTEM has
     the same effect as STEP/OVER.  Otherwise, STEP/INTO/NOSYSTEM  has
     the same effect as STEP/INTO.

/OVER

     If execution is currently suspended at a routine call,  STEP/OVER
     executes  the  routine  up  to  and  including  the routine's RET
     instruction (steps over that  routine).   /OVER  is  the  default
     behavior and is the opposite of /INTO.

/RETURN

     Executes the routine in which execution is currently suspended up
     to  its  RET  instruction (that is, up to the point just prior to
     transferring control back to the calling routine).  This  enables
     you  to  inspect  the  local environment (for example, obtain the
     values of local variables) before the RET instruction deletes the
     routine's  call  frame  from the call stack.  STEP/RETURN has the
     same effect as SET BREAK/TEMPORARY/RETURN;GO.

     STEP/RETURN n executes the program up n levels of the call stack.

/SHARE

     Use STEP/INTO/SHARE to  override  a  previous  SET  STEP  NOSHARE
     command.   STEP/INTO/SHARE  enables  a  STEP/INTO command to step
     into shareable image routines, as well as  into  other  kinds  of
     routines.  /SHARE is the default.

/SILENT

     Specifies that the "stepped to..." message and  the  source  line
     for  the  current  location  are not displayed after the STEP has
     completed.  /SILENT overrides /SOURCE.

/SOURCE

     Specifies that the  source  line  for  the  current  location  is
     displayed  after  the  STEP  has completed.  This is the default.
     See also SET STEP [NO]SOURCE.

/SYSTEM

     Use STEP/INTO/SYSTEM to override a  previous  SET  STEP  NOSYSTEM
     command.   STEP/INTO/SYSTEM  enables  a STEP/INTO command to step
     into system routines (in P1 space), as well as into  other  kinds
     of routines.  /SYSTEM is the default.

SYMBOLIZE

     Converts a virtual address to a symbolic representation.  If  the
     given  address  is a static address, the address is symbolized as
     the nearest preceding symbol name plus an offset.  If it is  also
     a code address, a line number is included in the symbolization if
     a line number can be found which  covers  the  address.   If  the
     address  is a register name, the debugger displays symbols in all
     SET modules that are bound to that register.  If the address is a
     stack address, then the debugger tries to symbolize to a variable
     in the routine whose call frame contains that address.

     Symbolization is now done automatically on EXAMINE  commands,  so
     SYMBOLIZE now has limited usefulness.

 Format:

     SYMBOLIZE address-expression [,address-expression...]

Additional information available:

ExamplesParameters

Examples

     DBG> EVAL/ADDR X
     400
     DBG> SYMB 400
     address 400:
         FOO\X
     DBG> EXAM 400
     FOO\X: 3
     DBG> SYMB R0
     address %R0:
         FOO\Y
         FOO\Z

Parameters

     address-expression

     any address expression  which  is  valid  in  the  currently  set
     language.

TYPE

     Displays source code corresponding to the specified  line  number
     or  specified  line number range.  In non-screen mode, the source
     code is just written to the terminal.  In  screen  mode,  with  a
     source  window  displayed,  the TYPE command positions the source
     window around the specified line.

 Format:

     TYPE [ [modname\]line-number[:line-number]
                        [,[modname\]line-number[:line-number]...] ]

Additional information available:

ExampleParameters

Example

     DBG> TYPE 1
     module FORARRAY
          1:         PROGRAM FORARRAY
     DBG> TYPE
     module FORARRAY
          2: C
     DBG> TYPE 1:5
     module FORARRAY
          1:         PROGRAM FORARRAY
          2: C
          3: C       This test program is used to test
          4: C       FORTRAN array references in the Debugger.
          5: C       It allows testing of straight array references,

Parameters

 line-number

     The listing line number for the source line.  You can  specify  a
     single  line,  a  list  of  lines,  or  a  line number range.  If
     omitted, the debugger displays the next line  after  the  one  it
     last displayed.

 modname

     Name of the module whose source you want displayed.  If  omitted,
     the default is to determine the module from the current scope.

WHILE

     The  WHILE  command  provides  a  way  of  iteratively  executing
     debugger  commands.   As long as the language expression given as
     the WHILE clause is true, the debugger command list given in  the
     DO clause is executed.

 Format:

     WHILE lang-exp DO (debug-cmd-list)

Additional information available:

ExampleParameters

Example

     To repeatedly STEP until the variable X is not equal to zero:

     DBG> WHILE (X .EQ. 0) DO (STEP/SILENT/INTO)

Parameters

 lang-exp

     Any expression in the currently set language which  evaluates  to
     TRUE or FALSE.

 debug-cmd-list

     A single debugger command, or a  sequence  of  debugger  commands
     separated by semicolons.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026