as: Stab

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