loclist

package
v0.0.0-...-9a1a324 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 5, 2025 License: BSD-3-Clause, MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Dwarf2Reader

type Dwarf2Reader struct {
	// contains filtered or unexported fields
}

Dwarf2Reader parses and presents DWARF loclist information for DWARF versions 2 through 4.

func NewDwarf2Reader

func NewDwarf2Reader(data []byte, ptrSz int) *Dwarf2Reader

NewDwarf2Reader returns an initialized loclist Reader for DWARF versions 2 through 4.

func (*Dwarf2Reader) Empty

func (rdr *Dwarf2Reader) Empty() bool

Empty returns true if this reader has no data.

func (*Dwarf2Reader) Next

func (rdr *Dwarf2Reader) Next(e *Entry) bool

Next advances the reader to the next loclist entry, returning the entry and true if successful, or nil, false if not.

func (*Dwarf2Reader) Seek

func (rdr *Dwarf2Reader) Seek(off int)

Seek moves the data pointer to the specified offset.

type Dwarf5Reader

type Dwarf5Reader struct {
	// contains filtered or unexported fields
}

Dwarf5Reader parses and presents DWARF loclist information for DWARF version 5 and later. See DWARFv5 section 7.29 page 243 and following.

func NewDwarf5Reader

func NewDwarf5Reader(data []byte) *Dwarf5Reader

func (*Dwarf5Reader) Empty

func (rdr *Dwarf5Reader) Empty() bool

func (*Dwarf5Reader) Enumerate

func (rdr *Dwarf5Reader) Enumerate(off int64, staticBase uint64, debugAddr *godwarf.DebugAddr) ([]Entry, error)

Enumerate walks through all of the location list entries for a given variable in a given function and enumerates them, returning to the client. Note that this function doesn't exist in the delve source; it was written here so as to be able to do something similar to what's done with DWARF 2 location lists. Here off is the offset within the .debug_loclists section containing the start of the entries for the function in question, staticBase is the start-of-text address for the executable, and debugAddr encapsulates the portion of the .debug_addr section containing entries for the current compilation unit.

type Entry

type Entry struct {
	LowPC, HighPC uint64
	Instr         []byte
}

Entry represents a single entry in the loclist section.

func (*Entry) BaseAddressSelection

func (e *Entry) BaseAddressSelection() bool

BaseAddressSelection returns true if entry.highpc should be used as the base address for subsequent entries.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳