Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

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

DEBUG DEFINE — VMS FORTRAN_5.2

     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

/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
     do

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

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

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

/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

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026