1
2
3
4
5
6
7 package dwarf
8
9
10
11
12 type Attr uint32
13
14 const (
15 AttrSibling Attr = 0x01
16 AttrLocation Attr = 0x02
17 AttrName Attr = 0x03
18 AttrOrdering Attr = 0x09
19 AttrByteSize Attr = 0x0B
20 AttrBitOffset Attr = 0x0C
21 AttrBitSize Attr = 0x0D
22 AttrStmtList Attr = 0x10
23 AttrLowpc Attr = 0x11
24 AttrHighpc Attr = 0x12
25 AttrLanguage Attr = 0x13
26 AttrDiscr Attr = 0x15
27 AttrDiscrValue Attr = 0x16
28 AttrVisibility Attr = 0x17
29 AttrImport Attr = 0x18
30 AttrStringLength Attr = 0x19
31 AttrCommonRef Attr = 0x1A
32 AttrCompDir Attr = 0x1B
33 AttrConstValue Attr = 0x1C
34 AttrContainingType Attr = 0x1D
35 AttrDefaultValue Attr = 0x1E
36 AttrInline Attr = 0x20
37 AttrIsOptional Attr = 0x21
38 AttrLowerBound Attr = 0x22
39 AttrProducer Attr = 0x25
40 AttrPrototyped Attr = 0x27
41 AttrReturnAddr Attr = 0x2A
42 AttrStartScope Attr = 0x2C
43 AttrStrideSize Attr = 0x2E
44 AttrUpperBound Attr = 0x2F
45 AttrAbstractOrigin Attr = 0x31
46 AttrAccessibility Attr = 0x32
47 AttrAddrClass Attr = 0x33
48 AttrArtificial Attr = 0x34
49 AttrBaseTypes Attr = 0x35
50 AttrCalling Attr = 0x36
51 AttrCount Attr = 0x37
52 AttrDataMemberLoc Attr = 0x38
53 AttrDeclColumn Attr = 0x39
54 AttrDeclFile Attr = 0x3A
55 AttrDeclLine Attr = 0x3B
56 AttrDeclaration Attr = 0x3C
57 AttrDiscrList Attr = 0x3D
58 AttrEncoding Attr = 0x3E
59 AttrExternal Attr = 0x3F
60 AttrFrameBase Attr = 0x40
61 AttrFriend Attr = 0x41
62 AttrIdentifierCase Attr = 0x42
63 AttrMacroInfo Attr = 0x43
64 AttrNamelistItem Attr = 0x44
65 AttrPriority Attr = 0x45
66 AttrSegment Attr = 0x46
67 AttrSpecification Attr = 0x47
68 AttrStaticLink Attr = 0x48
69 AttrType Attr = 0x49
70 AttrUseLocation Attr = 0x4A
71 AttrVarParam Attr = 0x4B
72 AttrVirtuality Attr = 0x4C
73 AttrVtableElemLoc Attr = 0x4D
74
75 AttrAllocated Attr = 0x4E
76 AttrAssociated Attr = 0x4F
77 AttrDataLocation Attr = 0x50
78 AttrStride Attr = 0x51
79 AttrEntrypc Attr = 0x52
80 AttrUseUTF8 Attr = 0x53
81 AttrExtension Attr = 0x54
82 AttrRanges Attr = 0x55
83 AttrTrampoline Attr = 0x56
84 AttrCallColumn Attr = 0x57
85 AttrCallFile Attr = 0x58
86 AttrCallLine Attr = 0x59
87 AttrDescription Attr = 0x5A
88 AttrBinaryScale Attr = 0x5B
89 AttrDecimalScale Attr = 0x5C
90 AttrSmall Attr = 0x5D
91 AttrDecimalSign Attr = 0x5E
92 AttrDigitCount Attr = 0x5F
93 AttrPictureString Attr = 0x60
94 AttrMutable Attr = 0x61
95 AttrThreadsScaled Attr = 0x62
96 AttrExplicit Attr = 0x63
97 AttrObjectPointer Attr = 0x64
98 AttrEndianity Attr = 0x65
99 AttrElemental Attr = 0x66
100 AttrPure Attr = 0x67
101 AttrRecursive Attr = 0x68
102
103 AttrSignature Attr = 0x69
104 AttrMainSubprogram Attr = 0x6A
105 AttrDataBitOffset Attr = 0x6B
106 AttrConstExpr Attr = 0x6C
107 AttrEnumClass Attr = 0x6D
108 AttrLinkageName Attr = 0x6E
109
110 AttrStringLengthBitSize Attr = 0x6F
111 AttrStringLengthByteSize Attr = 0x70
112 AttrRank Attr = 0x71
113 AttrStrOffsetsBase Attr = 0x72
114 AttrAddrBase Attr = 0x73
115 AttrRnglistsBase Attr = 0x74
116 AttrDwoName Attr = 0x76
117 AttrReference Attr = 0x77
118 AttrRvalueReference Attr = 0x78
119 AttrMacros Attr = 0x79
120 AttrCallAllCalls Attr = 0x7A
121 AttrCallAllSourceCalls Attr = 0x7B
122 AttrCallAllTailCalls Attr = 0x7C
123 AttrCallReturnPC Attr = 0x7D
124 AttrCallValue Attr = 0x7E
125 AttrCallOrigin Attr = 0x7F
126 AttrCallParameter Attr = 0x80
127 AttrCallPC Attr = 0x81
128 AttrCallTailCall Attr = 0x82
129 AttrCallTarget Attr = 0x83
130 AttrCallTargetClobbered Attr = 0x84
131 AttrCallDataLocation Attr = 0x85
132 AttrCallDataValue Attr = 0x86
133 AttrNoreturn Attr = 0x87
134 AttrAlignment Attr = 0x88
135 AttrExportSymbols Attr = 0x89
136 AttrDeleted Attr = 0x8A
137 AttrDefaulted Attr = 0x8B
138 AttrLoclistsBase Attr = 0x8C
139 )
140
141 func (a Attr) GoString() string {
142 if str, ok := _Attr_map[a]; ok {
143 return "dwarf.Attr" + str
144 }
145 return "dwarf." + a.String()
146 }
147
148
149 type format uint32
150
151 const (
152
153 formAddr format = 0x01
154 formDwarfBlock2 format = 0x03
155 formDwarfBlock4 format = 0x04
156 formData2 format = 0x05
157 formData4 format = 0x06
158 formData8 format = 0x07
159 formString format = 0x08
160 formDwarfBlock format = 0x09
161 formDwarfBlock1 format = 0x0A
162 formData1 format = 0x0B
163 formFlag format = 0x0C
164 formSdata format = 0x0D
165 formStrp format = 0x0E
166 formUdata format = 0x0F
167 formRefAddr format = 0x10
168 formRef1 format = 0x11
169 formRef2 format = 0x12
170 formRef4 format = 0x13
171 formRef8 format = 0x14
172 formRefUdata format = 0x15
173 formIndirect format = 0x16
174
175 formSecOffset format = 0x17
176 formExprloc format = 0x18
177 formFlagPresent format = 0x19
178 formRefSig8 format = 0x20
179
180 formStrx format = 0x1A
181 formAddrx format = 0x1B
182 formRefSup4 format = 0x1C
183 formStrpSup format = 0x1D
184 formData16 format = 0x1E
185 formLineStrp format = 0x1F
186 formImplicitConst format = 0x21
187 formLoclistx format = 0x22
188 formRnglistx format = 0x23
189 formRefSup8 format = 0x24
190 formStrx1 format = 0x25
191 formStrx2 format = 0x26
192 formStrx3 format = 0x27
193 formStrx4 format = 0x28
194 formAddrx1 format = 0x29
195 formAddrx2 format = 0x2A
196 formAddrx3 format = 0x2B
197 formAddrx4 format = 0x2C
198
199
200 formGnuRefAlt format = 0x1f20
201 formGnuStrpAlt format = 0x1f21
202 )
203
204
205
206
207 type Tag uint32
208
209 const (
210 TagArrayType Tag = 0x01
211 TagClassType Tag = 0x02
212 TagEntryPoint Tag = 0x03
213 TagEnumerationType Tag = 0x04
214 TagFormalParameter Tag = 0x05
215 TagImportedDeclaration Tag = 0x08
216 TagLabel Tag = 0x0A
217 TagLexDwarfBlock Tag = 0x0B
218 TagMember Tag = 0x0D
219 TagPointerType Tag = 0x0F
220 TagReferenceType Tag = 0x10
221 TagCompileUnit Tag = 0x11
222 TagStringType Tag = 0x12
223 TagStructType Tag = 0x13
224 TagSubroutineType Tag = 0x15
225 TagTypedef Tag = 0x16
226 TagUnionType Tag = 0x17
227 TagUnspecifiedParameters Tag = 0x18
228 TagVariant Tag = 0x19
229 TagCommonDwarfBlock Tag = 0x1A
230 TagCommonInclusion Tag = 0x1B
231 TagInheritance Tag = 0x1C
232 TagInlinedSubroutine Tag = 0x1D
233 TagModule Tag = 0x1E
234 TagPtrToMemberType Tag = 0x1F
235 TagSetType Tag = 0x20
236 TagSubrangeType Tag = 0x21
237 TagWithStmt Tag = 0x22
238 TagAccessDeclaration Tag = 0x23
239 TagBaseType Tag = 0x24
240 TagCatchDwarfBlock Tag = 0x25
241 TagConstType Tag = 0x26
242 TagConstant Tag = 0x27
243 TagEnumerator Tag = 0x28
244 TagFileType Tag = 0x29
245 TagFriend Tag = 0x2A
246 TagNamelist Tag = 0x2B
247 TagNamelistItem Tag = 0x2C
248 TagPackedType Tag = 0x2D
249 TagSubprogram Tag = 0x2E
250 TagTemplateTypeParameter Tag = 0x2F
251 TagTemplateValueParameter Tag = 0x30
252 TagThrownType Tag = 0x31
253 TagTryDwarfBlock Tag = 0x32
254 TagVariantPart Tag = 0x33
255 TagVariable Tag = 0x34
256 TagVolatileType Tag = 0x35
257
258 TagDwarfProcedure Tag = 0x36
259 TagRestrictType Tag = 0x37
260 TagInterfaceType Tag = 0x38
261 TagNamespace Tag = 0x39
262 TagImportedModule Tag = 0x3A
263 TagUnspecifiedType Tag = 0x3B
264 TagPartialUnit Tag = 0x3C
265 TagImportedUnit Tag = 0x3D
266 TagMutableType Tag = 0x3E
267 TagCondition Tag = 0x3F
268 TagSharedType Tag = 0x40
269
270 TagTypeUnit Tag = 0x41
271 TagRvalueReferenceType Tag = 0x42
272 TagTemplateAlias Tag = 0x43
273
274 TagCoarrayType Tag = 0x44
275 TagGenericSubrange Tag = 0x45
276 TagDynamicType Tag = 0x46
277 TagAtomicType Tag = 0x47
278 TagCallSite Tag = 0x48
279 TagCallSiteParameter Tag = 0x49
280 TagSkeletonUnit Tag = 0x4A
281 TagImmutableType Tag = 0x4B
282 )
283
284 func (t Tag) GoString() string {
285 if t <= TagTemplateAlias {
286 return "dwarf.Tag" + t.String()
287 }
288 return "dwarf." + t.String()
289 }
290
291
292
293
294
295
296 const (
297 opAddr = 0x03
298 opDeref = 0x06
299 opConst1u = 0x08
300 opConst1s = 0x09
301 opConst2u = 0x0A
302 opConst2s = 0x0B
303 opConst4u = 0x0C
304 opConst4s = 0x0D
305 opConst8u = 0x0E
306 opConst8s = 0x0F
307 opConstu = 0x10
308 opConsts = 0x11
309 opDup = 0x12
310 opDrop = 0x13
311 opOver = 0x14
312 opPick = 0x15
313 opSwap = 0x16
314 opRot = 0x17
315 opXderef = 0x18
316 opAbs = 0x19
317 opAnd = 0x1A
318 opDiv = 0x1B
319 opMinus = 0x1C
320 opMod = 0x1D
321 opMul = 0x1E
322 opNeg = 0x1F
323 opNot = 0x20
324 opOr = 0x21
325 opPlus = 0x22
326 opPlusUconst = 0x23
327 opShl = 0x24
328 opShr = 0x25
329 opShra = 0x26
330 opXor = 0x27
331 opSkip = 0x2F
332 opBra = 0x28
333 opEq = 0x29
334 opGe = 0x2A
335 opGt = 0x2B
336 opLe = 0x2C
337 opLt = 0x2D
338 opNe = 0x2E
339 opLit0 = 0x30
340
341 opReg0 = 0x50
342
343 opBreg0 = 0x70
344
345 opRegx = 0x90
346 opFbreg = 0x91
347 opBregx = 0x92
348 opPiece = 0x93
349 opDerefSize = 0x94
350 opXderefSize = 0x95
351 opNop = 0x96
352
353 opPushObjAddr = 0x97
354 opCall2 = 0x98
355 opCall4 = 0x99
356 opCallRef = 0x9A
357 opFormTLSAddress = 0x9B
358 opCallFrameCFA = 0x9C
359 opBitPiece = 0x9D
360
361 opImplicitValue = 0x9E
362 opStackValue = 0x9F
363
364 opImplicitPointer = 0xA0
365 opAddrx = 0xA1
366 opConstx = 0xA2
367 opEntryValue = 0xA3
368 opConstType = 0xA4
369 opRegvalType = 0xA5
370 opDerefType = 0xA6
371 opXderefType = 0xA7
372 opConvert = 0xA8
373 opReinterpret = 0xA9
374
375 )
376
377
378 const (
379 encAddress = 0x01
380 encBoolean = 0x02
381 encComplexFloat = 0x03
382 encFloat = 0x04
383 encSigned = 0x05
384 encSignedChar = 0x06
385 encUnsigned = 0x07
386 encUnsignedChar = 0x08
387
388 encImaginaryFloat = 0x09
389 encPackedDecimal = 0x0A
390 encNumericString = 0x0B
391 encEdited = 0x0C
392 encSignedFixed = 0x0D
393 encUnsignedFixed = 0x0E
394 encDecimalFloat = 0x0F
395
396 encUTF = 0x10
397
398 encUCS = 0x11
399 encASCII = 0x12
400 )
401
402
403 const (
404 lnsCopy = 1
405 lnsAdvancePC = 2
406 lnsAdvanceLine = 3
407 lnsSetFile = 4
408 lnsSetColumn = 5
409 lnsNegateStmt = 6
410 lnsSetBasicBlock = 7
411 lnsConstAddPC = 8
412 lnsFixedAdvancePC = 9
413
414
415 lnsSetPrologueEnd = 10
416 lnsSetEpilogueBegin = 11
417 lnsSetISA = 12
418 )
419
420
421 const (
422 lneEndSequence = 1
423 lneSetAddress = 2
424 lneDefineFile = 3
425
426
427 lneSetDiscriminator = 4
428 )
429
430
431
432 const (
433 lnctPath = 0x01
434 lnctDirectoryIndex = 0x02
435 lnctTimestamp = 0x03
436 lnctSize = 0x04
437 lnctMD5 = 0x05
438 )
439
440
441
442 const (
443 lleEndOfList = 0x00
444 lleBaseAddressx = 0x01
445 lleStartxEndx = 0x02
446 lleStartxLength = 0x03
447 lleOffsetPair = 0x04
448 lleDefaultLocation = 0x05
449 lleBaseAddress = 0x06
450 lleStartEnd = 0x07
451 lleStartLength = 0x08
452 )
453
454
455
456 const (
457 utCompile = 0x01
458 utType = 0x02
459 utPartial = 0x03
460 utSkeleton = 0x04
461 utSplitCompile = 0x05
462 utSplitType = 0x06
463 )
464
465
466 const (
467 rleEndOfList = 0x0
468 rleBaseAddressx = 0x1
469 rleStartxEndx = 0x2
470 rleStartxLength = 0x3
471 rleOffsetPair = 0x4
472 rleBaseAddress = 0x5
473 rleStartEnd = 0x6
474 rleStartLength = 0x7
475 )
476
View as plain text