Google
 

Trailing-Edge - PDP-10 Archives - BB-BT99T-BB_1990 - 10,7/glob/glob.hlp
There are 11 other files named glob.hlp in the archive. Click here to see a list.
Listing GLOBal Symbols Using GLOB

Function

The  GLOB  program  reads  multiple  binary  files  and  produces   an
alphabetical  cross-referenced list of all the global symbols (symbols
accessible to other programs) that it encounters.  This  program  also
searches files in library search mode, checking for global symbols, if
the program file was loaded by LINK in library search mode.  (See  the
LINK manual.)

The GLOB program has two phases of operation:

     1.  Phase one scans the input files and builds an internal symbol
         table.

     2.  Phase two produces output based on the symbol table.

Because of these phases, you can enter commands to GLOB in one of  two
ways.   The first way is to specify one command string containing both
the output and input specifications; this is the command string format
most  system  programs  accept.  The second is to separate the command
string into a series of input commands and output commands.


Formats

     R GLOB

     *output file-spec=input file-spec(/switch,/switch)<ESC>

where:  * is the GLOB prompt, and  /switch  is  one  or  more  of  the
        switches listed below.


     R GLOB

     followed by one or more input commands in the form:

          file-spec, file-spec,...<RET>

     and then one or more output commands in the form:

          output file-spec=<ESC>

When you separate your input to GLOB into input  commands  and  output
commands,  the  input commands contain only input specifications.  The
output commands  contain  only  output  specifications.   Each  output
command  causes  a listing to be generated; any number of listings can
be printed from the symbol table  generated  from  the  current  input
files,  as  long  as  no  input  commands occur after the first output
command.  When GLOB encounters an input command after output has  been
generated, it destroys the current symbol table and begins a new one.

An ESCape (or ALTmode) terminates the command input and  signals  GLOB
to print the cross-referenced listing.  A listing is not printed until
GLOB encounters an ESCape.  Press ESCape at the  end  of  the  command
string  shown in command format 1 or at the end of each output command
shown in command format 2.

If you omit some of the information in a  GLOB  command,  the  program
takes the following defaults:

      o  If the device is omitted, it is assumed to be DSK:.  However,
         if  the  entire  output  specification is omitted, the output
         device is TTY:.

      o  If the output file name is omitted, it is  the  name  of  the
         last  input file on the line (Command Format 1) or is GLOB if
         the line contains only output commands  (Command  Format  2).
         The input file names are required.

      o  If the output extension is omitted, .GLB  is  used.   If  the
         input  extension is omitted, it is assumed to be .REL, unless
         the null extension is explicitly specified by a dot following
         the file name.

      o  If the directory area [directory] is  omitted,  your  default
         directory is used.

Switches to GLOB control the type of global listings  to  be  printed.
If  you issue several switches, enclose them in parentheses.  Only the
most recently specified switch (except for L, M, P, Q,  and  X,  which
are  always  in effect) is in effect at any given time.  If you do not
specify any switches, GLOB prints all global  symbols.   The  switches
and their functions are:

/A        Prints all global  symbols.   This  is  the  default  if  no
          switches are specified.

/E        Prints  only  erroneous  (multiply  defined  or   undefined)
          symbols.

/F        Prints nonrelocatable (fixed) symbols only.

/H        Prints a list of the switches available from HLP:GLOB.HLP.

/L        Scans programs  only  if  they  contain  globals  previously
          defined and not yet satisfied (library search mode).

/M        Turns off scanning mode resulting from the /L switch.

/N        Prints only symbols that are never referenced.

/P        Prints all routines that define a symbol to  have  the  same
          value.   The  routine  that  defines  the  symbol  first  is
          printed, followed by a plus (+) sign.   Subsequent  routines
          that define the symbol are printed, preceded by a plus sign.

/Q        Suppresses the printing  of  subsequent  defining  routines,
          which result from the /P switch.

/R        Prints only relocatable symbols.

/S        Prints symbols with nonconflicting values that  are  defined
          in more than one program.

/X        Suppresses the header page when the  output  device  is  not
          your  terminal,  and  includes  the  header  when it is your
          terminal.  Without this switch, the header is printed on all
          devices except your terminal.


Output from GLOB

The listing header is in the format:

     Flags  Symbol  Octal Value  Defined  Referenced

The flags are:

Flags     Meaning

M         Multiply-defined symbol (shows all values).

N         Never referred to (was not declared external in any  of  the
          binary programs).

S         Multiply specified symbol (that is, defined in more than one
          program  but  with  nonconflicting values).  The name of the
          first  program  in  which  the  symbol  was  encountered  is
          followed by a plus sign.

U         Undefined symbol.

Symbols are listed in alphabetical  order  according  to  their  ASCII
collating  sequence.   An  apostrophe (') follows the octal value of a
relocatable symbol.  The value is then relative to  the  beginning  of
the program in which the symbol is defined.


Characteristics

The GLOB program:

     Requires LOGIN.

     Places your terminal at user level.

     Destroys your core image.


Example

Run the GLOB program, and print all global symbols in the program MAIN
(on  DSK:),  and SUB40 and SUB50 (on DTA2:) on the line printer.  Each
symbol is printed with its value, the program in which it is  defined,
all programs in which it is referenced, and any error flags.

     .R GLOB<RET>

     *LPT:=MAIN.REL,DTA2:SUB40,SUB50<ESC>

The programs to  be  scanned  are  BATCH.REL  and  DATA.REL  on  DTA4,
NUMBER.REL  and  CLASS.REL  on  DTA6:,  and MATH.REL and LIBRAR.REL on
DSK:.

     *DTA4:BATCH.REL,DATA.REL,DTA6:NUMBER.REL,CLASS.REL<RET>
     *DSK:MATH.REL,LIBRAR.REL<RET>

Print only nonrelocatable symbols on the line printer.

     *LPT:=/F4<ESC>

Print only relocatable symbols  in  the  file  named  SYMBOL  in  your
default directory.

     *DSK:SYMBOL=/R<ESC>

Print all erroneous symbols on the terminal.  EXTSYM is  an  undefined
symbol appearing in the program SUBRTE.

     *TTY:=/E<ESC>

     U EXTSYM SUBRTE

Return to monitor level.

     *^C

     .