package loclist

import "golang.org/x/debug/third_party/delve/dwarf/loclist"

Index

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.

Source Files

dwarf2_loclist.go dwarf5_loclist.go dwarf5_loclist_additions.go

Version
v0.0.0-20250406003339-6797edac53ce (latest)
Published
Apr 6, 2025
Platform
js/wasm
Imports
6 packages
Last checked
5 hours ago

Tools for package owners.