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