typedef struct StabSym StabSym; typedef struct Stab Stab; /* defined in mach.h */ struct StabSym { char *name; uchar type; uchar other; u16int desc; u32int value; }; enum { EXT = 0x01, N_UNDEF = 0x00, N_ABS = 0x02, N_TEXT = 0x04, N_DATA = 0x06, N_BSS = 0x08, N_INDR = 0x0A, N_FN_SEQ = 0x0C, N_WEAKU = 0x0D, N_WEAKA = 0x0E, N_WEAKT = 0x0F, N_WEAKD = 0x10, N_WEAKB = 0x11, N_COMM = 0x12, N_SETA = 0x14, N_SETT = 0x16, N_GSYM = 0x20, N_FNAME = 0x22, N_FUN = 0x24, N_STSYM = 0x26, N_LCSYM = 0x28, N_MAIN = 0x2A, N_ROSYM = 0x2C, N_PC = 0x30, N_NSYMS = 0x32, N_NOMAP = 0x34, N_OBJ = 0x38, N_OPT = 0x3C, N_RSYM = 0x40, N_M2C = 0x42, N_SLINE = 0x44, N_DSLINE = 0x46, N_BSLINE = 0x48, N_BROWS = 0x48, N_DEFD = 0x4A, N_FLINE = 0x4C, N_EHDECL = 0x50, N_MOD2 = 0x50, N_CATCH = 0x54, N_SSYM = 0x60, N_ENDM = 0x62, N_SO = 0x64, N_ALIAS = 0x6C, N_LSYM = 0x80, N_BINCL = 0x82, N_SOL = 0x84, N_PSYM = 0xA0, N_EINCL = 0xA2, N_ENTRY = 0xA4, N_LBRAC = 0xC0, N_EXCL = 0xC2, N_SCOPE = 0xC4, N_RBRAC = 0xE0, N_BCOMM = 0xE2, N_ECOMM = 0xE4, N_ECOML = 0xE8, N_WITH = 0xEA, N_LENG = 0xFE }; /* symbol descriptors [(0-9\-] variable on stack : C++ nested symbol a parameter by reference b based variable c constant C conformant array bound name of caught exception (N_CATCH) d fp register variable D fp parameter f file scope function F global function G global variable i register parameter? I nested procedure J nested function L label name m module p arg list parameter pP pF P register param (N_PSYM) proto of ref fun (N_FUN) Q static procedure R register param r register variable S file scope variable s local variable t type name T sue tag v param by reference V procedure scope static variable x conformant array X function return variable */ int stabsym(Stab*, int, StabSym*);