package dwtest
import "golang.org/x/debug/dwtest"
Index ¶
- func SubprogLoAndHighPc(subprogdie *dwarf.Entry) (lo uint64, hi uint64, err error)
- type Examiner
- func (ex *Examiner) Children(idx int) []*dwarf.Entry
- func (ex *Examiner) DIEs() []*dwarf.Entry
- func (ex *Examiner) DumpEntry(idx int, dumpKids bool, ilevel int)
- func (ex *Examiner) EntryFromOffset(off dwarf.Offset) *dwarf.Entry
- func (ex *Examiner) FileRef(dw *dwarf.Data, dieIdx int, fileRef int64) (string, error)
- func (ex *Examiner) IdxFromOffset(off dwarf.Offset) int
- func (ex *Examiner) Named(name string) []*dwarf.Entry
- func (ex *Examiner) Parent(idx int) *dwarf.Entry
- func (ex *Examiner) ParentCU(idx int) *dwarf.Entry
- func (ex *Examiner) Populate(rdr *dwarf.Reader) error
Functions ¶
func SubprogLoAndHighPc ¶
SubprogLoAndHighPc returns the values of the lo_pc and high_pc attrs of the DWARF DIE subprogdie. For DWARF versions 2-3, both of these attributes had to be of class address; with DWARF 4 the rules were changed, allowing compilers to emit a high PC attr of class constant, where the high PC could be computed by starting with the low PC address and then adding in the high_pc attr offset (doing things this way is more compact/efficient: 1 relocation instead of 2). This function accepts both styles of specifying a hi/lo pair, returning the values or an error if the attributes are malformed in some way.
Types ¶
type Examiner ¶
type Examiner struct {
// contains filtered or unexported fields
}
func (*Examiner) Children ¶
Returns a list of child entries for a die with ID 'idx'
func (*Examiner) DIEs ¶
func (*Examiner) DumpEntry ¶
For debugging new tests
func (*Examiner) EntryFromOffset ¶
Given a DIE offset, return the previously read dwarf.Entry, or nil
func (*Examiner) FileRef ¶
FileRef takes a given DIE by index and a numeric file reference (presumably from a decl_file or call_file attribute), looks up the reference in the .debug_line file table, and returns the proper string for it. We need to know which DIE is making the reference so as to find the right compilation unit.
func (*Examiner) IdxFromOffset ¶
Return the ID that Examiner uses to refer to the DIE at offset off
func (*Examiner) Named ¶
Return a list of all DIEs with name 'name'. When searching for DIEs by name, keep in mind that the returned results will include child DIEs such as params/variables. For example, asking for all DIEs named "p" for even a small program will give you 400-500 entries.
func (*Examiner) Parent ¶
Returns parent DIE for DIE 'idx', or nil if the DIE is top level
func (*Examiner) ParentCU ¶
ParentCU returns the enclosing compilation unit DIE for the DIE with a given index, or nil if for some reason we can't establish a parent.
func (*Examiner) Populate ¶
Populate the Examiner using the DIEs read from rdr.
Source Files ¶
dwtest.go
- Version
- v0.0.0-20250223200816-04bfb7cc7686 (latest)
- Published
- Feb 23, 2025
- Platform
- linux/amd64
- Imports
- 4 packages
- Last checked
- 1 month ago –
Tools for package owners.