Symbol Descriptors (STABS)

## Appendix B Table of Symbol Descriptors ¶

The symbol descriptor is the character which follows the colon in many stabs, and which tells what kind of stab it is. See The String Field, for more information about their use.

`digit`
`(`
`-`

  Variable on the stack; see Automatic Variables Allocated on the Stack.

`:`

  C`++` nested symbol; see See Defining a Symbol Within Another Type.

`a`

  Parameter passed by reference in register; see Passing Parameters by Reference.

`b`

  Based variable; see Fortran Based Variables.

`c`

  Constant; see Constants.

`C`

  Conformant array bound (Pascal, maybe other languages); Passing Conformant Array Parameters. Name of a caught exception (GNU C`++`). These can be distinguished because the latter uses `N_CATCH` and the former uses another symbol type.

`d`

  Floating point register variable; see Register Variables.

`D`

  Parameter in floating point register; see Passing Parameters in Registers.

`f`

  File scope function; see Procedures.

`F`

  Global function; see Procedures.

`G`

  Global variable; see Global Variables.

`i`

  See Passing Parameters in Registers.

`I`

  Internal (nested) procedure; see Nested Procedures.

`J`

  Internal (nested) function; see Nested Procedures.

`L`

  Label name (documented by AIX, no further information known).

`m`

  Module; see Procedures.

`p`

  Argument list parameter; see Parameters.

`pP`

  See Parameters.

`pF`

  Fortran Function parameter; see Parameters.

`P`

  Unfortunately, three separate meanings have been independently invented for this symbol descriptor. At least the GNU and Sun uses can be distinguished by the symbol type. Global Procedure (AIX) (symbol type used unknown); see Procedures. Register parameter (GNU) (symbol type `N_PSYM`); see Parameters. Prototype of function referenced by this file (Sun `acc`) (symbol type `N_FUN`).

`Q`

  Static Procedure; see Procedures.

`R`

  Register parameter; see Passing Parameters in Registers.

`r`

  Register variable; see Register Variables.

`S`

  File scope variable; see Static Variables.

`s`

  Local variable (OS9000).

`t`

  Type name; see Giving a Type a Name.

`T`

  Enumeration, structure, or union tag; see Giving a Type a Name.

`v`

  Parameter passed by reference; see Passing Parameters by Reference.

`V`

  Procedure scope static variable; see Static Variables.

`x`

  Conformant array; see Passing Conformant Array Parameters.

`X`

  Function return variable; see Parameters.