Go: cmd/internal/objfile Index | Files

package objfile

import "cmd/internal/objfile"

Package objfile implements portable access to OS-specific executable files.

Index

Package Files

disasm.go elf.go goobj.go macho.go objfile.go pe.go plan9obj.go

type Disasm Uses

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

Disasm is a disassembler for a given File.

func (*Disasm) Decode Uses

func (d *Disasm) Decode(start, end uint64, relocs []Reloc, f func(pc, size uint64, file string, line int, text string))

Decode disassembles the text segment range [start, end), calling f for each instruction.

func (*Disasm) Print Uses

func (d *Disasm) Print(w io.Writer, filter *regexp.Regexp, start, end uint64)

Print prints a disassembly of the file to w. If filter is non-nil, the disassembly only includes functions with names matching filter. The disassembly only includes functions that overlap the range [start, end).

type File Uses

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

A File is an opened executable file.

func Open Uses

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 (*File) Close Uses

func (f *File) Close() error

func (*File) DWARF Uses

func (f *File) DWARF() (*dwarf.Data, error)

DWARF returns DWARF debug data for the file, if any. This is for cmd/pprof to locate cgo functions.

func (*File) Disasm Uses

func (f *File) Disasm() (*Disasm, error)

Disasm returns a disassembler for the file f.

func (*File) GOARCH Uses

func (f *File) GOARCH() string

func (*File) LoadAddress Uses

func (f *File) 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 (*File) PCLineTable Uses

func (f *File) PCLineTable() (Liner, error)

func (*File) Symbols Uses

func (f *File) Symbols() ([]Sym, error)

func (*File) Text Uses

func (f *File) Text() (uint64, []byte, error)

type Liner Uses

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 Uses

type Reloc struct {
    Addr     uint64 // Address of first byte that reloc applies to.
    Size     uint64 // Number of bytes
    Stringer RelocStringer
}

type RelocStringer Uses

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
}

type Sym Uses

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
}

A Sym is a symbol defined in an executable file.

Package objfile imports 21 packages (graph) and is imported by 6 packages. Updated 2017-02-27. Refresh now. Tools for package owners.