as: Stab

 
 7.90 '.stabd, .stabn, .stabs'
 =============================
 
 There are three directives that begin '.stab'.  All emit symbols (See
 Symbols), for use by symbolic debuggers.  The symbols are not entered
 in the 'as' hash table: they cannot be referenced elsewhere in the
 source file.  Up to five fields are required:
 
 STRING
      This is the symbol's name.  It may contain any character except
      '\000', so is more general than ordinary symbol names.  Some
      debuggers used to code arbitrarily complex structures into symbol
      names using this field.
 
 TYPE
      An absolute expression.  The symbol's type is set to the low 8 bits
      of this expression.  Any bit pattern is permitted, but 'ld' and
      debuggers choke on silly bit patterns.
 
 OTHER
      An absolute expression.  The symbol's "other" attribute is set to
      the low 8 bits of this expression.
 
 DESC
      An absolute expression.  The symbol's descriptor is set to the low
      16 bits of this expression.
 
 VALUE
      An absolute expression which becomes the symbol's value.
 
    If a warning is detected while reading a '.stabd', '.stabn', or
 '.stabs' statement, the symbol has probably already been created; you
 get a half-formed symbol in your object file.  This is compatible with
 earlier assemblers!
 
 '.stabd TYPE , OTHER , DESC'
 
      The "name" of the symbol generated is not even an empty string.  It
      is a null pointer, for compatibility.  Older assemblers used a null
      pointer so they didn't waste space in object files with empty
      strings.
 
      The symbol's value is set to the location counter, relocatably.
      When your program is linked, the value of this symbol is the
      address of the location counter when the '.stabd' was assembled.
 
 '.stabn TYPE , OTHER , DESC , VALUE'
      The name of the symbol is set to the empty string '""'.
 
 '.stabs STRING , TYPE , OTHER , DESC , VALUE'
      All five fields are specified.