Table A lists stab types sorted by type number. Stab type numbers are 32 and greater. This is the full list of stab numbers, including stab types that are used in languages other than C.
The #define names for these stab types are defined in: devo/include/aout/stab.def
type type #define used to describe dec hex name source program feature ------------------------------------------------ 32 0x20 N_GYSM global symbol 34 0X22 N_FNAME function name (for BSD Fortran) 36 0x24 N_FUN function name or text segment variable for C 38 0x26 N_STSYM static symbol (data segment w/internal linkage) 40 0x28 N_LCSYM .lcomm symbol(BSS-seg variable w/internal linkage) 42 0x2a N_MAIN Name of main routine (not used in C) 48 0x30 N_PC global symbol (for Pascal) 50 0x32 N_NSYMS number of symbols (according to Ultrix V4.0) 52 0x34 N_NOMAP no DST map for sym (according to Ultrix V4.0) 64 0x40 N_RSYM register variable 66 0x42 N_M2C Modula-2 compilation unit 68 0x44 N_SLINE line number in text segment 70 0x46 N_DSLINE line number in data segment 72 0x48 N_BSLINE line number in bss segment 72 0x48 N_BROWS Sun source code browser, path to .cb file 74 0x4a N_DEFD GNU Modula2 definition module dependency 80 0x50 N_EHDECL GNU C++ exception variable 80 0x50 N_MOD2 Modula2 info "for imc" (according to Ultrix V4.0) 84 0x54 N_CATCH GNU C++ "catch" clause 96 0x60 N_SSYM structure of union element 100 0x64 N_SO path and name of source file 128 0x80 N_LSYM automatic var in the stack (also used for type desc.) 130 0x82 N_BINCL beginning of an include file (Sun only) 132 0x84 N_SOL Name of sub-source (#include) file. 160 0xa0 N_PSYM parameter variable 162 0xa2 N_EINCL end of an include file 164 0xa4 N_ENTRY alternate entry point 192 0xc0 N_LBRAC beginning of a lexical block 194 0xc2 N_EXCL place holder for a deleted include file 196 0xc4 N_SCOPE modula2 scope information (Sun linker) 224 0xe0 N_RBRAC end of a lexical block 226 0xe2 N_BCOMM begin named common block 228 0xe4 N_ECOMM end named common block 232 0xe8 N_ECOML end common (local name) << used on Gould systems for non-base registers syms >> 240 0xf0 N_NBTEXT ?? 242 0xf2 N_NBDATA ?? 244 0xf4 N_NBBSS ?? 246 0xf6 N_NBSTS ?? 248 0xf8 N_NBLCS ??
Table B shows the types of symbol table entries that hold assembler and linker symbols.
The #define names for these n_types values are defined in /include/aout/aout64.h
dec hex #define n_type n_type name used to describe ------------------------------------------ 1 0x0 N_UNDF undefined symbol 2 0x2 N_ABS absolute symbol -- defined at a particular address 3 0x3 extern " (vs. file scope) 4 0x4 N_TEXT text symbol -- defined at offset in text segment 5 0x5 extern " (vs. file scope) 6 0x6 N_DATA data symbol -- defined at offset in data segment 7 0x7 extern " (vs. file scope) 8 0x8 N_BSS BSS symbol -- defined at offset in zero'd segment 9 extern " (vs. file scope) 12 0x0C N_FN_SEQ func name for Sequent compilers (stab exception) 49 0x12 N_COMM common sym -- visable after shared lib dynamic link 31 0x1f N_FN file name of a .o file
descriptor meaning ------------------------------------------------- (empty) local variable f local function F global function G global variable p value parameter r register variable S static global variable t type name T enumeration, struct or type tag V static local variable
descriptor meaning ------------------------------------- (empty) type reference a array type e enumeration type f function type r range type s structure type u union specifications * pointer type