aboutsummaryrefslogtreecommitdiff
path: root/src/debug
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2019-05-01 17:48:46 -0700
committerIan Lance Taylor <iant@golang.org>2019-09-03 17:32:37 +0000
commit663680b3d45a276fc2f246c61deeb79acf634591 (patch)
treeb9df2cc91ec1f90763e63e72935de7adea1b7557 /src/debug
parent3c5614344234af95250f06fb97d605a2005d5353 (diff)
downloadgo-663680b3d45a276fc2f246c61deeb79acf634591.tar.gz
go-663680b3d45a276fc2f246c61deeb79acf634591.zip
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: Austin Clements <austin@google.com>
Diffstat (limited to 'src/debug')
-rw-r--r--src/debug/dwarf/attr_string.go322
-rw-r--r--src/debug/dwarf/class_string.go21
-rw-r--r--src/debug/dwarf/const.go196
-rw-r--r--src/debug/dwarf/tag_string.go81
4 files changed, 518 insertions, 102 deletions
diff --git a/src/debug/dwarf/attr_string.go b/src/debug/dwarf/attr_string.go
index 34e3659a64..8a4fff85a4 100644
--- a/src/debug/dwarf/attr_string.go
+++ b/src/debug/dwarf/attr_string.go
@@ -4,81 +4,257 @@ package dwarf
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{
- 1: _Attr_name[0:7],
- 2: _Attr_name[7:15],
- 3: _Attr_name[15:19],
- 9: _Attr_name[19:27],
- 11: _Attr_name[27:35],
- 12: _Attr_name[35:44],
- 13: _Attr_name[44:51],
- 16: _Attr_name[51:59],
- 17: _Attr_name[59:64],
- 18: _Attr_name[64:70],
- 19: _Attr_name[70:78],
- 21: _Attr_name[78:83],
- 22: _Attr_name[83:93],
- 23: _Attr_name[93:103],
- 24: _Attr_name[103:109],
- 25: _Attr_name[109:121],
- 26: _Attr_name[121:130],
- 27: _Attr_name[130:137],
- 28: _Attr_name[137:147],
- 29: _Attr_name[147:161],
- 30: _Attr_name[161:173],
- 32: _Attr_name[173:179],
- 33: _Attr_name[179:189],
- 34: _Attr_name[189:199],
- 37: _Attr_name[199:207],
- 39: _Attr_name[207:217],
- 42: _Attr_name[217:227],
- 44: _Attr_name[227:237],
- 46: _Attr_name[237:247],
- 47: _Attr_name[247:257],
- 49: _Attr_name[257:271],
- 50: _Attr_name[271:284],
- 51: _Attr_name[284:293],
- 52: _Attr_name[293:303],
- 53: _Attr_name[303:312],
- 54: _Attr_name[312:319],
- 55: _Attr_name[319:324],
- 56: _Attr_name[324:337],
- 57: _Attr_name[337:347],
- 58: _Attr_name[347:355],
- 59: _Attr_name[355:363],
- 60: _Attr_name[363:374],
- 61: _Attr_name[374:383],
- 62: _Attr_name[383:391],
- 63: _Attr_name[391:399],
- 64: _Attr_name[399:408],
- 65: _Attr_name[408:414],
- 66: _Attr_name[414:428],
- 67: _Attr_name[428:437],
- 68: _Attr_name[437:449],
- 69: _Attr_name[449:457],
- 70: _Attr_name[457:464],
- 71: _Attr_name[464:477],
- 72: _Attr_name[477:487],
- 73: _Attr_name[487:491],
- 74: _Attr_name[491:502],
- 75: _Attr_name[502:510],
- 76: _Attr_name[510:520],
- 77: _Attr_name[520:533],
- 78: _Attr_name[533:542],
- 79: _Attr_name[542:552],
- 80: _Attr_name[552:564],
- 81: _Attr_name[564:570],
- 82: _Attr_name[570:577],
- 83: _Attr_name[577:584],
- 84: _Attr_name[584:593],
- 85: _Attr_name[593:599],
- 86: _Attr_name[599:609],
- 87: _Attr_name[609:619],
- 88: _Attr_name[619:627],
- 89: _Attr_name[627:635],
- 90: _Attr_name[635:646],
+ 1: _Attr_name[0:7],
+ 2: _Attr_name[7:15],
+ 3: _Attr_name[15:19],
+ 9: _Attr_name[19:27],
+ 11: _Attr_name[27:35],
+ 12: _Attr_name[35:44],
+ 13: _Attr_name[44:51],
+ 16: _Attr_name[51:59],
+ 17: _Attr_name[59:64],
+ 18: _Attr_name[64:70],
+ 19: _Attr_name[70:78],
+ 21: _Attr_name[78:83],
+ 22: _Attr_name[83:93],
+ 23: _Attr_name[93:103],
+ 24: _Attr_name[103:109],
+ 25: _Attr_name[109:121],
+ 26: _Attr_name[121:130],
+ 27: _Attr_name[130:137],
+ 28: _Attr_name[137:147],
+ 29: _Attr_name[147:161],
+ 30: _Attr_name[161:173],
+ 32: _Attr_name[173:179],
+ 33: _Attr_name[179:189],
+ 34: _Attr_name[189:199],
+ 37: _Attr_name[199:207],
+ 39: _Attr_name[207:217],
+ 42: _Attr_name[217:227],
+ 44: _Attr_name[227:237],
+ 46: _Attr_name[237:247],
+ 47: _Attr_name[247:257],
+ 49: _Attr_name[257:271],
+ 50: _Attr_name[271:284],
+ 51: _Attr_name[284:293],
+ 52: _Attr_name[293:303],
+ 53: _Attr_name[303:312],
+ 54: _Attr_name[312:319],
+ 55: _Attr_name[319:324],
+ 56: _Attr_name[324:337],
+ 57: _Attr_name[337:347],
+ 58: _Attr_name[347:355],
+ 59: _Attr_name[355:363],
+ 60: _Attr_name[363:374],
+ 61: _Attr_name[374:383],
+ 62: _Attr_name[383:391],
+ 63: _Attr_name[391:399],
+ 64: _Attr_name[399:408],
+ 65: _Attr_name[408:414],
+ 66: _Attr_name[414:428],
+ 67: _Attr_name[428:437],
+ 68: _Attr_name[437:449],
+ 69: _Attr_name[449:457],
+ 70: _Attr_name[457:464],
+ 71: _Attr_name[464:477],
+ 72: _Attr_name[477:487],
+ 73: _Attr_name[487:491],
+ 74: _Attr_name[491:502],
+ 75: _Attr_name[502:510],
+ 76: _Attr_name[510:520],
+ 77: _Attr_name[520:533],
+ 78: _Attr_name[533:542],
+ 79: _Attr_name[542:552],
+ 80: _Attr_name[552:564],
+ 81: _Attr_name[564:570],
+ 82: _Attr_name[570:577],
+ 83: _Attr_name[577:584],
+ 84: _Attr_name[584:593],
+ 85: _Attr_name[593:599],
+ 86: _Attr_name[599:609],
+ 87: _Attr_name[609:619],
+ 88: _Attr_name[619:627],
+ 89: _Attr_name[627:635],
+ 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 {
diff --git a/src/debug/dwarf/class_string.go b/src/debug/dwarf/class_string.go
index a6aabff524..76de7cad31 100644
--- a/src/debug/dwarf/class_string.go
+++ b/src/debug/dwarf/class_string.go
@@ -4,6 +4,27 @@ package dwarf
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"
var _Class_index = [...]uint8{0, 12, 24, 34, 47, 59, 68, 80, 95, 106, 123, 137, 154, 165, 182, 196}
diff --git a/src/debug/dwarf/const.go b/src/debug/dwarf/const.go
index 4dda83e692..b11bf90c37 100644
--- a/src/debug/dwarf/const.go
+++ b/src/debug/dwarf/const.go
@@ -71,19 +71,71 @@ const (
AttrVarParam Attr = 0x4B
AttrVirtuality Attr = 0x4C
AttrVtableElemLoc Attr = 0x4D
- AttrAllocated Attr = 0x4E
- AttrAssociated Attr = 0x4F
- AttrDataLocation Attr = 0x50
- AttrStride Attr = 0x51
- AttrEntrypc Attr = 0x52
- AttrUseUTF8 Attr = 0x53
- AttrExtension Attr = 0x54
- AttrRanges Attr = 0x55
- AttrTrampoline Attr = 0x56
- AttrCallColumn Attr = 0x57
- AttrCallFile Attr = 0x58
- AttrCallLine Attr = 0x59
- AttrDescription Attr = 0x5A
+ // The following are new in DWARF 3.
+ AttrAllocated Attr = 0x4E
+ AttrAssociated Attr = 0x4F
+ AttrDataLocation Attr = 0x50
+ AttrStride Attr = 0x51
+ AttrEntrypc Attr = 0x52
+ AttrUseUTF8 Attr = 0x53
+ AttrExtension Attr = 0x54
+ AttrRanges Attr = 0x55
+ AttrTrampoline Attr = 0x56
+ AttrCallColumn Attr = 0x57
+ AttrCallFile Attr = 0x58
+ 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 {
@@ -124,6 +176,25 @@ const (
formExprloc format = 0x18
formFlagPresent format = 0x19
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)
// http://www.dwarfstd.org/ShowIssue.php?issue=120604.1
formGnuRefAlt format = 0x1f20
@@ -199,6 +270,15 @@ const (
TagTypeUnit Tag = 0x41
TagRvalueReferenceType Tag = 0x42
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 {
@@ -269,25 +349,54 @@ const (
opDerefSize = 0x94 /* 1-byte size of data retrieved */
opXderefSize = 0x95 /* 1-byte size of data retrieved */
opNop = 0x96
- /* next four new in Dwarf v3 */
- opPushObjAddr = 0x97
- opCall2 = 0x98 /* 2-byte offset of DIE */
- opCall4 = 0x99 /* 4-byte offset of DIE */
- opCallRef = 0x9A /* 4- or 8- byte offset of DIE */
+ // The following are new in DWARF 3.
+ opPushObjAddr = 0x97
+ opCall2 = 0x98 /* 2-byte offset of DIE */
+ opCall4 = 0x99 /* 4-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 */
)
// Basic type encodings -- the value for AttrEncoding in a TagBaseType Entry.
const (
- encAddress = 0x01
- encBoolean = 0x02
- encComplexFloat = 0x03
- encFloat = 0x04
- encSigned = 0x05
- encSignedChar = 0x06
- encUnsigned = 0x07
- encUnsignedChar = 0x08
+ encAddress = 0x01
+ encBoolean = 0x02
+ encComplexFloat = 0x03
+ encFloat = 0x04
+ encSigned = 0x05
+ encSignedChar = 0x06
+ encUnsigned = 0x07
+ encUnsignedChar = 0x08
+ // The following are new in DWARF 3.
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.
@@ -317,3 +426,38 @@ const (
// DWARF 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
+)
diff --git a/src/debug/dwarf/tag_string.go b/src/debug/dwarf/tag_string.go
index ac396af050..b79ea175b0 100644
--- a/src/debug/dwarf/tag_string.go
+++ b/src/debug/dwarf/tag_string.go
@@ -4,20 +4,95 @@ package dwarf
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 (
_Tag_name_0 = "ArrayTypeClassTypeEntryPointEnumerationTypeFormalParameter"
_Tag_name_1 = "ImportedDeclaration"
_Tag_name_2 = "LabelLexDwarfBlock"
_Tag_name_3 = "Member"
_Tag_name_4 = "PointerTypeReferenceTypeCompileUnitStringTypeStructType"
- _Tag_name_5 = "SubroutineTypeTypedefUnionTypeUnspecifiedParametersVariantCommonDwarfBlockCommonInclusionInheritanceInlinedSubroutineModulePtrToMemberTypeSetTypeSubrangeTypeWithStmtAccessDeclarationBaseTypeCatchDwarfBlockConstTypeConstantEnumeratorFileTypeFriendNamelistNamelistItemPackedTypeSubprogramTemplateTypeParameterTemplateValueParameterThrownTypeTryDwarfBlockVariantPartVariableVolatileTypeDwarfProcedureRestrictTypeInterfaceTypeNamespaceImportedModuleUnspecifiedTypePartialUnitImportedUnitMutableTypeConditionSharedTypeTypeUnitRvalueReferenceTypeTemplateAlias"
+ _Tag_name_5 = "SubroutineTypeTypedefUnionTypeUnspecifiedParametersVariantCommonDwarfBlockCommonInclusionInheritanceInlinedSubroutineModulePtrToMemberTypeSetTypeSubrangeTypeWithStmtAccessDeclarationBaseTypeCatchDwarfBlockConstTypeConstantEnumeratorFileTypeFriendNamelistNamelistItemPackedTypeSubprogramTemplateTypeParameterTemplateValueParameterThrownTypeTryDwarfBlockVariantPartVariableVolatileTypeDwarfProcedureRestrictTypeInterfaceTypeNamespaceImportedModuleUnspecifiedTypePartialUnitImportedUnitMutableTypeConditionSharedTypeTypeUnitRvalueReferenceTypeTemplateAliasCoarrayTypeGenericSubrangeDynamicTypeAtomicTypeCallSiteCallSiteParameterSkeletonUnitImmutableType"
)
var (
_Tag_index_0 = [...]uint8{0, 9, 18, 28, 43, 58}
_Tag_index_2 = [...]uint8{0, 5, 18}
_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 {
@@ -35,7 +110,7 @@ func (i Tag) String() string {
case 15 <= i && i <= 19:
i -= 15
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
return _Tag_name_5[_Tag_index_5[i]:_Tag_index_5[i+1]]
default: