Commit a724597f authored by Ian Lance Taylor's avatar Ian Lance Taylor Committed by Kirill Smelkov

debug/dwarf: add new constants defined in DWARF 5

Also add a few other missing constants.

Also rerun current version of stringer.

Change-Id: I004ef27f6b40fe2cab64c52d169255dfea43fa01
Reviewed-on: https://go-review.googlesource.com/c/go/+/175137
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarAustin Clements <austin@google.com>
parent 9adcb36d
...@@ -4,81 +4,257 @@ package dwarf ...@@ -4,81 +4,257 @@ package dwarf
import "strconv" import "strconv"
const _Attr_name = "SiblingLocationNameOrderingByteSizeBitOffsetBitSizeStmtListLowpcHighpcLanguageDiscrDiscrValueVisibilityImportStringLengthCommonRefCompDirConstValueContainingTypeDefaultValueInlineIsOptionalLowerBoundProducerPrototypedReturnAddrStartScopeStrideSizeUpperBoundAbstractOriginAccessibilityAddrClassArtificialBaseTypesCallingCountDataMemberLocDeclColumnDeclFileDeclLineDeclarationDiscrListEncodingExternalFrameBaseFriendIdentifierCaseMacroInfoNamelistItemPrioritySegmentSpecificationStaticLinkTypeUseLocationVarParamVirtualityVtableElemLocAllocatedAssociatedDataLocationStrideEntrypcUseUTF8ExtensionRangesTrampolineCallColumnCallFileCallLineDescription" func _() {
// An "invalid array index" compiler error signifies that the constant values have changed.
// Re-run the stringer command to generate them again.
var x [1]struct{}
_ = x[AttrSibling-1]
_ = x[AttrLocation-2]
_ = x[AttrName-3]
_ = x[AttrOrdering-9]
_ = x[AttrByteSize-11]
_ = x[AttrBitOffset-12]
_ = x[AttrBitSize-13]
_ = x[AttrStmtList-16]
_ = x[AttrLowpc-17]
_ = x[AttrHighpc-18]
_ = x[AttrLanguage-19]
_ = x[AttrDiscr-21]
_ = x[AttrDiscrValue-22]
_ = x[AttrVisibility-23]
_ = x[AttrImport-24]
_ = x[AttrStringLength-25]
_ = x[AttrCommonRef-26]
_ = x[AttrCompDir-27]
_ = x[AttrConstValue-28]
_ = x[AttrContainingType-29]
_ = x[AttrDefaultValue-30]
_ = x[AttrInline-32]
_ = x[AttrIsOptional-33]
_ = x[AttrLowerBound-34]
_ = x[AttrProducer-37]
_ = x[AttrPrototyped-39]
_ = x[AttrReturnAddr-42]
_ = x[AttrStartScope-44]
_ = x[AttrStrideSize-46]
_ = x[AttrUpperBound-47]
_ = x[AttrAbstractOrigin-49]
_ = x[AttrAccessibility-50]
_ = x[AttrAddrClass-51]
_ = x[AttrArtificial-52]
_ = x[AttrBaseTypes-53]
_ = x[AttrCalling-54]
_ = x[AttrCount-55]
_ = x[AttrDataMemberLoc-56]
_ = x[AttrDeclColumn-57]
_ = x[AttrDeclFile-58]
_ = x[AttrDeclLine-59]
_ = x[AttrDeclaration-60]
_ = x[AttrDiscrList-61]
_ = x[AttrEncoding-62]
_ = x[AttrExternal-63]
_ = x[AttrFrameBase-64]
_ = x[AttrFriend-65]
_ = x[AttrIdentifierCase-66]
_ = x[AttrMacroInfo-67]
_ = x[AttrNamelistItem-68]
_ = x[AttrPriority-69]
_ = x[AttrSegment-70]
_ = x[AttrSpecification-71]
_ = x[AttrStaticLink-72]
_ = x[AttrType-73]
_ = x[AttrUseLocation-74]
_ = x[AttrVarParam-75]
_ = x[AttrVirtuality-76]
_ = x[AttrVtableElemLoc-77]
_ = x[AttrAllocated-78]
_ = x[AttrAssociated-79]
_ = x[AttrDataLocation-80]
_ = x[AttrStride-81]
_ = x[AttrEntrypc-82]
_ = x[AttrUseUTF8-83]
_ = x[AttrExtension-84]
_ = x[AttrRanges-85]
_ = x[AttrTrampoline-86]
_ = x[AttrCallColumn-87]
_ = x[AttrCallFile-88]
_ = x[AttrCallLine-89]
_ = x[AttrDescription-90]
_ = x[AttrBinaryScale-91]
_ = x[AttrDecimalScale-92]
_ = x[AttrSmall-93]
_ = x[AttrDecimalSign-94]
_ = x[AttrDigitCount-95]
_ = x[AttrPictureString-96]
_ = x[AttrMutable-97]
_ = x[AttrThreadsScaled-98]
_ = x[AttrExplicit-99]
_ = x[AttrObjectPointer-100]
_ = x[AttrEndianity-101]
_ = x[AttrElemental-102]
_ = x[AttrPure-103]
_ = x[AttrRecursive-104]
_ = x[AttrSignature-105]
_ = x[AttrMainSubprogram-106]
_ = x[AttrDataBitOffset-107]
_ = x[AttrConstExpr-108]
_ = x[AttrEnumClass-109]
_ = x[AttrLinkageName-110]
_ = x[AttrStringLengthBitSize-111]
_ = x[AttrStringLengthByteSize-112]
_ = x[AttrRank-113]
_ = x[AttrStrOffsetsBase-114]
_ = x[AttrAddrBase-115]
_ = x[AttrRnglistsBase-116]
_ = x[AttrDwoName-118]
_ = x[AttrReference-119]
_ = x[AttrRvalueReference-120]
_ = x[AttrMacros-121]
_ = x[AttrCallAllCalls-122]
_ = x[AttrCallAllSourceCalls-123]
_ = x[AttrCallAllTailCalls-124]
_ = x[AttrCallReturnPC-125]
_ = x[AttrCallValue-126]
_ = x[AttrCallOrigin-127]
_ = x[AttrCallParameter-128]
_ = x[AttrCallPC-129]
_ = x[AttrCallTailCall-130]
_ = x[AttrCallTarget-131]
_ = x[AttrCallTargetClobbered-132]
_ = x[AttrCallDataLocation-133]
_ = x[AttrCallDataValue-134]
_ = x[AttrNoreturn-135]
_ = x[AttrAlignment-136]
_ = x[AttrExportSymbols-137]
_ = x[AttrDeleted-138]
_ = x[AttrDefaulted-139]
_ = x[AttrLoclistsBase-140]
}
const _Attr_name = "SiblingLocationNameOrderingByteSizeBitOffsetBitSizeStmtListLowpcHighpcLanguageDiscrDiscrValueVisibilityImportStringLengthCommonRefCompDirConstValueContainingTypeDefaultValueInlineIsOptionalLowerBoundProducerPrototypedReturnAddrStartScopeStrideSizeUpperBoundAbstractOriginAccessibilityAddrClassArtificialBaseTypesCallingCountDataMemberLocDeclColumnDeclFileDeclLineDeclarationDiscrListEncodingExternalFrameBaseFriendIdentifierCaseMacroInfoNamelistItemPrioritySegmentSpecificationStaticLinkTypeUseLocationVarParamVirtualityVtableElemLocAllocatedAssociatedDataLocationStrideEntrypcUseUTF8ExtensionRangesTrampolineCallColumnCallFileCallLineDescriptionBinaryScaleDecimalScaleSmallDecimalSignDigitCountPictureStringMutableThreadsScaledExplicitObjectPointerEndianityElementalPureRecursiveSignatureMainSubprogramDataBitOffsetConstExprEnumClassLinkageNameStringLengthBitSizeStringLengthByteSizeRankStrOffsetsBaseAddrBaseRnglistsBaseDwoNameReferenceRvalueReferenceMacrosCallAllCallsCallAllSourceCallsCallAllTailCallsCallReturnPCCallValueCallOriginCallParameterCallPCCallTailCallCallTargetCallTargetClobberedCallDataLocationCallDataValueNoreturnAlignmentExportSymbolsDeletedDefaultedLoclistsBase"
var _Attr_map = map[Attr]string{ var _Attr_map = map[Attr]string{
1: _Attr_name[0:7], 1: _Attr_name[0:7],
2: _Attr_name[7:15], 2: _Attr_name[7:15],
3: _Attr_name[15:19], 3: _Attr_name[15:19],
9: _Attr_name[19:27], 9: _Attr_name[19:27],
11: _Attr_name[27:35], 11: _Attr_name[27:35],
12: _Attr_name[35:44], 12: _Attr_name[35:44],
13: _Attr_name[44:51], 13: _Attr_name[44:51],
16: _Attr_name[51:59], 16: _Attr_name[51:59],
17: _Attr_name[59:64], 17: _Attr_name[59:64],
18: _Attr_name[64:70], 18: _Attr_name[64:70],
19: _Attr_name[70:78], 19: _Attr_name[70:78],
21: _Attr_name[78:83], 21: _Attr_name[78:83],
22: _Attr_name[83:93], 22: _Attr_name[83:93],
23: _Attr_name[93:103], 23: _Attr_name[93:103],
24: _Attr_name[103:109], 24: _Attr_name[103:109],
25: _Attr_name[109:121], 25: _Attr_name[109:121],
26: _Attr_name[121:130], 26: _Attr_name[121:130],
27: _Attr_name[130:137], 27: _Attr_name[130:137],
28: _Attr_name[137:147], 28: _Attr_name[137:147],
29: _Attr_name[147:161], 29: _Attr_name[147:161],
30: _Attr_name[161:173], 30: _Attr_name[161:173],
32: _Attr_name[173:179], 32: _Attr_name[173:179],
33: _Attr_name[179:189], 33: _Attr_name[179:189],
34: _Attr_name[189:199], 34: _Attr_name[189:199],
37: _Attr_name[199:207], 37: _Attr_name[199:207],
39: _Attr_name[207:217], 39: _Attr_name[207:217],
42: _Attr_name[217:227], 42: _Attr_name[217:227],
44: _Attr_name[227:237], 44: _Attr_name[227:237],
46: _Attr_name[237:247], 46: _Attr_name[237:247],
47: _Attr_name[247:257], 47: _Attr_name[247:257],
49: _Attr_name[257:271], 49: _Attr_name[257:271],
50: _Attr_name[271:284], 50: _Attr_name[271:284],
51: _Attr_name[284:293], 51: _Attr_name[284:293],
52: _Attr_name[293:303], 52: _Attr_name[293:303],
53: _Attr_name[303:312], 53: _Attr_name[303:312],
54: _Attr_name[312:319], 54: _Attr_name[312:319],
55: _Attr_name[319:324], 55: _Attr_name[319:324],
56: _Attr_name[324:337], 56: _Attr_name[324:337],
57: _Attr_name[337:347], 57: _Attr_name[337:347],
58: _Attr_name[347:355], 58: _Attr_name[347:355],
59: _Attr_name[355:363], 59: _Attr_name[355:363],
60: _Attr_name[363:374], 60: _Attr_name[363:374],
61: _Attr_name[374:383], 61: _Attr_name[374:383],
62: _Attr_name[383:391], 62: _Attr_name[383:391],
63: _Attr_name[391:399], 63: _Attr_name[391:399],
64: _Attr_name[399:408], 64: _Attr_name[399:408],
65: _Attr_name[408:414], 65: _Attr_name[408:414],
66: _Attr_name[414:428], 66: _Attr_name[414:428],
67: _Attr_name[428:437], 67: _Attr_name[428:437],
68: _Attr_name[437:449], 68: _Attr_name[437:449],
69: _Attr_name[449:457], 69: _Attr_name[449:457],
70: _Attr_name[457:464], 70: _Attr_name[457:464],
71: _Attr_name[464:477], 71: _Attr_name[464:477],
72: _Attr_name[477:487], 72: _Attr_name[477:487],
73: _Attr_name[487:491], 73: _Attr_name[487:491],
74: _Attr_name[491:502], 74: _Attr_name[491:502],
75: _Attr_name[502:510], 75: _Attr_name[502:510],
76: _Attr_name[510:520], 76: _Attr_name[510:520],
77: _Attr_name[520:533], 77: _Attr_name[520:533],
78: _Attr_name[533:542], 78: _Attr_name[533:542],
79: _Attr_name[542:552], 79: _Attr_name[542:552],
80: _Attr_name[552:564], 80: _Attr_name[552:564],
81: _Attr_name[564:570], 81: _Attr_name[564:570],
82: _Attr_name[570:577], 82: _Attr_name[570:577],
83: _Attr_name[577:584], 83: _Attr_name[577:584],
84: _Attr_name[584:593], 84: _Attr_name[584:593],
85: _Attr_name[593:599], 85: _Attr_name[593:599],
86: _Attr_name[599:609], 86: _Attr_name[599:609],
87: _Attr_name[609:619], 87: _Attr_name[609:619],
88: _Attr_name[619:627], 88: _Attr_name[619:627],
89: _Attr_name[627:635], 89: _Attr_name[627:635],
90: _Attr_name[635:646], 90: _Attr_name[635:646],
91: _Attr_name[646:657],
92: _Attr_name[657:669],
93: _Attr_name[669:674],
94: _Attr_name[674:685],
95: _Attr_name[685:695],
96: _Attr_name[695:708],
97: _Attr_name[708:715],
98: _Attr_name[715:728],
99: _Attr_name[728:736],
100: _Attr_name[736:749],
101: _Attr_name[749:758],
102: _Attr_name[758:767],
103: _Attr_name[767:771],
104: _Attr_name[771:780],
105: _Attr_name[780:789],
106: _Attr_name[789:803],
107: _Attr_name[803:816],
108: _Attr_name[816:825],
109: _Attr_name[825:834],
110: _Attr_name[834:845],
111: _Attr_name[845:864],
112: _Attr_name[864:884],
113: _Attr_name[884:888],
114: _Attr_name[888:902],
115: _Attr_name[902:910],
116: _Attr_name[910:922],
118: _Attr_name[922:929],
119: _Attr_name[929:938],
120: _Attr_name[938:953],
121: _Attr_name[953:959],
122: _Attr_name[959:971],
123: _Attr_name[971:989],
124: _Attr_name[989:1005],
125: _Attr_name[1005:1017],
126: _Attr_name[1017:1026],
127: _Attr_name[1026:1036],
128: _Attr_name[1036:1049],
129: _Attr_name[1049:1055],
130: _Attr_name[1055:1067],
131: _Attr_name[1067:1077],
132: _Attr_name[1077:1096],
133: _Attr_name[1096:1112],
134: _Attr_name[1112:1125],
135: _Attr_name[1125:1133],
136: _Attr_name[1133:1142],
137: _Attr_name[1142:1155],
138: _Attr_name[1155:1162],
139: _Attr_name[1162:1171],
140: _Attr_name[1171:1183],
} }
func (i Attr) String() string { func (i Attr) String() string {
......
...@@ -4,6 +4,27 @@ package dwarf ...@@ -4,6 +4,27 @@ package dwarf
import "strconv" import "strconv"
func _() {
// An "invalid array index" compiler error signifies that the constant values have changed.
// Re-run the stringer command to generate them again.
var x [1]struct{}
_ = x[ClassUnknown-0]
_ = x[ClassAddress-1]
_ = x[ClassBlock-2]
_ = x[ClassConstant-3]
_ = x[ClassExprLoc-4]
_ = x[ClassFlag-5]
_ = x[ClassLinePtr-6]
_ = x[ClassLocListPtr-7]
_ = x[ClassMacPtr-8]
_ = x[ClassRangeListPtr-9]
_ = x[ClassReference-10]
_ = x[ClassReferenceSig-11]
_ = x[ClassString-12]
_ = x[ClassReferenceAlt-13]
_ = x[ClassStringAlt-14]
}
const _Class_name = "ClassUnknownClassAddressClassBlockClassConstantClassExprLocClassFlagClassLinePtrClassLocListPtrClassMacPtrClassRangeListPtrClassReferenceClassReferenceSigClassStringClassReferenceAltClassStringAlt" const _Class_name = "ClassUnknownClassAddressClassBlockClassConstantClassExprLocClassFlagClassLinePtrClassLocListPtrClassMacPtrClassRangeListPtrClassReferenceClassReferenceSigClassStringClassReferenceAltClassStringAlt"
var _Class_index = [...]uint8{0, 12, 24, 34, 47, 59, 68, 80, 95, 106, 123, 137, 154, 165, 182, 196} var _Class_index = [...]uint8{0, 12, 24, 34, 47, 59, 68, 80, 95, 106, 123, 137, 154, 165, 182, 196}
......
...@@ -71,19 +71,71 @@ const ( ...@@ -71,19 +71,71 @@ const (
AttrVarParam Attr = 0x4B AttrVarParam Attr = 0x4B
AttrVirtuality Attr = 0x4C AttrVirtuality Attr = 0x4C
AttrVtableElemLoc Attr = 0x4D AttrVtableElemLoc Attr = 0x4D
AttrAllocated Attr = 0x4E // The following are new in DWARF 3.
AttrAssociated Attr = 0x4F AttrAllocated Attr = 0x4E
AttrDataLocation Attr = 0x50 AttrAssociated Attr = 0x4F
AttrStride Attr = 0x51 AttrDataLocation Attr = 0x50
AttrEntrypc Attr = 0x52 AttrStride Attr = 0x51
AttrUseUTF8 Attr = 0x53 AttrEntrypc Attr = 0x52
AttrExtension Attr = 0x54 AttrUseUTF8 Attr = 0x53
AttrRanges Attr = 0x55 AttrExtension Attr = 0x54
AttrTrampoline Attr = 0x56 AttrRanges Attr = 0x55
AttrCallColumn Attr = 0x57 AttrTrampoline Attr = 0x56
AttrCallFile Attr = 0x58 AttrCallColumn Attr = 0x57
AttrCallLine Attr = 0x59 AttrCallFile Attr = 0x58
AttrDescription Attr = 0x5A AttrCallLine Attr = 0x59
AttrDescription Attr = 0x5A
AttrBinaryScale Attr = 0x5B
AttrDecimalScale Attr = 0x5C
AttrSmall Attr = 0x5D
AttrDecimalSign Attr = 0x5E
AttrDigitCount Attr = 0x5F
AttrPictureString Attr = 0x60
AttrMutable Attr = 0x61
AttrThreadsScaled Attr = 0x62
AttrExplicit Attr = 0x63
AttrObjectPointer Attr = 0x64
AttrEndianity Attr = 0x65
AttrElemental Attr = 0x66
AttrPure Attr = 0x67
AttrRecursive Attr = 0x68
// The following are new in DWARF 4.
AttrSignature Attr = 0x69
AttrMainSubprogram Attr = 0x6A
AttrDataBitOffset Attr = 0x6B
AttrConstExpr Attr = 0x6C
AttrEnumClass Attr = 0x6D
AttrLinkageName Attr = 0x6E
// The following are new in DWARF 5.
AttrStringLengthBitSize Attr = 0x6F
AttrStringLengthByteSize Attr = 0x70
AttrRank Attr = 0x71
AttrStrOffsetsBase Attr = 0x72
AttrAddrBase Attr = 0x73
AttrRnglistsBase Attr = 0x74
AttrDwoName Attr = 0x76
AttrReference Attr = 0x77
AttrRvalueReference Attr = 0x78
AttrMacros Attr = 0x79
AttrCallAllCalls Attr = 0x7A
AttrCallAllSourceCalls Attr = 0x7B
AttrCallAllTailCalls Attr = 0x7C
AttrCallReturnPC Attr = 0x7D
AttrCallValue Attr = 0x7E
AttrCallOrigin Attr = 0x7F
AttrCallParameter Attr = 0x80
AttrCallPC Attr = 0x81
AttrCallTailCall Attr = 0x82
AttrCallTarget Attr = 0x83
AttrCallTargetClobbered Attr = 0x84
AttrCallDataLocation Attr = 0x85
AttrCallDataValue Attr = 0x86
AttrNoreturn Attr = 0x87
AttrAlignment Attr = 0x88
AttrExportSymbols Attr = 0x89
AttrDeleted Attr = 0x8A
AttrDefaulted Attr = 0x8B
AttrLoclistsBase Attr = 0x8C
) )
func (a Attr) GoString() string { func (a Attr) GoString() string {
...@@ -124,6 +176,25 @@ const ( ...@@ -124,6 +176,25 @@ const (
formExprloc format = 0x18 formExprloc format = 0x18
formFlagPresent format = 0x19 formFlagPresent format = 0x19
formRefSig8 format = 0x20 formRefSig8 format = 0x20
// The following are new in DWARF 5.
formStrx format = 0x1A
formAddrx format = 0x1B
formRefSup4 format = 0x1C
formStrpSup format = 0x1D
formData16 format = 0x1E
formLineStrp format = 0x1F
formImplicitConst format = 0x21
formLoclistx format = 0x22
formRnglistx format = 0x23
formRefSup8 format = 0x24
formStrx1 format = 0x25
formStrx2 format = 0x26
formStrx3 format = 0x27
formStrx4 format = 0x28
formAddrx1 format = 0x29
formAddrx2 format = 0x2A
formAddrx3 format = 0x2B
formAddrx4 format = 0x2C
// Extensions for multi-file compression (.dwz) // Extensions for multi-file compression (.dwz)
// http://www.dwarfstd.org/ShowIssue.php?issue=120604.1 // http://www.dwarfstd.org/ShowIssue.php?issue=120604.1
formGnuRefAlt format = 0x1f20 formGnuRefAlt format = 0x1f20
...@@ -199,6 +270,15 @@ const ( ...@@ -199,6 +270,15 @@ const (
TagTypeUnit Tag = 0x41 TagTypeUnit Tag = 0x41
TagRvalueReferenceType Tag = 0x42 TagRvalueReferenceType Tag = 0x42
TagTemplateAlias Tag = 0x43 TagTemplateAlias Tag = 0x43
// The following are new in DWARF 5.
TagCoarrayType Tag = 0x44
TagGenericSubrange Tag = 0x45
TagDynamicType Tag = 0x46
TagAtomicType Tag = 0x47
TagCallSite Tag = 0x48
TagCallSiteParameter Tag = 0x49
TagSkeletonUnit Tag = 0x4A
TagImmutableType Tag = 0x4B
) )
func (t Tag) GoString() string { func (t Tag) GoString() string {
...@@ -269,25 +349,54 @@ const ( ...@@ -269,25 +349,54 @@ const (
opDerefSize = 0x94 /* 1-byte size of data retrieved */ opDerefSize = 0x94 /* 1-byte size of data retrieved */
opXderefSize = 0x95 /* 1-byte size of data retrieved */ opXderefSize = 0x95 /* 1-byte size of data retrieved */
opNop = 0x96 opNop = 0x96
/* next four new in Dwarf v3 */ // The following are new in DWARF 3.
opPushObjAddr = 0x97 opPushObjAddr = 0x97
opCall2 = 0x98 /* 2-byte offset of DIE */ opCall2 = 0x98 /* 2-byte offset of DIE */
opCall4 = 0x99 /* 4-byte offset of DIE */ opCall4 = 0x99 /* 4-byte offset of DIE */
opCallRef = 0x9A /* 4- or 8- byte offset of DIE */ opCallRef = 0x9A /* 4- or 8- byte offset of DIE */
opFormTLSAddress = 0x9B
opCallFrameCFA = 0x9C
opBitPiece = 0x9D
// The following are new in DWARF 4.
opImplicitValue = 0x9E
opStackValue = 0x9F
// The following a new in DWARF 5.
opImplicitPointer = 0xA0
opAddrx = 0xA1
opConstx = 0xA2
opEntryValue = 0xA3
opConstType = 0xA4
opRegvalType = 0xA5
opDerefType = 0xA6
opXderefType = 0xA7
opConvert = 0xA8
opReinterpret = 0xA9
/* 0xE0-0xFF reserved for user-specific */ /* 0xE0-0xFF reserved for user-specific */
) )
// Basic type encodings -- the value for AttrEncoding in a TagBaseType Entry. // Basic type encodings -- the value for AttrEncoding in a TagBaseType Entry.
const ( const (
encAddress = 0x01 encAddress = 0x01
encBoolean = 0x02 encBoolean = 0x02
encComplexFloat = 0x03 encComplexFloat = 0x03
encFloat = 0x04 encFloat = 0x04
encSigned = 0x05 encSigned = 0x05
encSignedChar = 0x06 encSignedChar = 0x06
encUnsigned = 0x07 encUnsigned = 0x07
encUnsignedChar = 0x08 encUnsignedChar = 0x08
// The following are new in DWARF 3.
encImaginaryFloat = 0x09 encImaginaryFloat = 0x09
encPackedDecimal = 0x0A
encNumericString = 0x0B
encEdited = 0x0C
encSignedFixed = 0x0D
encUnsignedFixed = 0x0E
encDecimalFloat = 0x0F
// The following are new in DWARF 4.
encUTF = 0x10
// The following are new in DWARF 5.
encUCS = 0x11
encASCII = 0x12
) )
// Statement program standard opcode encodings. // Statement program standard opcode encodings.
...@@ -317,3 +426,38 @@ const ( ...@@ -317,3 +426,38 @@ const (
// DWARF 4 // DWARF 4
lneSetDiscriminator = 4 lneSetDiscriminator = 4
) )
// Line table directory directory and file name entry formats.
// These are new in DWARF 5.
const (
lnctPath = 0x01
lnctDirectoryIndex = 0x02
lnctTimestamp = 0x03
lnctSize = 0x04
lnctMD5 = 0x05
)
// Location list entry codes.
// These are new in DWARF 5.
const (
lleEndOfList = 0x00
lleBaseAddressx = 0x01
lleStartxEndx = 0x02
lleStartxLength = 0x03
lleOffsetPair = 0x04
lleDefaultLocation = 0x05
lleBaseAddress = 0x06
lleStartEnd = 0x07
lleStartLength = 0x08
)
// Unit header unit type encodings.
// These are new in DWARF 5.
const (
utCompile = 0x01
utType = 0x02
utPartial = 0x03
utSkeleton = 0x04
utSplitCompile = 0x05
utSplitType = 0x06
)
...@@ -4,20 +4,95 @@ package dwarf ...@@ -4,20 +4,95 @@ package dwarf
import "strconv" import "strconv"
func _() {
// An "invalid array index" compiler error signifies that the constant values have changed.
// Re-run the stringer command to generate them again.
var x [1]struct{}
_ = x[TagArrayType-1]
_ = x[TagClassType-2]
_ = x[TagEntryPoint-3]
_ = x[TagEnumerationType-4]
_ = x[TagFormalParameter-5]
_ = x[TagImportedDeclaration-8]
_ = x[TagLabel-10]
_ = x[TagLexDwarfBlock-11]
_ = x[TagMember-13]
_ = x[TagPointerType-15]
_ = x[TagReferenceType-16]
_ = x[TagCompileUnit-17]
_ = x[TagStringType-18]
_ = x[TagStructType-19]
_ = x[TagSubroutineType-21]
_ = x[TagTypedef-22]
_ = x[TagUnionType-23]
_ = x[TagUnspecifiedParameters-24]
_ = x[TagVariant-25]
_ = x[TagCommonDwarfBlock-26]
_ = x[TagCommonInclusion-27]
_ = x[TagInheritance-28]
_ = x[TagInlinedSubroutine-29]
_ = x[TagModule-30]
_ = x[TagPtrToMemberType-31]
_ = x[TagSetType-32]
_ = x[TagSubrangeType-33]
_ = x[TagWithStmt-34]
_ = x[TagAccessDeclaration-35]
_ = x[TagBaseType-36]
_ = x[TagCatchDwarfBlock-37]
_ = x[TagConstType-38]
_ = x[TagConstant-39]
_ = x[TagEnumerator-40]
_ = x[TagFileType-41]
_ = x[TagFriend-42]
_ = x[TagNamelist-43]
_ = x[TagNamelistItem-44]
_ = x[TagPackedType-45]
_ = x[TagSubprogram-46]
_ = x[TagTemplateTypeParameter-47]
_ = x[TagTemplateValueParameter-48]
_ = x[TagThrownType-49]
_ = x[TagTryDwarfBlock-50]
_ = x[TagVariantPart-51]
_ = x[TagVariable-52]
_ = x[TagVolatileType-53]
_ = x[TagDwarfProcedure-54]
_ = x[TagRestrictType-55]
_ = x[TagInterfaceType-56]
_ = x[TagNamespace-57]
_ = x[TagImportedModule-58]
_ = x[TagUnspecifiedType-59]
_ = x[TagPartialUnit-60]
_ = x[TagImportedUnit-61]
_ = x[TagMutableType-62]
_ = x[TagCondition-63]
_ = x[TagSharedType-64]
_ = x[TagTypeUnit-65]
_ = x[TagRvalueReferenceType-66]
_ = x[TagTemplateAlias-67]
_ = x[TagCoarrayType-68]
_ = x[TagGenericSubrange-69]
_ = x[TagDynamicType-70]
_ = x[TagAtomicType-71]
_ = x[TagCallSite-72]
_ = x[TagCallSiteParameter-73]
_ = x[TagSkeletonUnit-74]
_ = x[TagImmutableType-75]
}
const ( const (
_Tag_name_0 = "ArrayTypeClassTypeEntryPointEnumerationTypeFormalParameter" _Tag_name_0 = "ArrayTypeClassTypeEntryPointEnumerationTypeFormalParameter"
_Tag_name_1 = "ImportedDeclaration" _Tag_name_1 = "ImportedDeclaration"
_Tag_name_2 = "LabelLexDwarfBlock" _Tag_name_2 = "LabelLexDwarfBlock"
_Tag_name_3 = "Member" _Tag_name_3 = "Member"
_Tag_name_4 = "PointerTypeReferenceTypeCompileUnitStringTypeStructType" _Tag_name_4 = "PointerTypeReferenceTypeCompileUnitStringTypeStructType"
_Tag_name_5 = "SubroutineTypeTypedefUnionTypeUnspecifiedParametersVariantCommonDwarfBlockCommonInclusionInheritanceInlinedSubroutineModulePtrToMemberTypeSetTypeSubrangeTypeWithStmtAccessDeclarationBaseTypeCatchDwarfBlockConstTypeConstantEnumeratorFileTypeFriendNamelistNamelistItemPackedTypeSubprogramTemplateTypeParameterTemplateValueParameterThrownTypeTryDwarfBlockVariantPartVariableVolatileTypeDwarfProcedureRestrictTypeInterfaceTypeNamespaceImportedModuleUnspecifiedTypePartialUnitImportedUnitMutableTypeConditionSharedTypeTypeUnitRvalueReferenceTypeTemplateAlias" _Tag_name_5 = "SubroutineTypeTypedefUnionTypeUnspecifiedParametersVariantCommonDwarfBlockCommonInclusionInheritanceInlinedSubroutineModulePtrToMemberTypeSetTypeSubrangeTypeWithStmtAccessDeclarationBaseTypeCatchDwarfBlockConstTypeConstantEnumeratorFileTypeFriendNamelistNamelistItemPackedTypeSubprogramTemplateTypeParameterTemplateValueParameterThrownTypeTryDwarfBlockVariantPartVariableVolatileTypeDwarfProcedureRestrictTypeInterfaceTypeNamespaceImportedModuleUnspecifiedTypePartialUnitImportedUnitMutableTypeConditionSharedTypeTypeUnitRvalueReferenceTypeTemplateAliasCoarrayTypeGenericSubrangeDynamicTypeAtomicTypeCallSiteCallSiteParameterSkeletonUnitImmutableType"
) )
var ( var (
_Tag_index_0 = [...]uint8{0, 9, 18, 28, 43, 58} _Tag_index_0 = [...]uint8{0, 9, 18, 28, 43, 58}
_Tag_index_2 = [...]uint8{0, 5, 18} _Tag_index_2 = [...]uint8{0, 5, 18}
_Tag_index_4 = [...]uint8{0, 11, 24, 35, 45, 55} _Tag_index_4 = [...]uint8{0, 11, 24, 35, 45, 55}
_Tag_index_5 = [...]uint16{0, 14, 21, 30, 51, 58, 74, 89, 100, 117, 123, 138, 145, 157, 165, 182, 190, 205, 214, 222, 232, 240, 246, 254, 266, 276, 286, 307, 329, 339, 352, 363, 371, 383, 397, 409, 422, 431, 445, 460, 471, 483, 494, 503, 513, 521, 540, 553} _Tag_index_5 = [...]uint16{0, 14, 21, 30, 51, 58, 74, 89, 100, 117, 123, 138, 145, 157, 165, 182, 190, 205, 214, 222, 232, 240, 246, 254, 266, 276, 286, 307, 329, 339, 352, 363, 371, 383, 397, 409, 422, 431, 445, 460, 471, 483, 494, 503, 513, 521, 540, 553, 564, 579, 590, 600, 608, 625, 637, 650}
) )
func (i Tag) String() string { func (i Tag) String() string {
...@@ -35,7 +110,7 @@ func (i Tag) String() string { ...@@ -35,7 +110,7 @@ func (i Tag) String() string {
case 15 <= i && i <= 19: case 15 <= i && i <= 19:
i -= 15 i -= 15
return _Tag_name_4[_Tag_index_4[i]:_Tag_index_4[i+1]] return _Tag_name_4[_Tag_index_4[i]:_Tag_index_4[i+1]]
case 21 <= i && i <= 67: case 21 <= i && i <= 75:
i -= 21 i -= 21
return _Tag_name_5[_Tag_index_5[i]:_Tag_index_5[i+1]] return _Tag_name_5[_Tag_index_5[i]:_Tag_index_5[i+1]]
default: default:
......
  • This commit is used to patch go on slapos repository. Writing this comment will make sure the commit is preserved by gitlab.

  • mentioned in commit 28fbdd01

    Toggle commit list
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment