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 CachedFile Uses

type CachedFile struct {
    FileName string
    Lines    [][]byte
}

CachedFile contains the content of a file split into lines.

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, printCode bool)

Print prints a disassembly of the file to w. If filter is non-nil, the disassembly only includes functions with names matching filter. If printCode is true, the disassembly includs corresponding source lines. 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 FileCache Uses

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

FileCache is a simple LRU cache of file contents.

func NewFileCache Uses

func NewFileCache(maxLen int) *FileCache

NewFileCache returns a FileCache which can contain up to maxLen cached file contents.

func (*FileCache) Line Uses

func (fc *FileCache) Line(filename string, line int) ([]byte, error)

Line returns the source code line for the given file and line number. If the file is not already cached, reads it , inserts it into the cache, and removes the least recently used file if necessary. If the file is in cache, moves it up to the front of the list.

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 27 packages (graph) and is imported by 11 packages. Updated 2017-10-26. Refresh now. Tools for package owners.