package dwarf
Import Path
debug/dwarf (on golang.org and go.dev)
Dependency Relation
imports 9 packages, and imported by 4 packages
Involved Source Files
attr_string.go
buf.go
class_string.go
const.go
entry.go
line.go
d-> open.go
tag_string.go
type.go
typeunit.go
unit.go
Exported Type Names
type AddrType (struct)
An AddrType represents a machine address type.
BasicType BasicType
BasicType.BitOffset int64
BasicType.BitSize int64
BasicType.CommonType CommonType
// size of value of this type, in bytes
// name that can be used to refer to type
(*T) Basic() *BasicType
(*T) Common() *CommonType
(*T) Size() int64
(*T) String() string
*T : Type
*T : expvar.Var
*T : fmt.Stringer
type ArrayType (struct)
An ArrayType represents a fixed size array type.
CommonType CommonType
// size of value of this type, in bytes
// name that can be used to refer to type
// if == -1, an incomplete array, like char x[].
// if > 0, number of bits to hold each element
Type Type
(*T) Common() *CommonType
(*T) Size() int64
(*T) String() string
*T : Type
*T : expvar.Var
*T : fmt.Stringer
type Attr uint32
An Attr identifies the attribute type in a DWARF Entry's Field.
( T) GoString() string
( T) String() string
T : expvar.Var
T : fmt.GoStringer
T : fmt.Stringer
func (*Entry).AttrField(a Attr) *Field
func (*Entry).Val(a Attr) interface{}
const AttrAbstractOrigin
const AttrAccessibility
const AttrAddrBase
const AttrAddrClass
const AttrAlignment
const AttrAllocated
const AttrArtificial
const AttrAssociated
const AttrBaseTypes
const AttrBinaryScale
const AttrBitOffset
const AttrBitSize
const AttrByteSize
const AttrCallAllCalls
const AttrCallAllSourceCalls
const AttrCallAllTailCalls
const AttrCallColumn
const AttrCallDataLocation
const AttrCallDataValue
const AttrCallFile
const AttrCalling
const AttrCallLine
const AttrCallOrigin
const AttrCallParameter
const AttrCallPC
const AttrCallReturnPC
const AttrCallTailCall
const AttrCallTarget
const AttrCallTargetClobbered
const AttrCallValue
const AttrCommonRef
const AttrCompDir
const AttrConstExpr
const AttrConstValue
const AttrContainingType
const AttrCount
const AttrDataBitOffset
const AttrDataLocation
const AttrDataMemberLoc
const AttrDecimalScale
const AttrDecimalSign
const AttrDeclaration
const AttrDeclColumn
const AttrDeclFile
const AttrDeclLine
const AttrDefaulted
const AttrDefaultValue
const AttrDeleted
const AttrDescription
const AttrDigitCount
const AttrDiscr
const AttrDiscrList
const AttrDiscrValue
const AttrDwoName
const AttrElemental
const AttrEncoding
const AttrEndianity
const AttrEntrypc
const AttrEnumClass
const AttrExplicit
const AttrExportSymbols
const AttrExtension
const AttrExternal
const AttrFrameBase
const AttrFriend
const AttrHighpc
const AttrIdentifierCase
const AttrImport
const AttrInline
const AttrIsOptional
const AttrLanguage
const AttrLinkageName
const AttrLocation
const AttrLoclistsBase
const AttrLowerBound
const AttrLowpc
const AttrMacroInfo
const AttrMacros
const AttrMainSubprogram
const AttrMutable
const AttrName
const AttrNamelistItem
const AttrNoreturn
const AttrObjectPointer
const AttrOrdering
const AttrPictureString
const AttrPriority
const AttrProducer
const AttrPrototyped
const AttrPure
const AttrRanges
const AttrRank
const AttrRecursive
const AttrReference
const AttrReturnAddr
const AttrRnglistsBase
const AttrRvalueReference
const AttrSegment
const AttrSibling
const AttrSignature
const AttrSmall
const AttrSpecification
const AttrStartScope
const AttrStaticLink
const AttrStmtList
const AttrStride
const AttrStrideSize
const AttrStringLength
const AttrStringLengthBitSize
const AttrStringLengthByteSize
const AttrStrOffsetsBase
const AttrThreadsScaled
const AttrTrampoline
const AttrType
const AttrUpperBound
const AttrUseLocation
const AttrUseUTF8
const AttrVarParam
const AttrVirtuality
const AttrVisibility
const AttrVtableElemLoc
type BasicType (struct)
A BasicType holds fields common to all basic types.
BitOffset int64
BitSize int64
CommonType CommonType
// size of value of this type, in bytes
// name that can be used to refer to type
(*T) Basic() *BasicType
(*T) Common() *CommonType
(*T) Size() int64
(*T) String() string
*T : Type
*T : expvar.Var
*T : fmt.Stringer
func (*BasicType).Basic() *BasicType
type BoolType (struct)
A BoolType represents a boolean type.
BasicType BasicType
BasicType.BitOffset int64
BasicType.BitSize int64
BasicType.CommonType CommonType
// size of value of this type, in bytes
// name that can be used to refer to type
(*T) Basic() *BasicType
(*T) Common() *CommonType
(*T) Size() int64
(*T) String() string
*T : Type
*T : expvar.Var
*T : fmt.Stringer
type CharType (struct)
A CharType represents a signed character type.
BasicType BasicType
BasicType.BitOffset int64
BasicType.BitSize int64
BasicType.CommonType CommonType
// size of value of this type, in bytes
// name that can be used to refer to type
(*T) Basic() *BasicType
(*T) Common() *CommonType
(*T) Size() int64
(*T) String() string
*T : Type
*T : expvar.Var
*T : fmt.Stringer
type Class int
A Class is the DWARF 4 class of an attribute value.
In general, a given attribute's value may take on one of several
possible classes defined by DWARF, each of which leads to a
slightly different interpretation of the attribute.
DWARF version 4 distinguishes attribute value classes more finely
than previous versions of DWARF. The reader will disambiguate
coarser classes from earlier versions of DWARF into the appropriate
DWARF 4 class. For example, DWARF 2 uses "constant" for constants
as well as all types of section offsets, but the reader will
canonicalize attributes in DWARF 2 files that refer to section
offsets to one of the Class*Ptr classes, even though these classes
were only defined in DWARF 3.
( T) GoString() string
( T) String() string
T : expvar.Var
T : fmt.GoStringer
T : fmt.Stringer
const ClassAddress
const ClassAddrPtr
const ClassBlock
const ClassConstant
const ClassExprLoc
const ClassFlag
const ClassLinePtr
const ClassLocList
const ClassLocListPtr
const ClassMacPtr
const ClassRangeListPtr
const ClassReference
const ClassReferenceAlt
const ClassReferenceSig
const ClassRngList
const ClassRngListsPtr
const ClassString
const ClassStringAlt
const ClassStrOffsetsPtr
const ClassUnknown
type CommonType (struct)
A CommonType holds fields common to multiple types.
If a field is not known or not applicable for a given type,
the zero value is used.
// size of value of this type, in bytes
// name that can be used to refer to type
(*T) Common() *CommonType
(*T) Size() int64
func (*CommonType).Common() *CommonType
func Type.Common() *CommonType
type ComplexType (struct)
A ComplexType represents a complex floating point type.
BasicType BasicType
BasicType.BitOffset int64
BasicType.BitSize int64
BasicType.CommonType CommonType
// size of value of this type, in bytes
// name that can be used to refer to type
(*T) Basic() *BasicType
(*T) Common() *CommonType
(*T) Size() int64
(*T) String() string
*T : Type
*T : expvar.Var
*T : fmt.Stringer
type Data (struct)
Data represents the DWARF debugging information
loaded from an executable file (for example, an ELF or Mach-O executable).
AddSection adds another DWARF section by name. The name should be a
DWARF section name such as ".debug_addr", ".debug_str_offsets", and
so forth. This approach is used for new DWARF sections added in
DWARF 5 and later.
AddTypes will add one .debug_types section to the DWARF data. A
typical object with DWARF version 4 debug info will have multiple
.debug_types sections. The name is used for error reporting only,
and serves to distinguish one .debug_types section from another.
LineReader returns a new reader for the line table of compilation
unit cu, which must be an Entry with tag TagCompileUnit.
If this compilation unit has no line table, it returns nil, nil.
Ranges returns the PC ranges covered by e, a slice of [low,high) pairs.
Only some entry types, such as TagCompileUnit or TagSubprogram, have PC
ranges; for others, this will return nil with no error.
Reader returns a new Reader for Data.
The reader is positioned at byte offset 0 in the DWARF ``info'' section.
Type reads the type at off in the DWARF ``info'' section.
func New(abbrev, aranges, frame, info, line, pubnames, ranges, str []byte) (*Data, error)
func debug/elf.(*File).DWARF() (*Data, error)
func debug/macho.(*File).DWARF() (*Data, error)
func debug/pe.(*File).DWARF() (*Data, error)
func internal/xcoff.(*File).DWARF() (*Data, error)
type DotDotDotType (struct)
A DotDotDotType represents the variadic ... function parameter.
CommonType CommonType
// size of value of this type, in bytes
// name that can be used to refer to type
(*T) Common() *CommonType
(*T) Size() int64
(*T) String() string
*T : Type
*T : expvar.Var
*T : fmt.Stringer
type Entry (struct)
An entry is a sequence of attribute/value pairs.
// whether Entry is followed by children
Field []Field
// offset of Entry in DWARF info
// tag (kind of Entry)
AttrField returns the Field associated with attribute Attr in
Entry, or nil if there is no such attribute.
Val returns the value associated with attribute Attr in Entry,
or nil if there is no such attribute.
A common idiom is to merge the check for nil return with
the check that the value has the expected dynamic type, as in:
v, ok := e.Val(AttrSibling).(int64)
func (*Reader).Next() (*Entry, error)
func (*Reader).SeekPC(pc uint64) (*Entry, error)
func (*Data).LineReader(cu *Entry) (*LineReader, error)
func (*Data).Ranges(e *Entry) ([][2]uint64, error)
type EnumType (struct)
An EnumType represents an enumerated type.
The only indication of its native integer type is its ByteSize
(inside CommonType).
CommonType CommonType
// size of value of this type, in bytes
// name that can be used to refer to type
EnumName string
Val []*EnumValue
(*T) Common() *CommonType
(*T) Size() int64
(*T) String() string
*T : Type
*T : expvar.Var
*T : fmt.Stringer
type Field (struct)
A Field is a single attribute/value pair in an Entry.
A value can be one of several "attribute classes" defined by DWARF.
The Go types corresponding to each class are:
DWARF class Go type Class
----------- ------- -----
address uint64 ClassAddress
block []byte ClassBlock
constant int64 ClassConstant
flag bool ClassFlag
reference
to info dwarf.Offset ClassReference
to type unit uint64 ClassReferenceSig
string string ClassString
exprloc []byte ClassExprLoc
lineptr int64 ClassLinePtr
loclistptr int64 ClassLocListPtr
macptr int64 ClassMacPtr
rangelistptr int64 ClassRangeListPtr
For unrecognized or vendor-defined attributes, Class may be
ClassUnknown.
Attr Attr
Class Class
Val interface{}
func (*Entry).AttrField(a Attr) *Field
type FloatType (struct)
A FloatType represents a floating point type.
BasicType BasicType
BasicType.BitOffset int64
BasicType.BitSize int64
BasicType.CommonType CommonType
// size of value of this type, in bytes
// name that can be used to refer to type
(*T) Basic() *BasicType
(*T) Common() *CommonType
(*T) Size() int64
(*T) String() string
*T : Type
*T : expvar.Var
*T : fmt.Stringer
type FuncType (struct)
A FuncType represents a function type.
CommonType CommonType
// size of value of this type, in bytes
// name that can be used to refer to type
ParamType []Type
ReturnType Type
(*T) Common() *CommonType
(*T) Size() int64
(*T) String() string
*T : Type
*T : expvar.Var
*T : fmt.Stringer
type IntType (struct)
An IntType represents a signed integer type.
BasicType BasicType
BasicType.BitOffset int64
BasicType.BitSize int64
BasicType.CommonType CommonType
// size of value of this type, in bytes
// name that can be used to refer to type
(*T) Basic() *BasicType
(*T) Common() *CommonType
(*T) Size() int64
(*T) String() string
*T : Type
*T : expvar.Var
*T : fmt.Stringer
type LineEntry (struct)
A LineEntry is a row in a DWARF line table.
Address is the program-counter value of a machine
instruction generated by the compiler. This LineEntry
applies to each instruction from Address to just before the
Address of the next LineEntry.
BasicBlock indicates that Address is the beginning of a
basic block.
Column is the column number within the source line of these
instructions. Columns are numbered beginning at 1. It may
be 0 to indicate the "left edge" of the line.
Discriminator is an arbitrary integer indicating the block
to which these instructions belong. It serves to
distinguish among multiple blocks that may all have with
the same source file, line, and column. Where only one
block exists for a given source position, it should be 0.
Added in DWARF 3.
EndSequence indicates that Address is the first byte after
the end of a sequence of target machine instructions. If it
is set, only this and the Address field are meaningful. A
line number table may contain information for multiple
potentially disjoint instruction sequences. The last entry
in a line table should always have EndSequence set.
EpilogueBegin indicates that Address is one (of possibly
many) PCs where execution should be suspended for a
breakpoint on exit from this function.
Added in DWARF 3.
File is the source file corresponding to these
instructions.
ISA is the instruction set architecture for these
instructions. Possible ISA values should be defined by the
applicable ABI specification.
Added in DWARF 3.
IsStmt indicates that Address is a recommended breakpoint
location, such as the beginning of a line, statement, or a
distinct subpart of a statement.
Line is the source code line number corresponding to these
instructions. Lines are numbered beginning at 1. It may be
0 if these instructions cannot be attributed to any source
line.
OpIndex is the index of an operation within a VLIW
instruction. The index of the first operation is 0. For
non-VLIW architectures, it will always be 0. Address and
OpIndex together form an operation pointer that can
reference any individual operation within the instruction
stream.
PrologueEnd indicates that Address is one (of possibly
many) PCs where execution should be suspended for a
breakpoint on entry to the containing function.
Added in DWARF 3.
func (*LineReader).Next(entry *LineEntry) error
func (*LineReader).SeekPC(pc uint64, entry *LineEntry) error
type LineFile (struct)
A LineFile is a source file referenced by a DWARF line table entry.
// File length, or 0 if unknown
// Implementation defined modification time, or 0 if unknown
Name string
func (*LineReader).Files() []*LineFile
type LineReader (struct)
A LineReader reads a sequence of LineEntry structures from a DWARF
"line" section for a single compilation unit. LineEntries occur in
order of increasing PC and each LineEntry gives metadata for the
instructions from that LineEntry's PC to just before the next
LineEntry's PC. The last entry will have its EndSequence field set.
Files returns the file name table of this compilation unit as of
the current position in the line table. The file name table may be
referenced from attributes in this compilation unit such as
AttrDeclFile.
Entry 0 is always nil, since file index 0 represents "no file".
The file name table of a compilation unit is not fixed. Files
returns the file table as of the current position in the line
table. This may contain more entries than the file table at an
earlier position in the line table, though existing entries never
change.
Next sets *entry to the next row in this line table and moves to
the next row. If there are no more entries and the line table is
properly terminated, it returns io.EOF.
Rows are always in order of increasing entry.Address, but
entry.Line may go forward or backward.
Reset repositions the line table reader at the beginning of the
line table.
Seek restores the line table reader to a position returned by Tell.
The argument pos must have been returned by a call to Tell on this
line table.
SeekPC sets *entry to the LineEntry that includes pc and positions
the reader on the next entry in the line table. If necessary, this
will seek backwards to find pc.
If pc is not covered by any entry in this line table, SeekPC
returns ErrUnknownPC. In this case, *entry and the final seek
position are unspecified.
Note that DWARF line tables only permit sequential, forward scans.
Hence, in the worst case, this takes time linear in the size of the
line table. If the caller wishes to do repeated fast PC lookups, it
should build an appropriate index of the line table.
Tell returns the current position in the line table.
func (*Data).LineReader(cu *Entry) (*LineReader, error)
type LineReaderPos (struct)
A LineReaderPos represents a position in a line table.
func (*LineReader).Tell() LineReaderPos
func (*LineReader).Seek(pos LineReaderPos)
type Offset uint32
An Offset represents the location of an Entry within the DWARF info.
(See Reader.Seek.)
func (*Data).Type(off Offset) (Type, error)
func (*Reader).Seek(off Offset)
type PtrType (struct)
A PtrType represents a pointer type.
CommonType CommonType
// size of value of this type, in bytes
// name that can be used to refer to type
Type Type
(*T) Common() *CommonType
(*T) Size() int64
(*T) String() string
*T : Type
*T : expvar.Var
*T : fmt.Stringer
type QualType (struct)
A QualType represents a type that has the C/C++ "const", "restrict", or "volatile" qualifier.
CommonType CommonType
// size of value of this type, in bytes
// name that can be used to refer to type
Qual string
Type Type
(*T) Common() *CommonType
(*T) Size() int64
(*T) String() string
*T : Type
*T : expvar.Var
*T : fmt.Stringer
type Reader (struct)
A Reader allows reading Entry structures from a DWARF ``info'' section.
The Entry structures are arranged in a tree. The Reader's Next function
return successive entries from a pre-order traversal of the tree.
If an entry has children, its Children field will be true, and the children
follow, terminated by an Entry with Tag 0.
AddressSize returns the size in bytes of addresses in the current compilation
unit.
ByteOrder returns the byte order in the current compilation unit.
Next reads the next entry from the encoded entry stream.
It returns nil, nil when it reaches the end of the section.
It returns an error if the current offset is invalid or the data at the
offset cannot be decoded as a valid Entry.
Seek positions the Reader at offset off in the encoded entry stream.
Offset 0 can be used to denote the first entry.
SeekPC returns the Entry for the compilation unit that includes pc,
and positions the reader to read the children of that unit. If pc
is not covered by any unit, SeekPC returns ErrUnknownPC and the
position of the reader is undefined.
Because compilation units can describe multiple regions of the
executable, in the worst case SeekPC must search through all the
ranges in all the compilation units. Each call to SeekPC starts the
search at the compilation unit of the last call, so in general
looking up a series of PCs will be faster if they are sorted. If
the caller wishes to do repeated fast PC lookups, it should build
an appropriate index using the Ranges method.
SkipChildren skips over the child entries associated with
the last Entry returned by Next. If that Entry did not have
children or Next has not been called, SkipChildren is a no-op.
func (*Data).Reader() *Reader
type StructField (struct)
A StructField represents a field in a struct, union, or C++ class type.
// within the ByteSize bytes at ByteOffset
// zero if not a bit field
ByteOffset int64
// usually zero; use Type.Size() for normal fields
Name string
Type Type
type StructType (struct)
A StructType represents a struct, union, or C++ class type.
CommonType CommonType
// size of value of this type, in bytes
// name that can be used to refer to type
Field []*StructField
// if true, struct, union, class is declared but not defined
// "struct", "union", or "class".
StructName string
(*T) Common() *CommonType
(*T) Defn() string
(*T) Size() int64
(*T) String() string
*T : Type
*T : expvar.Var
*T : fmt.Stringer
type Tag uint32
A Tag is the classification (the type) of an Entry.
( T) GoString() string
( T) String() string
T : expvar.Var
T : fmt.GoStringer
T : fmt.Stringer
const TagAccessDeclaration
const TagArrayType
const TagAtomicType
const TagBaseType
const TagCallSite
const TagCallSiteParameter
const TagCatchDwarfBlock
const TagClassType
const TagCoarrayType
const TagCommonDwarfBlock
const TagCommonInclusion
const TagCompileUnit
const TagCondition
const TagConstant
const TagConstType
const TagDwarfProcedure
const TagDynamicType
const TagEntryPoint
const TagEnumerationType
const TagEnumerator
const TagFileType
const TagFormalParameter
const TagFriend
const TagGenericSubrange
const TagImmutableType
const TagImportedDeclaration
const TagImportedModule
const TagImportedUnit
const TagInheritance
const TagInlinedSubroutine
const TagInterfaceType
const TagLabel
const TagLexDwarfBlock
const TagMember
const TagModule
const TagMutableType
const TagNamelist
const TagNamelistItem
const TagNamespace
const TagPackedType
const TagPartialUnit
const TagPointerType
const TagPtrToMemberType
const TagReferenceType
const TagRestrictType
const TagRvalueReferenceType
const TagSetType
const TagSharedType
const TagSkeletonUnit
const TagStringType
const TagStructType
const TagSubprogram
const TagSubrangeType
const TagSubroutineType
const TagTemplateAlias
const TagTemplateTypeParameter
const TagTemplateValueParameter
const TagThrownType
const TagTryDwarfBlock
const TagTypedef
const TagTypeUnit
const TagUnionType
const TagUnspecifiedParameters
const TagUnspecifiedType
const TagVariable
const TagVariant
const TagVariantPart
const TagVolatileType
const TagWithStmt
type Type (interface)
A Type conventionally represents a pointer to any of the
specific Type structures (CharType, StructType, etc.).
( T) Common() *CommonType
( T) Size() int64
( T) String() string
*AddrType
*ArrayType
*BasicType
*BoolType
*CharType
*ComplexType
*DotDotDotType
*EnumType
*FloatType
*FuncType
*IntType
*PtrType
*QualType
*StructType
*TypedefType
*UcharType
*UintType
*UnspecifiedType
*UnsupportedType
*VoidType
T : expvar.Var
T : fmt.Stringer
func (*Data).Type(off Offset) (Type, error)
type TypedefType (struct)
A TypedefType represents a named type.
CommonType CommonType
// size of value of this type, in bytes
// name that can be used to refer to type
Type Type
(*T) Common() *CommonType
(*T) Size() int64
(*T) String() string
*T : Type
*T : expvar.Var
*T : fmt.Stringer
type UcharType (struct)
A UcharType represents an unsigned character type.
BasicType BasicType
BasicType.BitOffset int64
BasicType.BitSize int64
BasicType.CommonType CommonType
// size of value of this type, in bytes
// name that can be used to refer to type
(*T) Basic() *BasicType
(*T) Common() *CommonType
(*T) Size() int64
(*T) String() string
*T : Type
*T : expvar.Var
*T : fmt.Stringer
type UintType (struct)
A UintType represents an unsigned integer type.
BasicType BasicType
BasicType.BitOffset int64
BasicType.BitSize int64
BasicType.CommonType CommonType
// size of value of this type, in bytes
// name that can be used to refer to type
(*T) Basic() *BasicType
(*T) Common() *CommonType
(*T) Size() int64
(*T) String() string
*T : Type
*T : expvar.Var
*T : fmt.Stringer
type UnspecifiedType (struct)
An UnspecifiedType represents an implicit, unknown, ambiguous or nonexistent type.
BasicType BasicType
BasicType.BitOffset int64
BasicType.BitSize int64
BasicType.CommonType CommonType
// size of value of this type, in bytes
// name that can be used to refer to type
(*T) Basic() *BasicType
(*T) Common() *CommonType
(*T) Size() int64
(*T) String() string
*T : Type
*T : expvar.Var
*T : fmt.Stringer
type UnsupportedType (struct)
An UnsupportedType is a placeholder returned in situations where we
encounter a type that isn't supported.
CommonType CommonType
// size of value of this type, in bytes
// name that can be used to refer to type
Tag Tag
(*T) Common() *CommonType
(*T) Size() int64
(*T) String() string
*T : Type
*T : expvar.Var
*T : fmt.Stringer
type VoidType (struct)
A VoidType represents the C void type.
CommonType CommonType
// size of value of this type, in bytes
// name that can be used to refer to type
(*T) Common() *CommonType
(*T) Size() int64
(*T) String() string
*T : Type
*T : expvar.Var
*T : fmt.Stringer
Exported Values
const AttrAbstractOrigin Attr = 49
const AttrAccessibility Attr = 50
const AttrAddrBase Attr = 115
const AttrAddrClass Attr = 51
const AttrAlignment Attr = 136
const AttrAllocated Attr = 78
The following are new in DWARF 3.
const AttrArtificial Attr = 52
const AttrAssociated Attr = 79
const AttrBaseTypes Attr = 53
const AttrBinaryScale Attr = 91
const AttrBitOffset Attr = 12
const AttrBitSize Attr = 13
const AttrByteSize Attr = 11
const AttrCallAllCalls Attr = 122
const AttrCallAllSourceCalls Attr = 123
const AttrCallAllTailCalls Attr = 124
const AttrCallColumn Attr = 87
const AttrCallDataLocation Attr = 133
const AttrCallDataValue Attr = 134
const AttrCallFile Attr = 88
const AttrCalling Attr = 54
const AttrCallLine Attr = 89
const AttrCallOrigin Attr = 127
const AttrCallParameter Attr = 128
const AttrCallPC Attr = 129
const AttrCallReturnPC Attr = 125
const AttrCallTailCall Attr = 130
const AttrCallTarget Attr = 131
const AttrCallTargetClobbered Attr = 132
const AttrCallValue Attr = 126
const AttrCommonRef Attr = 26
const AttrCompDir Attr = 27
const AttrConstExpr Attr = 108
const AttrConstValue Attr = 28
const AttrContainingType Attr = 29
const AttrDataBitOffset Attr = 107
const AttrDataLocation Attr = 80
const AttrDataMemberLoc Attr = 56
const AttrDecimalScale Attr = 92
const AttrDecimalSign Attr = 94
const AttrDeclaration Attr = 60
const AttrDeclColumn Attr = 57
const AttrDeclFile Attr = 58
const AttrDeclLine Attr = 59
const AttrDefaulted Attr = 139
const AttrDefaultValue Attr = 30
const AttrDeleted Attr = 138
const AttrDescription Attr = 90
const AttrDigitCount Attr = 95
const AttrDiscrList Attr = 61
const AttrDiscrValue Attr = 22
const AttrDwoName Attr = 118
const AttrElemental Attr = 102
const AttrEncoding Attr = 62
const AttrEndianity Attr = 101
const AttrEntrypc Attr = 82
const AttrEnumClass Attr = 109
const AttrExplicit Attr = 99
const AttrExportSymbols Attr = 137
const AttrExtension Attr = 84
const AttrExternal Attr = 63
const AttrFrameBase Attr = 64
const AttrFriend Attr = 65
const AttrHighpc Attr = 18
const AttrIdentifierCase Attr = 66
const AttrImport Attr = 24
const AttrInline Attr = 32
const AttrIsOptional Attr = 33
const AttrLanguage Attr = 19
const AttrLinkageName Attr = 110
const AttrLocation Attr = 2
const AttrLoclistsBase Attr = 140
const AttrLowerBound Attr = 34
const AttrMacroInfo Attr = 67
const AttrMacros Attr = 121
const AttrMainSubprogram Attr = 106
const AttrMutable Attr = 97
const AttrNamelistItem Attr = 68
const AttrNoreturn Attr = 135
const AttrObjectPointer Attr = 100
const AttrOrdering Attr = 9
const AttrPictureString Attr = 96
const AttrPriority Attr = 69
const AttrProducer Attr = 37
const AttrPrototyped Attr = 39
const AttrRanges Attr = 85
const AttrRecursive Attr = 104
const AttrReference Attr = 119
const AttrReturnAddr Attr = 42
const AttrRnglistsBase Attr = 116
const AttrRvalueReference Attr = 120
const AttrSegment Attr = 70
const AttrSibling Attr = 1
const AttrSignature Attr = 105
The following are new in DWARF 4.
const AttrSpecification Attr = 71
const AttrStartScope Attr = 44
const AttrStaticLink Attr = 72
const AttrStmtList Attr = 16
const AttrStride Attr = 81
const AttrStrideSize Attr = 46
const AttrStringLength Attr = 25
const AttrStringLengthBitSize Attr = 111
The following are new in DWARF 5.
const AttrStringLengthByteSize Attr = 112
const AttrStrOffsetsBase Attr = 114
const AttrThreadsScaled Attr = 98
const AttrTrampoline Attr = 86
const AttrUpperBound Attr = 47
const AttrUseLocation Attr = 74
const AttrUseUTF8 Attr = 83
const AttrVarParam Attr = 75
const AttrVirtuality Attr = 76
const AttrVisibility Attr = 23
const AttrVtableElemLoc Attr = 77
const ClassAddress Class = 1
ClassAddress represents values of type uint64 that are
addresses on the target machine.
const ClassAddrPtr Class = 15
ClassAddrPtr represents values that are an int64 offset
into the "addr" section.
const ClassBlock Class = 2
ClassBlock represents values of type []byte whose
interpretation depends on the attribute.
const ClassConstant Class = 3
ClassConstant represents values of type int64 that are
constants. The interpretation of this constant depends on
the attribute.
const ClassExprLoc Class = 4
ClassExprLoc represents values of type []byte that contain
an encoded DWARF expression or location description.
const ClassLinePtr Class = 6
ClassLinePtr represents values that are an int64 offset
into the "line" section.
const ClassLocList Class = 16
ClassLocList represents values that are an int64 offset
into the "loclists" section.
const ClassLocListPtr Class = 7
ClassLocListPtr represents values that are an int64 offset
into the "loclist" section.
const ClassMacPtr Class = 8
ClassMacPtr represents values that are an int64 offset into
the "mac" section.
const ClassRangeListPtr Class = 9
ClassMacPtr represents values that are an int64 offset into
the "rangelist" section.
const ClassReference Class = 10
ClassReference represents values that are an Offset offset
of an Entry in the info section (for use with Reader.Seek).
The DWARF specification combines ClassReference and
ClassReferenceSig into class "reference".
const ClassReferenceAlt Class = 13
ClassReferenceAlt represents values of type int64 that are
an offset into the DWARF "info" section of an alternate
object file.
const ClassReferenceSig Class = 11
ClassReferenceSig represents values that are a uint64 type
signature referencing a type Entry.
const ClassRngList Class = 17
ClassRngList represents values that are an int64 offset
from the base of the "rnglists" section.
const ClassRngListsPtr Class = 18
ClassRngListsPtr represents values that are an int64 offset
into the "rnglists" section. These are used as the base for
ClassRngList values.
const ClassString Class = 12
ClassString represents values that are strings. If the
compilation unit specifies the AttrUseUTF8 flag (strongly
recommended), the string value will be encoded in UTF-8.
Otherwise, the encoding is unspecified.
const ClassStringAlt Class = 14
ClassStringAlt represents values of type int64 that are an
offset into the DWARF string section of an alternate object
file.
const ClassStrOffsetsPtr Class = 19
ClassStrOffsetsPtr represents values that are an int64
offset into the "str_offsets" section.
const ClassUnknown Class = 0
ClassUnknown represents values of unknown DWARF class.
var ErrUnknownPC error
ErrUnknownPC is the error returned by LineReader.ScanPC when the
seek PC is not covered by any entry in the line table.
func New(abbrev, aranges, frame, info, line, pubnames, ranges, str []byte) (*Data, error)
New returns a new Data object initialized from the given parameters.
Rather than calling this function directly, clients should typically use
the DWARF method of the File type of the appropriate package debug/elf,
debug/macho, or debug/pe.
The []byte arguments are the data from the corresponding debug section
in the object file; for example, for an ELF object, abbrev is the contents of
the ".debug_abbrev" section.
const TagAccessDeclaration Tag = 35
const TagArrayType Tag = 1
const TagAtomicType Tag = 71
const TagBaseType Tag = 36
const TagCallSite Tag = 72
const TagCallSiteParameter Tag = 73
const TagCatchDwarfBlock Tag = 37
const TagClassType Tag = 2
const TagCoarrayType Tag = 68
The following are new in DWARF 5.
const TagCommonDwarfBlock Tag = 26
const TagCommonInclusion Tag = 27
const TagCompileUnit Tag = 17
const TagCondition Tag = 63
const TagConstant Tag = 39
const TagConstType Tag = 38
const TagDwarfProcedure Tag = 54
The following are new in DWARF 3.
const TagDynamicType Tag = 70
const TagEntryPoint Tag = 3
const TagEnumerationType Tag = 4
const TagEnumerator Tag = 40
const TagFileType Tag = 41
const TagFormalParameter Tag = 5
const TagGenericSubrange Tag = 69
const TagImmutableType Tag = 75
const TagImportedDeclaration Tag = 8
const TagImportedModule Tag = 58
const TagImportedUnit Tag = 61
const TagInheritance Tag = 28
const TagInlinedSubroutine Tag = 29
const TagInterfaceType Tag = 56
const TagLexDwarfBlock Tag = 11
const TagMutableType Tag = 62 // Later removed from DWARF.
const TagNamelist Tag = 43
const TagNamelistItem Tag = 44
const TagNamespace Tag = 57
const TagPackedType Tag = 45
const TagPartialUnit Tag = 60
const TagPointerType Tag = 15
const TagPtrToMemberType Tag = 31
const TagReferenceType Tag = 16
const TagRestrictType Tag = 55
const TagRvalueReferenceType Tag = 66
const TagSetType Tag = 32
const TagSkeletonUnit Tag = 74
const TagStringType Tag = 18
const TagStructType Tag = 19
const TagSubprogram Tag = 46
const TagSubrangeType Tag = 33
const TagSubroutineType Tag = 21
const TagTemplateAlias Tag = 67
const TagTemplateTypeParameter Tag = 47
const TagTemplateValueParameter Tag = 48
const TagThrownType Tag = 49
const TagTryDwarfBlock Tag = 50
const TagTypedef Tag = 22
const TagTypeUnit Tag = 65
The following are new in DWARF 4.
const TagUnionType Tag = 23
const TagUnspecifiedParameters Tag = 24
const TagUnspecifiedType Tag = 59
const TagVariable Tag = 52
const TagVariant Tag = 25
const TagVariantPart Tag = 51
const TagVolatileType Tag = 53
const TagWithStmt Tag = 34
![]() |
The pages are generated with Golds v0.1.7. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project and developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |