Go to the first, previous, next, last section, table of contents.

# Table of Stab Types

The following are all the possible values for the stab type field, for a.out files, in numeric order. This does not apply to XCOFF, but it does apply to stabs in sections (see section Using Stabs in Their Own Sections). Stabs in ECOFF use these values but add 0x8f300 to distinguish them from non-stab symbols.

The symbolic names are defined in the file ``include/aout/stabs.def'`.

- Non-Stab Symbol Types: Types from 0 to 0x1f
- Stab Symbol Types: Types from 0x20 to 0xff

## Non-Stab Symbol Types

The following types are used by the linker and assembler, not by stab directives. Since this document does not attempt to describe aspects of object file format other than the debugging format, no details are given.

@tableindent=1.5in

`0x0 N_UNDF`
  Undefined symbol
`0x2 N_ABS`
  File scope absolute symbol
`0x3 N_ABS | N_EXT`
  External absolute symbol
`0x4 N_TEXT`
  File scope text symbol
`0x5 N_TEXT | N_EXT`
  External text symbol
`0x6 N_DATA`
  File scope data symbol
`0x7 N_DATA | N_EXT`
  External data symbol
`0x8 N_BSS`
  File scope BSS symbol
`0x9 N_BSS | N_EXT`
  External BSS symbol
`0x0c N_FN_SEQ`
  Same as `N_FN`, for Sequent compilers
`0x0a N_INDR`
  Symbol is indirected to another symbol
`0x12 N_COMM`
  Common--visible after shared library dynamic link
`0x14 N_SETA`
`0x15 N_SETA | N_EXT`
  Absolute set element
`0x16 N_SETT`
`0x17 N_SETT | N_EXT`
  Text segment set element
`0x18 N_SETD`
`0x19 N_SETD | N_EXT`
  Data segment set element
`0x1a N_SETB`
`0x1b N_SETB | N_EXT`
  BSS segment set element
`0x1c N_SETV`
`0x1d N_SETV | N_EXT`
  Pointer to set vector
`0x1e N_WARNING`
  Print a warning message during linking
`0x1f N_FN`
  File name of a ``.o'` file

## Stab Symbol Types

The following symbol types indicate that this is a stab. This is the full list of stab numbers, including stab types that are used in languages other than C.

`0x20 N_GSYM`
  Global symbol; see section Global Variables.
`0x22 N_FNAME`
  Function name (for BSD Fortran); see section Procedures.
`0x24 N_FUN`
  Function name (see section Procedures) or text segment variable (see section Static Variables).
`0x26 N_STSYM`
  Data segment file-scope variable; see section Static Variables.
`0x28 N_LCSYM`
  BSS segment file-scope variable; see section Static Variables.
`0x2a N_MAIN`
  Name of main routine; see section Main Program.
`0x2c N_ROSYM`
  Variable in `.rodata` section; see section Static Variables.
`0x30 N_PC`
  Global symbol (for Pascal); see section N_PC.
`0x32 N_NSYMS`
  Number of symbols (according to Ultrix V4.0); see section N_NSYMS.
`0x34 N_NOMAP`
  No DST map; see section N_NOMAP.
`0x38 N_OBJ`
  Object file (Solaris2).
`0x3c N_OPT`
  Debugger options (Solaris2).
`0x40 N_RSYM`
  Register variable; see section Register Variables.
`0x42 N_M2C`
  Modula-2 compilation unit; see section N_M2C.
`0x44 N_SLINE`
  Line number in text segment; see section Line Numbers.
`0x46 N_DSLINE`
  Line number in data segment; see section Line Numbers.
`0x48 N_BSLINE`
  Line number in bss segment; see section Line Numbers.
`0x48 N_BROWS`
  Sun source code browser, path to ``.cb'` file; see section N_BROWS.
`0x4a N_DEFD`
  GNU Modula2 definition module dependency; see section N_DEFD.
`0x4c N_FLINE`
  Function start/body/end line numbers (Solaris2).
`0x50 N_EHDECL`
  GNU C++ exception variable; see section N_EHDECL.
`0x50 N_MOD2`
  Modula2 info "for imc" (according to Ultrix V4.0); see section N_MOD2.
`0x54 N_CATCH`
  GNU C++ `catch` clause; see section N_CATCH.
`0x60 N_SSYM`
  Structure of union element; see section N_SSYM.
`0x62 N_ENDM`
  Last stab for module (Solaris2).
`0x64 N_SO`
  Path and name of source file; see section Paths and Names of the Source Files.
`0x80 N_LSYM`
  Stack variable (see section Automatic Variables Allocated on the Stack) or type (see section Giving a Type a Name).
`0x82 N_BINCL`
  Beginning of an include file (Sun only); see section Names of Include Files.
`0x84 N_SOL`
  Name of include file; see section Names of Include Files.
`0xa0 N_PSYM`
  Parameter variable; see section Parameters.
`0xa2 N_EINCL`
  End of an include file; see section Names of Include Files.
`0xa4 N_ENTRY`
  Alternate entry point; see section Alternate Entry Points.
`0xc0 N_LBRAC`
  Beginning of a lexical block; see section Block Structure.
`0xc2 N_EXCL`
  Place holder for a deleted include file; see section Names of Include Files.
`0xc4 N_SCOPE`
  Modula2 scope information (Sun linker); see section N_SCOPE.
`0xe0 N_RBRAC`
  End of a lexical block; see section Block Structure.
`0xe2 N_BCOMM`
  Begin named common block; see section Common Blocks.
`0xe4 N_ECOMM`
  End named common block; see section Common Blocks.
`0xe8 N_ECOML`
  Member of a common block; see section Common Blocks.
`0xea N_WITH`
  Pascal `with` statement: type,,0,0,offset (Solaris2).
`0xf0 N_NBTEXT`
  Gould non-base registers; see section Non-base registers on Gould systems.
`0xf2 N_NBDATA`
  Gould non-base registers; see section Non-base registers on Gould systems.
`0xf4 N_NBBSS`
  Gould non-base registers; see section Non-base registers on Gould systems.
`0xf6 N_NBSTS`
  Gould non-base registers; see section Non-base registers on Gould systems.
`0xf8 N_NBLCS`
  Gould non-base registers; see section Non-base registers on Gould systems.

@tableindent=.8in

Go to the first, previous, next, last section, table of contents.