# README
go-dwarf
Package dwarf provides access to DWARF debugging information loaded from executable files, as defined in the DWARF 2.0 Standard at http://dwarfstd.org/doc/dwarf-2.0.0.pdf
Why 🤔
This package goes beyond the Go's debug/dwarf
to:
- Add support for apple HASH tables
- Add convinience methods for reading/displaying DWARF data
Install
$ go get github.com/blacktop/go-dwarf
License
- MIT Copyright (c) 2022-2023 blacktop
- Copyright (c) 2009 The Go Authors
# Functions
New returns a new Data object initialized from the given parameters.
# Constants
DIE offset of the compiler unit header that contains the item in question (an offset into the .debug_info section for the CU that contains the DIE).
DIE offset, check form for encoding (an offset into the .debug_info section for the DWARF DIE for this name).
Flags from enum NameFlags (for functions and global variables (isFunction, isInlined, isExternal...)).
a termination atom that specifies the end of the atom list.
A 32 bit hash of the full qualified name (since all hash entries are.
DW_TAG_xxx value, should be encoded as DW_FORM_data1 (if no tags exceed 255) or DW_FORM_data2 (so you don't have to parse the DWARF to see what it is).
Flags from enum TypeFlags (for types (isCXXClass, isObjCClass, ...)).
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
The following are new in DWARF 3.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Apple extensions.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Extensions for Fission proposal.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
LLVM project extensions.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
GNU extensions.
No description provided by the author
The following are new in DWARF 4.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
The following are new in DWARF 5.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
ClassAddress represents values of type uint64 that are addresses on the target machine.
ClassAddrPtr represents values that are an int64 offset into the "addr" section.
ClassBlock represents values of type []byte whose interpretation depends on the attribute.
ClassConstant represents values of type int64 that are constants.
ClassExprLoc represents values of type []byte that contain an encoded DWARF expression or location description.
ClassFlag represents values of type bool.
ClassLinePtr represents values that are an int64 offset into the "line" section.
ClassLocList represents values that are an int64 offset into the "loclists" section.
ClassLocListPtr represents values that are an int64 offset into the "loclist" section.
ClassMacPtr represents values that are an int64 offset into the "mac" section.
ClassRangeListPtr represents values that are an int64 offset into the "rangelist" section.
ClassReference represents values that are an Offset offset of an Entry in the info section (for use with Reader.Seek).
ClassReferenceAlt represents values of type int64 that are an offset into the DWARF "info" section of an alternate object file.
ClassReferenceSig represents values that are a uint64 type signature referencing a type Entry.
ClassRngList represents values that are a uint64 offset from the base of the "rnglists" section.
ClassRngListsPtr represents values that are an int64 offset into the "rnglists" section.
ClassString represents values that are strings.
ClassStringAlt represents values of type int64 that are an offset into the DWARF string section of an alternate object file.
ClassStrOffsetsPtr represents values that are an int64 offset into the "str_offsets" section.
ClassUnknown represents values of unknown DWARF class.
Always set for C++, only set for ObjC if this is the @implementation for class.
Daniel J Bernstein hash function.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Apple.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
The following are new in DWARF 5.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
The following are new in DWARF 3.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
GNU.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Later removed from DWARF.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
LLVM.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Sun.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
The following are new in DWARF 4.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Variables
ErrUnknownPC is the error returned by LineReader.ScanPC when the seek PC is not covered by any entry in the line table.
# Structs
An AddrType represents a machine address type.
An ArrayType represents a fixed size array type.
A BasicType holds fields common to all basic types.
A BoolType represents a boolean type.
A CharType represents a signed character type.
No description provided by the author
A CommonType holds fields common to multiple types.
A ComplexType represents a complex floating point type.
Data represents the DWARF debugging information loaded from an executable file (for example, an ELF or Mach-O executable).
No description provided by the author
A DotDotDotType represents the variadic ..
An entry is a sequence of attribute/value pairs.
An EnumType represents an enumerated type.
An EnumValue represents a single enumeration value.
A Field is a single attribute/value pair in an Entry.
A FloatType represents a floating point type.
A FuncType represents a function type.
No description provided by the author
An IntType represents a signed integer type.
A LabelType represents a variable type.
A LineEntry is a row in a DWARF line table.
A LineFile is a source file referenced by a DWARF line table entry.
A LineReader reads a sequence of LineEntry structures from a DWARF "line" section for a single compilation unit.
A LineReaderPos represents a position in a line table.
A MemberType represents a member type.
No description provided by the author
A NamespaceType represents a namespace type.
A PtrauthType represents a LLVM ptrauth type.
A PtrType represents a pointer type.
A QualType represents a type that has the C/C++ "const", "restrict", or "volatile" qualifier.
A Reader allows reading Entry structures from a DWARF “info” section.
A StructField represents a field in a struct, union, or C++ class type.
A StructType represents a struct, union, or C++ class type.
A TypedefType represents a named type.
No description provided by the author
A UcharType represents an unsigned character type.
A UintType represents an unsigned integer type.
An UnspecifiedType represents an implicit, unknown, ambiguous or nonexistent type.
An UnsupportedType is a placeholder returned in situations where we encounter a type that isn't supported.
A VariableType represents a variable type.
A VoidType represents the C void type.
# Interfaces
A Type conventionally represents a pointer to any of the specific Type structures (CharType, StructType, etc.).
# Type aliases
No description provided by the author
An Attr identifies the attribute type in a DWARF Entry's Field.
A Class is the DWARF 4 class of an attribute value.
No description provided by the author
An Offset represents the location of an Entry within the DWARF info.
No description provided by the author
A Tag is the classification (the type) of an Entry.