Google
 

Trailing-Edge - PDP-10 Archives - BB-PBQUC-BM_1990 - help/debug.hlp
There are 3 other files named debug.hlp in the archive. Click here to see a list.
DEBUG command

The DEBUG  command  loads  your  program  into  memory  along  with  a
debugging program, compiling the source file first if necessary.  Then
it starts the debugging program.


Format

     @DEBUG (FROM) /switch(es) source/switch(es)  object,...

     where:

     switches       are  keywords  chosen   from   the   list   below,
                    indicating  your  choice of DEBUG command options.
                    They have different  effects  depending  on  their
                    position  in  the command line:  placed before all
                    files in the command, they  act  as  defaults  for
                    all;  otherwise,  they  affect  only  the  nearest
                    preceding file.
                         Defaults  are shown in the list of switches

     source         is the file specification of the  source  program.
                    The filename must be of 6 or fewer characters, and
                    the file type of 3 or fewer characters; you cannot
                    use  a  generation  number.   This argument is not
                    necessary if you supply an object filespec.

     object         is the file specification of the  object  program.
                    The  filename  must be of six or fewer characters,
                    and the file type must be .REL; you cannot  use  a
                    generation number.  This argument is not necessary
                    if you supply a source filespec.
                         Default (if  you  give  neither  source   nor
                                 object  filespecs)  -  last filespecs
                                 and associated switches you gave in a
                                 LOAD-class command

       Summary of DEBUG Command Switches (defaults in boldface)

               /10-BLISS
               /36-BLISS
               /68-COBOL
               /74-COBOL
               /ABORT
               /ALGOL
               /BINARY
               /COBOL
               /COMPILE
               /CREF
               /CROSS-REFERENCE
               /DDT
               /DEBUG
               /FAIL
               /FLAG-NON-STANDARD
               /FORTRAN
               /LANGUAGE-SWITCHES:"/switch(es)"
               /LIBRARY
               /LIST
               /MAC
               /MACHINE-CODE
               /MACRO
               /MAP
               /NOBINARY
               /NOCOMPILE
               /NOCREF
               /NOCROSS-REFERENCE
               /NODEBUG
               /NOFLAG-NON-STANDARD
               /NOLIBRARY
               /NOLIST
               /NOMACHINE-CODE
               /NOOPTIMIZE
               /NOSEARCH
               /NOSTAY
               /NOSYMBOLS
               /NOWARNINGS
               /OPTIMIZE
               /PASCAL
               /RELOCATABLE
               /SAIL
               /SEARCH
               /SIMULA
               /SNOBOL
               /STAY
               /SYMBOLS
               /WARNINGS



                          DEBUG Command Switches


     /10-BLISS        compiles the file using the BLISS-10 compiler.
                           Default for files of type .B10 and .BLI

     /36-BLISS        compiles the file using the BLISS-36 compiler.
                           Default for files of type .B36

     /68-COBOL        compiles the file using the COBOL-68 compiler.
                           Default for files of type .C68

     /74-COBOL        compiles the file using the COBOL-74 compiler.
                           Default for files of type .C74

     /ABORT           stops a compile if a fatal error is detected and
                      returns your terminal to TOPS-20 command level.

     /ALGOL           compiles the file using the ALGOL compiler.
                           Default for files of type .ALG

     /BINARY          allows generation of an object (binary) file for
                      each source file given.
                           Default

     /COBOL           compiles the  file  using  the  COBOL  compiler,
                      either   COBOL-68   or   COBOL-74,   that   your
                      installation   has   stored    in    the    file
                      SYS:COBOL.EXE.
                           Default for files of type .CBL

     /COMPILE         forces compilation of the source file even if  a
                      current  object  file  already exists.  Use this
                      switch along with a /LIST  or  /CREF  switch  to
                      obtain  listings  when  you  have current object
                      files.

     /CREF            same as /CROSS-REFERENCE.

     /CROSS-REFERENCE
                      creates  a   file   containing   cross-reference
                      information  for each compilation.  The filename
                      is that of the object file;  the  file  type  is
                      .CRF.   Use the CREF command to obtain a listing
                      of the file.   (For  COBOL  files,  this  switch
                      automatically    produces    a   cross-reference
                      listing.)  See the TOPS-20 User Utilities  Guide
                      for more information about the CREF program.

     /DDT             loads the DDT debugging program along with  your
                      object file.

     /DEBUG           produces an  object  file  containing  debugging
                      information  beyond  what  is  usually  inserted
                      during compilation.  (For FORTRAN programs only,
                      and  only  if  you  have not given the /OPTIMIZE
                      switch).

     /FAIL            compiles the file using the FAIL compiler.
                           Default for files of type .FAI

     /FLAG-NON-STANDARD
                      indicates nonstandard syntax in file.

     /FORTRAN         compiles the file using the FORTRAN compiler.
                           Default in the absence of a standard source
                                   file type and a language switch
                           Default for files of type .FOR

     /LANGUAGE-SWITCHES:"/switch(es)"
                      passes the specified switches  to  the  compiler
                      that  will  process  the  file(s)  to which this
                      switch applies.  You must include  the  switches
                      in double quotation marks ("  ").

     /LIBRARY         same as /SEARCH.

     /LIST            prints a line printer listing of the program  in
                      ASCII  format;  the  name of this listing is the
                      filename of the object file.  The  /CREF  switch
                      overrides /LIST when they both apply to the same
                      file.

     /MAC             same as /MACRO.

     /MACHINE-CODE    produces a file containing the generated machine
                      code.   The filename is that of the object file;
                      the  file  type  is  .LST.    For   high   level
                      languages.
                           Default

     /MACRO           assembles the files using the MACRO assembler.
                           Default for files of type .MAC

     /MAP             produces a loader map and stores it in the  file
                      object.MAP,  where  object  is  the  name of the
                      module containing the start address; or  (if  no
                      start address) nnnLNK.MAP, where nnn is your job
                      number.

     /NOBINARY        prevents generation of an object (binary)  file.
                      Use  this  switch  along  with /LIST or /CREF to
                      allow these  switches  to  take  effect  without
                      producing a new object file.

     /NOCOMPILE       prevents compilation if  the  associated  object
                      file    is    current;   otherwise   it   forces
                      compilation.    Cancels    the    /COMPILE    or
                      /RELOCATABLE switch.
                           Default

     /NOCREF          same as /NOCROSS-REFERENCE.

     /NOCROSS-REFERENCE
                      prevents the creation of a cross-reference file.
                           Default

     /NODEBUG         excludes special debugging information from your
                      object file.  (For FORTRAN programs only.)

     /NOFLAG-NON-STANDARD
                      prevents   a   line   printer   listing   of   a
                      cross-reference file.
                           Default

     /NOLIBRARY       same as /NOSEARCH.

     /NOLIST          prevents a line printer listing of the program.
                           Default

     /NOMACHINE-CODE  prevents generation of a file containing machine
                      code.
                           Default

     /NOOPTIMIZE      prevents the generation of a globally  optimized
                      object file (for FORTRAN programs only).
                           Default

     /NOSEARCH        requires all modules in the object file  library
                      (the  file  accompanied  by  this  switch in the
                      command line) to be loaded even if they are  not
                      called  by  your  program.   Cancels the /SEARCH
                      switch.
                           Default

     /NOSTAY          stops  the  compiler  from  being  placed  in  a
                      background  fork.   Use  when  /STAY is set as a
                      default for the compiler.

     /NOSYMBOLS       prevents a symbol table from being loaded  along
                      with the object file.

     /NOWARNINGS      prevents  display  of  warnings   for   nonfatal
                      errors.

     /OPTIMIZE        calls for generation  of  a  globally  optimized
                      object  file,  that is, one that runs as quickly
                      as possible.  (For FORTRAN  programs  only,  and
                      only if you do not also give the /DEBUG switch).

     /PASCAL          compiles the file using the PASCAL compiler.
                           Default for files of type .PAS

     /RELOCATABLE     identifies the input  file  as  an  object  file
                      (regardless   of  its  extension)  and  prevents
                      compilation of the source file, forcing  use  of
                      an  existing object file even if the object file
                      is out of date.
                           Default for files of type .REL

     /SAIL            compiles the file using the SAIL compiler.
                           Default for files of type .SAI

     /SEARCH          requires that the object file library (the  file
                      accompanied  by this switch in the command line)
                      be searched for modules called by  your  program
                      or  by a program subroutine.  Only these modules
                      are loaded, along with modules called  from  the
                      system libraries, which are always searched.

     /SIMULA          compiles the file using the SIMULA compiler.
                           Default for files of type .SIM

     /SNOBOL          compiles the file using the SNOBOL compiler.
                           Default for files of type .SNO

     /STAY            returns your terminal to TOPS-20  command  level
                      so  that  you  can  perform other work while the
                      system continues executing  the  DEBUG  command.
                      You immediately receive the TOPS-20 prompt (@ or
                      $) and can then  issue  any  user  command.   Be
                      careful  not  to send incorrect data to programs
                      expecting  terminal  input.    (Refer   to   the
                      CONTINUE    command,   Restrictions:    Programs
                      competing for terminal input.)

                      This switch saves you from having to:   issue  a
                      ^T  to  make sure the debugger has begun; give a
                      ^C to halt debugging; and issue a CONTINUE /STAY
                      command   to  remain  at  command  level  during
                      debugging.

     /SYMBOLS         loads a symbol table along with the object file;
                      helpful for debugging a program.
                           Default

     /WARNINGS        displays warnings for nonfatal errors.
                           Default


Characteristics

     Compiling New Sources Only

          Before debugging programs, the  system  ordinarily  compiles
          any source (and only those sources) whose write date is more
          recent than that of the object file of the same  name.   You
          can  override  this action with the /COMPILE or /RELOCATABLE
          switch.  Note that the DDT debugging program  is  used  when
          /RELOCATABLE prevents a new compilation.

     Default Switches Not Passed to Compiler

          Only switches specified in a LOAD-class command  are  passed
          to  the compiler; default switches are not passed.  Instead,
          the system assumes that the defaults for  the  compiler  are
          the same as the defaults for the LOAD-class command.

     Using Standard File Types

          If you specify source files with standard types (.FOR, .MAC,
          .CBL,  or .ALG) in a DEBUG command, the system automatically
          calls  the  appropriate   compiler   when   compilation   is
          necessary.   If  you  specify source files by filename only,
          the system searches your connected directory  in  the  above
          order for a file of this name and a standard type.  To debug
          programs from sources that have nonstandard file types, give
          a  switch to indicate the proper compiler (/FORTRAN, /MACRO,
          /COBOL, or /ALGOL).  A switch will take  precedence  over  a
          standard file type if they indicate different languages.  If
          no compiler is indicated with either a switch or a  standard
          file type, the FORTRAN compiler is used.

     Name of Debugging Program Loaded by DEBUG

          Ordinarily  the  DEBUG  command   causes   the   appropriate
          debugging  program  to  be  loaded  along  with your program
          (FORDDT with FORTRAN programs.  COBDDT with COBOL  programs,
          DDT  with MACRO and ALGOL programs).  Use the /DDT switch to
          specify that DDT be used.


Hints

     Commas Between Filespecs

          If you give two or more filespecs  separated  by  commas  as
          arguments  to  DEBUG, the loaded programs exist in memory at
          the same time and will act as a single program.  You can use
          this  feature  to  substitute  one  module for another under
          varying conditions or for different applications.

     Plus Signs Between Filespecs

          If you give two or more filespecs separated  by  plus  signs
          (+) as arguments to DEBUG, they are treated as a single file
          by compilers.  Their  object  module  is  stored  under  any
          filename  given  as the "object" argument of the command, or
          (if none) under the last filename in the group and file type
          .REL.

     Indirect Files as Arguments

          You can store the arguments (source  and  object  filespecs,
          switches)  of  a  DEBUG  command  in  an  indirect file, and
          specify them by typing an at sign (@) and its filespec as  a
          DEBUG command argument.

     Establishing Default Arguments with the SET Command

          You can issue the SET DEFAULT  COMPILE-SWITCHES  command  to
          set  up  default  global  arguments  to  the  DEBUG command.
          Insert this SET command in your COMAND.CMD  file  to  change
          your own defaults permanently.

     Including all FORTRAN Debugging Information

          If you are debugging a  FORTRAN  program  and  you  wish  to
          examine  line  numbers or DO loops, or use statement tracing
          or array dimension checking, give the  /DEBUG  and  /COMPILE
          switches  with  the  DEBUG  command to include the necessary
          information.

     Running LINK Directly

          The DEBUG command  automatically  runs  LINK,  the  system's
          loader  program,  but  if you require control of the loading
          process you can run LINK directly.   See  the  TOPS-20  LINK
          Reference Manual.

     Wildcards Illegal with DEBUG

          The DEBUG command does not accept wildcard characters (* and
          %) in a file specification.


Effect on Memory

     The DEBUG command clears any unkept forks from memory, loads  the
     appropriate  compiler if necessary, then loads your program and a
     compatible debugging program.


Related Commands

     COMPILE, LOAD, and EXECUTE     other  LOAD-class   commands   for
                                    performing related functions

     DDT                            for loading and starting  the  DDT
                                    debugging program, or for starting
                                    the  debugging  program  you  have
                                    already loaded


Examples

     1.  Debug a FORTRAN program.

              @DEBUG FORT.FOR
              FORTRAN: FORT
              MAIN.
              LINK:   Loading
              [LNKDEB FOR DDT Execution]
              STARTING FORTRAN DDT

              >>

     2.  Debug a FORTRAN program using the /COMPILE  switch  to  force
         compilation  and  the  /DEBUG  switch  to generate additional
         debugging information.

              @DEBUG /COMPILE /DEBUG FORT.FOR
              FORTRAN:FORT
              MAIN.
              LINK:    Loading
              [LNKDEB FORDDT Execution]
              STARTING FORTRAN DDT

              >>

     3.  Using incompatible switches, try to debug  a  program.   (The
         system ignores one of them and continues.)

         @DEBUG/COMPILE/OPTIMIZE/DEBUG FORT
         FORTRAN: FORT
         %ERROR IS GLOBAL OPTIMIZATION NOT SUPPORTED WITH
         /DEBUG - /OPT IGNORED
         MAIN.
         LINK:   Loading
         [LNKDEB FORDDT Execution]

         STARTING FORTRAN DDT

         >>

     4.  Get a time-ordered list of TEST1  files  in  your  directory.
         Debug an old version of it.

         @TDIRECTORY TEST1.*
                              WRITE

            PS:<LATTA>
          TEST1.CBL.2         5-Jan-85 13:10:57
            .LST.1            6-Jan-85 14:22:00
            .REL.1            6-Dec-84 10:08:17

          Total of 3 files
         @DEBUG TEST1/RELOCATABLE
         LINK:   Loading
         [LNKDEB DDT Execution]
         DDT