Blame


1 a84cbb2a 2004-04-19 devnull stabs
2 a84cbb2a 2004-04-19 devnull
3 a84cbb2a 2004-04-19 devnull N_MAIN with name "main" to identify entry function
4 a84cbb2a 2004-04-19 devnull N_SO source file. might be preceded by dir ending in /
5 a84cbb2a 2004-04-19 devnull value is code ptr
6 a84cbb2a 2004-04-19 devnull empty string means source done
7 a84cbb2a 2004-04-19 devnull N_SOL source include file, value = text addr of where this starts
8 a84cbb2a 2004-04-19 devnull N_SLINE start of source line
9 a84cbb2a 2004-04-19 devnull no name
10 a84cbb2a 2004-04-19 devnull desc = line number
11 a84cbb2a 2004-04-19 devnull value = code addr for that line
12 a84cbb2a 2004-04-19 devnull
13 a84cbb2a 2004-04-19 devnull N_FUN (36) function def
14 a84cbb2a 2004-04-19 devnull 'F' global 'f' local
15 a84cbb2a 2004-04-19 devnull value = addr
16 a84cbb2a 2004-04-19 devnull desc = line number of def
17 a84cbb2a 2004-04-19 devnull return type is number after :
18 a84cbb2a 2004-04-19 devnull
19 a84cbb2a 2004-04-19 devnull nil name marks end of function
20 a84cbb2a 2004-04-19 devnull
21 a84cbb2a 2004-04-19 devnull constants
22 a84cbb2a 2004-04-19 devnull
23 a84cbb2a 2004-04-19 devnull c= XXX p. 15
24 a84cbb2a 2004-04-19 devnull
25 a84cbb2a 2004-04-19 devnull N_LSYM (128) local variable
26 a84cbb2a 2004-04-19 devnull :type-number
27 a84cbb2a 2004-04-19 devnull value = offset from fp
28 a84cbb2a 2004-04-19 devnull :ptype means parameter passed in reg but stored as variable
29 a84cbb2a 2004-04-19 devnull
30 a84cbb2a 2004-04-19 devnull N_GSYM (32) global variable
31 a84cbb2a 2004-04-19 devnull addr not given (use external symbol)
32 a84cbb2a 2004-04-19 devnull :type
33 a84cbb2a 2004-04-19 devnull
34 a84cbb2a 2004-04-19 devnull N_RSYM register value
35 a84cbb2a 2004-04-19 devnull
36 a84cbb2a 2004-04-19 devnull N_STSYM(38)/N_FUN/N_LCSYM(40) data/text/bss
37 a84cbb2a 2004-04-19 devnull static varibale 'S' file static 'V' procedure static
38 a84cbb2a 2004-04-19 devnull :Stype :Vtype
39 a84cbb2a 2004-04-19 devnull
40 a84cbb2a 2004-04-19 devnull N_PSYM (160) parameter
41 a84cbb2a 2004-04-19 devnull :ptype
42 a84cbb2a 2004-04-19 devnull value=offset from fp
43 a84cbb2a 2004-04-19 devnull desc = line number of decl
44 a84cbb2a 2004-04-19 devnull
45 a84cbb2a 2004-04-19 devnull register params followed by an N_RSYM with same name and :rtype.
46 a84cbb2a 2004-04-19 devnull
47 a84cbb2a 2004-04-19 devnull skip types
48 a84cbb2a 2004-04-19 devnull
49 a84cbb2a 2004-04-19 devnull type (a,b) means a=file number b=type number
50 a84cbb2a 2004-04-19 devnull
51 a84cbb2a 2004-04-19 devnull N_BINCL/N_EINCL begin/end include
52 a84cbb2a 2004-04-19 devnull N_EXCL - same effect as earlier guy
53 a84cbb2a 2004-04-19 devnull
54 a84cbb2a 2004-04-19 devnull
55 a84cbb2a 2004-04-19 devnull
56 a84cbb2a 2004-04-19 devnull =============
57 a84cbb2a 2004-04-19 devnull
58 a84cbb2a 2004-04-19 devnull type crap
59 a84cbb2a 2004-04-19 devnull
60 a84cbb2a 2004-04-19 devnull
61 a84cbb2a 2004-04-19 devnull
62 a84cbb2a 2004-04-19 devnull name:symbol_opt typeinfo
63 a84cbb2a 2004-04-19 devnull
64 a84cbb2a 2004-04-19 devnull typeinfo ::= typenum | typenum = attr* typedef
65 a84cbb2a 2004-04-19 devnull
66 a84cbb2a 2004-04-19 devnull typenum ::= integer | '(' integer ',' integer ')'
67 a84cbb2a 2004-04-19 devnull
68 a84cbb2a 2004-04-19 devnull attr ::= @ attrtext ;
69 a84cbb2a 2004-04-19 devnull
70 a84cbb2a 2004-04-19 devnull attrtext ::= 'a' integer (alignment)
71 a84cbb2a 2004-04-19 devnull | 'p' integer (pointer class)
72 a84cbb2a 2004-04-19 devnull | 'P' (packed type)
73 a84cbb2a 2004-04-19 devnull | 's' integer (size of type in bits)
74 a84cbb2a 2004-04-19 devnull | 'S' (string instead of array of chars)
75 a84cbb2a 2004-04-19 devnull
76 a84cbb2a 2004-04-19 devnull typedef ::= typeinfo
77 a84cbb2a 2004-04-19 devnull | 'b' ('u' | 's') 'c'? width; offset; nbits; (builtin, signed/unsigned, char/not, width in bytes, offset & nbits of type)
78 a84cbb2a 2004-04-19 devnull | 'w' (aix wide char type, not used)
79 a84cbb2a 2004-04-19 devnull | 'R' fptype; bytes; (fptype 1=32-bit, 2=64-bit, 3=complex, 4=complex16, 5=complex32, 6=long double)
80 a84cbb2a 2004-04-19 devnull | 'g' typeinfo ';' nbits (aix floating, not used)
81 a84cbb2a 2004-04-19 devnull | 'c' typeinfo ';' nbits (aix complex, not used)
82 a84cbb2a 2004-04-19 devnull | -1 int32
83 a84cbb2a 2004-04-19 devnull | -2 char8
84 a84cbb2a 2004-04-19 devnull | -3 int16
85 a84cbb2a 2004-04-19 devnull | -4 int32 (long)
86 a84cbb2a 2004-04-19 devnull | -5 uchar8
87 a84cbb2a 2004-04-19 devnull | -6 schar8
88 a84cbb2a 2004-04-19 devnull | -7 uint16
89 a84cbb2a 2004-04-19 devnull | -8 uint32
90 a84cbb2a 2004-04-19 devnull | -9 uint32
91 a84cbb2a 2004-04-19 devnull | -10 ulong32
92 a84cbb2a 2004-04-19 devnull | -11 void
93 a84cbb2a 2004-04-19 devnull | -12 float
94 a84cbb2a 2004-04-19 devnull | -13 double
95 a84cbb2a 2004-04-19 devnull | -14 long double
96 a84cbb2a 2004-04-19 devnull | -15 int32
97 a84cbb2a 2004-04-19 devnull | -16 bool32
98 a84cbb2a 2004-04-19 devnull | -17 short real
99 a84cbb2a 2004-04-19 devnull | -18 real
100 a84cbb2a 2004-04-19 devnull | -19 stringptr
101 a84cbb2a 2004-04-19 devnull | -20 character8
102 a84cbb2a 2004-04-19 devnull | -21 logical*1 8
103 a84cbb2a 2004-04-19 devnull | -22 logical*2 16
104 a84cbb2a 2004-04-19 devnull | -23 logical*4 32
105 a84cbb2a 2004-04-19 devnull | -24 logical 32
106 a84cbb2a 2004-04-19 devnull | -25 complex (two single)
107 a84cbb2a 2004-04-19 devnull | -26 complex (two double)
108 a84cbb2a 2004-04-19 devnull | -27 integer*1 8 signed
109 a84cbb2a 2004-04-19 devnull | -28 integer*2 16 signed
110 a84cbb2a 2004-04-19 devnull | -29 integer*4 32 signed
111 a84cbb2a 2004-04-19 devnull | -30 wchar 16 wide char
112 a84cbb2a 2004-04-19 devnull | -31 int64
113 a84cbb2a 2004-04-19 devnull | -32 uint64
114 a84cbb2a 2004-04-19 devnull | -33 logical*8 64
115 a84cbb2a 2004-04-19 devnull | -34 integer*8 64 signed
116 a84cbb2a 2004-04-19 devnull | 'b' typeinfo ';' bytes (ibm, no idea)
117 a84cbb2a 2004-04-19 devnull | 'B' typeinfo (volatile typref)
118 a84cbb2a 2004-04-19 devnull | 'd' typeinfo (file of typeref)
119 a84cbb2a 2004-04-19 devnull | 'k' typeinfo (const typeref)
120 a84cbb2a 2004-04-19 devnull | 'M' typeinfo ';' length (multiple instance type, fortran)
121 a84cbb2a 2004-04-19 devnull | 'S' typeinfo (set, typeref must have small number of values)
122 a84cbb2a 2004-04-19 devnull | '*' typeinfo (pointer to typeref)
123 a84cbb2a 2004-04-19 devnull | 'x' ('s'|'u'|'e') name ':' (struct, union, enum reference. name can have '::' in it)
124 a84cbb2a 2004-04-19 devnull | 'r' typeinfo ';' low ';' high ';' (subrange. typeref can be type being defined for base types!)
125 a84cbb2a 2004-04-19 devnull low and high are bounds
126 a84cbb2a 2004-04-19 devnull if bound is octal power of two, it's a big negative number
127 a84cbb2a 2004-04-19 devnull | ('a'|'P') indextypedef arraytypeinfo (array, index should be range type)
128 a84cbb2a 2004-04-19 devnull indextype is type definition not typeinfo (need not say typenum=)
129 a84cbb2a 2004-04-19 devnull P means packed array
130 a84cbb2a 2004-04-19 devnull | 'A' arraytypeinfo (open array (no index bounds))
131 a84cbb2a 2004-04-19 devnull | 'D' dims ';' typeinfo (dims-dimensional dynamic array)
132 a84cbb2a 2004-04-19 devnull | 'E' dims ';' typeinfo (subarray of N-dimensional array)
133 a84cbb2a 2004-04-19 devnull | 'n' typeinfo ';' bytes (max length string)
134 a84cbb2a 2004-04-19 devnull | 'z' typeinfo ';' bytes (no idea what difference is from 'n')
135 a84cbb2a 2004-04-19 devnull | 'N' (pascal stringptr)
136 a84cbb2a 2004-04-19 devnull | 'e' (name ':' bigint ',')* ';' (enum listing)
137 a84cbb2a 2004-04-19 devnull | ('s'|'u') bytes (name ':' type ',' bitoffset ',' bitsize ';')* ';' (struct/union defn)
138 a84cbb2a 2004-04-19 devnull tag is given as name in stabs entry, with 'T' symbol
139 a84cbb2a 2004-04-19 devnull | 'f' typeinfo ';' (function returning type)
140 a84cbb2a 2004-04-19 devnull | 'f' rettypeinfo ',' paramcount ';' (typeinfo ',' (0|1) ';')* ';'
141 a84cbb2a 2004-04-19 devnull | 'p' paramcount ';' (typeinfo ',' (0|1) ';')* ';'
142 a84cbb2a 2004-04-19 devnull | 'F' rettypeinfo ',' paramcount ';' (name ':' typeinfo ',' (0|1) ';')* ';'
143 a84cbb2a 2004-04-19 devnull | 'R' paramcount ';' (name ':' typeinfo ',' (0|1) ';')* ';'
144 a84cbb2a 2004-04-19 devnull (the 0 or 1 is pass-by-reference vs pass-by-value)
145 a84cbb2a 2004-04-19 devnull (the 0 or 1 is pass-by-reference vs pass-by-value)
146 a84cbb2a 2004-04-19 devnull
147 a84cbb2a 2004-04-19 devnull bound ::=
148 a84cbb2a 2004-04-19 devnull 'A' offset (bound is on stack by ref at offset offset from arg list)
149 a84cbb2a 2004-04-19 devnull | 'T' offset (bound is on stack by val at offset offset from arg list)
150 a84cbb2a 2004-04-19 devnull | 'a' regnum (bound passed by reference in register)
151 a84cbb2a 2004-04-19 devnull | 't' regnum (bound passed by value in register)
152 a84cbb2a 2004-04-19 devnull | 'J' (no bound)
153 a84cbb2a 2004-04-19 devnull | bigint
154 a84cbb2a 2004-04-19 devnull
155 a84cbb2a 2004-04-19 devnull bigint ::= '-'? decimal
156 a84cbb2a 2004-04-19 devnull | 0 octal
157 a84cbb2a 2004-04-19 devnull | -1
158 a84cbb2a 2004-04-19 devnull
159 a84cbb2a 2004-04-19 devnull C++
160 a84cbb2a 2004-04-19 devnull
161 a84cbb2a 2004-04-19 devnull symbol 'Tt' means typename + tag in one stab
162 a84cbb2a 2004-04-19 devnull
163 a84cbb2a 2004-04-19 devnull names can have ::, as in foo::bar::baz::t1
164 a84cbb2a 2004-04-19 devnull
165 a84cbb2a 2004-04-19 devnull t16 unknown type just like void
166 a84cbb2a 2004-04-19 devnull t17 vtable record type