type Entry struct {
// contains filtered or unexported fields
}
func (e *Entry) DWARF() (*dwarf.Data, error)
DWARF returns DWARF debug data for the file, if any. This is for cmd/pprof to locate cgo functions.
func (e *Entry) GOARCH() string
func (e *Entry) LoadAddress() (uint64, error)
LoadAddress returns the expected load address of the file. This differs from the actual load address for a position-independent executable.
func (e *Entry) Name() string
func (e *Entry) PCLineTable() (Liner, error)
func (e *Entry) Symbols() ([]Sym, error)
func (e *Entry) Text() (uint64, []byte, error)
A File is an opened executable file.
type File struct {
// contains filtered or unexported fields
}
func Open(name string) (*File, error)
Open opens the named file. The caller must call f.Close when the file is no longer needed.
func (f *File) Close() error
func (f *File) DWARF() (*dwarf.Data, error)
func (f *File) Entries() []*Entry
func (f *File) GOARCH() string
func (f *File) LoadAddress() (uint64, error)
func (f *File) PCLineTable() (Liner, error)
func (f *File) Symbols() ([]Sym, error)
func (f *File) Text() (uint64, []byte, error)
type Liner interface {
// Given a pc, returns the corresponding file, line, and function data.
// If unknown, returns "",0,nil.
PCToLine(uint64) (string, int, *gosym.Func)
}
type Reloc struct {
Addr uint64 // Address of first byte that reloc applies to.
Size uint64 // Number of bytes
Stringer RelocStringer
}
type RelocStringer interface {
// insnOffset is the offset of the instruction containing the relocation
// from the start of the symbol containing the relocation.
String(insnOffset uint64) string
}
A Sym is a symbol defined in an executable file.
type Sym struct {
Name string // symbol name
Addr uint64 // virtual address of symbol
Size int64 // size in bytes
Code rune // nm code (T for text, D for data, and so on)
Type string // XXX?
Relocs []Reloc // in increasing Addr order
}