diff options
author | FalseHonesty <thefalsehonesty@gmail.com> | 2020-06-01 00:48:22 -0400 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2020-06-03 08:12:50 +0200 |
commit | 870bcaeef64ef568dcc7590d6f944b88b14475e9 (patch) | |
tree | 59fed659db5d1f030a091c1a61670f69a2c737cb /Libraries/LibDebug | |
parent | f958c693eeefa9a5acd7716099b9814a1aa7a922 (diff) | |
download | serenity-870bcaeef64ef568dcc7590d6f944b88b14475e9.zip |
LibDebug: Add all Dwarf v5 attributes, tags, and form enum values
Diffstat (limited to 'Libraries/LibDebug')
-rw-r--r-- | Libraries/LibDebug/Dwarf/DwarfTypes.h | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/Libraries/LibDebug/Dwarf/DwarfTypes.h b/Libraries/LibDebug/Dwarf/DwarfTypes.h index e3f601ab4e..2db11bf5d4 100644 --- a/Libraries/LibDebug/Dwarf/DwarfTypes.h +++ b/Libraries/LibDebug/Dwarf/DwarfTypes.h @@ -40,14 +40,77 @@ struct [[gnu::packed]] CompilationUnitHeader enum class EntryTag : u32 { None = 0, + ArrayType = 0x1, + ClassType = 0x2, + EntryPoint = 0x3, EnumerationType = 0x4, FormalParameter = 0x5, + ImportedDeclaration = 0x8, + Label = 0xa, LexicalBlock = 0xb, Member = 0xd, + PointerType = 0xf, + ReferenceType = 0x10, + CompileUnit = 0x11, + StringType = 0x12, StructureType = 0x13, + SubroutineType = 0x15, + TypeDef = 0x16, + UnionType = 0x17, + UnspecifiedParameters = 0x18, + Variant = 0x19, + CommonBlock = 0x1a, + CommonInclusion = 0x1b, + Inheritance = 0x1c, + InlinedSubroutine = 0x1d, + Module = 0x1e, + PtrToMemberType = 0x1f, + SetType = 0x20, + SubRangeType = 0x21, + WithStmt = 0x22, + AccessDeclaration = 0x23, + BaseType = 0x24, + CatchBlock = 0x25, + ConstType = 0x26, + Constant = 0x27, Enumerator = 0x28, + FileType = 0x29, + Friend = 0x2a, + NameList = 0x2b, + NameListItem = 0x2c, + PackedType = 0x2d, SubProgram = 0x2e, + TemplateTypeParam = 0x2f, + TemplateValueParam = 0x30, + ThrownType = 0x31, + TryBlock = 0x32, + VariantPart = 0x33, Variable = 0x34, + VolatileType = 0x35, + DwarfProcedure = 0x36, + RestrictType = 0x37, + InterfaceType = 0x38, + Namespace = 0x39, + ImportedModule = 0x3a, + UnspecifiedType = 0x3b, + PartialUnit = 0x3c, + ImportedUnit = 0x3d, + MutableType = 0x3e, + Condition = 0x3f, + SharedTyped = 0x40, + TypeUnit = 0x41, + RValueReferenceType = 0x42, + TemplateAlias = 0x43, + CoArrayType = 0x44, + GenericSubRange = 0x45, + DynamicType = 0x46, + AtomicType = 0x47, + CallSite = 0x48, + CallSiteParameter = 0x49, + SkeletonUnit = 0x4a, + ImmutableType = 0x4b, + LoUser = 0x4080, + HiUser = 0xffff, }; enum class Attribute : u32 { @@ -55,27 +118,173 @@ enum class Attribute : u32 { Sibling = 0x1, Location = 0x2, Name = 0x3, + Ordering = 0x9, + ByteSize = 0xb, + BitOffset = 0xc, + BitSize = 0xd, + StmtList = 0x10, LowPc = 0x11, HighPc = 0x12, + Language = 0x13, + Discr = 0x15, + DiscrValue = 0x16, + Visibility = 0x17, + Import = 0x18, + StringLength = 0x19, + CommonReference = 0x1a, + CompDir = 0x1b, ConstValue = 0x1c, + ContainingType = 0x1d, + DefaultValue = 0x1e, Inline = 0x20, + IsOptional = 0x21, + LowerBound = 0x22, + Producer = 0x25, + Prototyped = 0x27, + ReturnAddr = 0x2a, + StartScope = 0x2c, + BitStride = 0x2e, + UpperBound = 0x2f, + AbstractOrigin = 0x31, + Accessibility = 0x32, + AddressClass = 0x33, + Artificial = 0x34, + BaseTypes = 0x35, + CallingConvention = 0x36, + Count = 0x37, MemberLocation = 0x38, + DeclColumn = 0x39, + DeclFile = 0x3a, + DeclLine = 0x3b, + Declaration = 0x3c, + DiscrList = 0x3d, + Encoding = 0x3e, + External = 0x3f, + FrameBase = 0x40, + Friend = 0x41, + IdentifierCase = 0x43, + MacroInfo = 0x43, + NameListItem = 0x44, + Priority = 0x45, + Segment = 0x46, + Specification = 0x47, + StaticLink = 0x48, Type = 0x49, + UseLocation = 0x4a, + VariableParameter = 0x4b, + Virtuality = 0x4c, + VtableElemLocation = 0x4d, + Allocated = 0x4e, + Associated = 0x4f, + DataLocation = 0x50, + ByteStride = 0x51, + EntryPC = 0x52, + UseUTF8 = 0x53, + Extension = 0x54, Ranges = 0x55, + Trampoline = 0x56, + CallColumn = 0x57, + CallFile = 0x58, + CallLine = 0x59, + Description = 0x5a, + BinaryScale = 0x5b, + DecimalScale = 0x5c, + Small = 0x5d, + DecimalSign = 0x5e, + DigitCount = 0x5f, + PictureString = 0x60, + Mutable = 0x61, + ThreadsScaled = 0x62, + Explicit = 0x63, + ObjectPointer = 0x64, + Endianity = 0x65, + Elemental = 0x66, + Pure = 0x67, + Recursive = 0x68, + Signature = 0x69, + MainSubprogram = 0x6a, + DataBitOffset = 0x6b, + ConstExpr = 0x6c, + EnumClass = 0x6d, + LinkageName = 0x6e, + StringLengthBitSize = 0x6f, + StringLengthByteSize = 0x70, + Rank = 0x71, + StrOffsetsBase = 0x72, + AddrBase = 0x73, + RngListsBase = 0x74, + DWOName = 0x76, + Reference = 0x77, + RValueReference = 0x78, + Macros = 0x79, + CallAllCalls = 0x7a, + CallAllSourceCalls = 0x7b, + CallAllTailCalls = 0x7c, + CallReturnPC = 0x7d, + CallValue = 0x7e, + CallOrigin = 0x7f, + CallParameter = 0x80, + CallPC = 0x81, + CallTailCall = 0x82, + CallTarget = 0x83, + CallTargetClobbered = 0x84, + CallDataLocation = 0x85, + CallDataValue = 0x86, + NoReturn = 0x87, + Alignment = 0x88, + ExportSymbols = 0x89, + Deleted = 0x8a, + Defaulted = 0x8b, + LocListsBase = 0x8c, + LoUser = 0x2000, + HiUser = 0x3fff, }; enum class AttributeDataForm : u32 { None = 0, Addr = 0x1, + Block2 = 0x3, + Block4 = 0x4, Data2 = 0x5, Data4 = 0x6, + Data8 = 0x7, String = 0x8, + Block = 0x9, + Block1 = 0xa, Data1 = 0xb, + Flag = 0xc, + SData = 0xd, StringPointer = 0xe, + UData = 0xf, + RefAddr = 0x10, + Ref1 = 0x11, + Ref2 = 0x12, Ref4 = 0x13, + Ref8 = 0x14, + RefUData = 0x15, + Indirect = 0x16, SecOffset = 0x17, ExprLoc = 0x18, FlagPresent = 0x19, + StrX = 0x1a, + AddrX = 0x1b, + RefSup4 = 0x1c, + StrPSup = 0x1d, + Data16 = 0x1e, + LineStrP = 0x1f, + RefSig8 = 0x20, + ImplicitConst = 0x21, + LocListX = 0x22, + RngListX = 0x23, + RefSup8 = 0x24, + StrX1 = 0x25, + StrX2 = 0x26, + StrX3 = 0x27, + StrX4 = 0x28, + AddrX1 = 0x29, + AddrX2 = 0x2a, + AddrX3 = 0x2b, + AddrX4 = 0x2c }; struct AttributeSpecification { |