## 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 String Field, for more information about their use.

`digit`
`(`
`-`

  Variable on the stack; see Stack Variables.

`:`

  C`++` nested symbol; see See Nested Symbols.

`a`

  Parameter passed by reference in register; see Reference Parameters.

`b`

  Based variable; see Based Variables.

`c`

  Constant; see Constants.

`C`

  Conformant array bound (Pascal, maybe other languages); Conformant Arrays. 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 Register Parameters.

`f`

  File scope function; see Procedures.

`F`

  Global function; see Procedures.

`G`

  Global variable; see Global Variables.

`i`

  See Register Parameters.

`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 Register Parameters.

`r`

  Register variable; see Register Variables.

`S`

  File scope variable; see Statics.

`s`

  Local variable (OS9000).

`t`

  Type name; see Typedefs.

`T`

  Enumeration, structure, or union tag; see Typedefs.

`v`

  Parameter passed by reference; see Reference Parameters.

`V`

  Procedure scope static variable; see Statics.

`x`

  Conformant array; see Conformant Arrays.

`X`

  Function return variable; see Parameters.