go/src/debug/gosym/pclntab.go

type version

const verUnknown

const ver11

const ver12

const ver116

const ver118

const ver120

type LineTable

const oldQuantum

func (t *LineTable) parse(targetPC uint64, targetLine int) (b []byte, pc uint64, line int) {}

func (t *LineTable) slice(pc uint64) *LineTable {}

// PCToLine returns the line number for the given program counter.
//
// Deprecated: Use Table's PCToLine method instead.
func (t *LineTable) PCToLine(pc uint64) int {}

// LineToPC returns the program counter for the given line number,
// considering only program counters before maxpc.
//
// Deprecated: Use Table's LineToPC method instead.
func (t *LineTable) LineToPC(line int, maxpc uint64) uint64 {}

// NewLineTable returns a new PC/line table
// corresponding to the encoded data.
// Text must be the start address of the
// corresponding text segment, with the exact
// value stored in the 'runtime.text' symbol.
// This value may differ from the start
// address of the text segment if
// binary was built with cgo enabled.
func NewLineTable(data []byte, text uint64) *LineTable {}

// isGo12 reports whether this is a Go 1.2 (or later) symbol table.
func (t *LineTable) isGo12() bool {}

const go12magic

const go116magic

const go118magic

const go120magic

// uintptr returns the pointer-sized value encoded at b.
// The pointer size is dictated by the table being read.
func (t *LineTable) uintptr(b []byte) uint64 {}

// parsePclnTab parses the pclntab, setting the version.
func (t *LineTable) parsePclnTab() {}

// go12Funcs returns a slice of Funcs derived from the Go 1.2+ pcln table.
func (t *LineTable) go12Funcs() []Func {}

// findFunc returns the funcData corresponding to the given program counter.
func (t *LineTable) findFunc(pc uint64) funcData {}

// readvarint reads, removes, and returns a varint from *pp.
func (t *LineTable) readvarint(pp *[]byte) uint32 {}

// funcName returns the name of the function found at off.
func (t *LineTable) funcName(off uint32) string {}

// stringFrom returns a Go string found at off from a position.
func (t *LineTable) stringFrom(arr []byte, off uint32) string {}

// string returns a Go string found at off.
func (t *LineTable) string(off uint32) string {}

// functabFieldSize returns the size in bytes of a single functab field.
func (t *LineTable) functabFieldSize() int {}

// funcTab returns t's funcTab.
func (t *LineTable) funcTab() funcTab {}

type funcTab

// Count returns the number of func entries in f.
func (f funcTab) Count() int {}

// pc returns the PC of the i'th func in f.
func (f funcTab) pc(i int) uint64 {}

// funcOff returns the funcdata offset of the i'th func in f.
func (f funcTab) funcOff(i int) uint64 {}

// uint returns the uint stored at b.
func (f funcTab) uint(b []byte) uint64 {}

type funcData

// funcData returns the ith funcData in t.functab.
func (t *LineTable) funcData(i uint32) funcData {}

// IsZero reports whether f is the zero value.
func (f funcData) IsZero() bool {}

// entryPC returns the func's entry PC.
func (f *funcData) entryPC() uint64 {}

func (f funcData) nameOff() uint32     {}

func (f funcData) deferreturn() uint32 {}

func (f funcData) pcfile() uint32      {}

func (f funcData) pcln() uint32        {}

func (f funcData) cuOffset() uint32    {}

// field returns the nth field of the _func struct.
// It panics if n == 0 or n > 9; for n == 0, call f.entryPC.
// Most callers should use a named field accessor (just above).
func (f funcData) field(n uint32) uint32 {}

// step advances to the next pc, value pair in the encoded table.
func (t *LineTable) step(p *[]byte, pc *uint64, val *int32, first bool) bool {}

// pcvalue reports the value associated with the target pc.
// off is the offset to the beginning of the pc-value table,
// and entry is the start PC for the corresponding function.
func (t *LineTable) pcvalue(off uint32, entry, targetpc uint64) int32 {}

// findFileLine scans one function in the binary looking for a
// program counter in the given file on the given line.
// It does so by running the pc-value tables mapping program counter
// to file number. Since most functions come from a single file, these
// are usually short and quick to scan. If a file match is found, then the
// code goes to the expense of looking for a simultaneous line number match.
func (t *LineTable) findFileLine(entry uint64, filetab, linetab uint32, filenum, line int32, cutab []byte) uint64 {}

// go12PCToLine maps program counter to line number for the Go 1.2+ pcln table.
func (t *LineTable) go12PCToLine(pc uint64) (line int) {}

// go12PCToFile maps program counter to file name for the Go 1.2+ pcln table.
func (t *LineTable) go12PCToFile(pc uint64) (file string) {}

// go12LineToPC maps a (file, line) pair to a program counter for the Go 1.2+ pcln table.
func (t *LineTable) go12LineToPC(file string, line int) (pc uint64) {}

// initFileMap initializes the map from file name to file number.
func (t *LineTable) initFileMap() {}

// go12MapFiles adds to m a key for every file in the Go 1.2 LineTable.
// Every key maps to obj. That's not a very interesting map, but it provides
// a way for callers to obtain the list of files in the program.
func (t *LineTable) go12MapFiles(m map[string]*Obj, obj *Obj) {}

const disableRecover