object

package
v0.18.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 18, 2019 License: BSD-3-Clause Imports: 2 Imported by: 0

Documentation

Overview

Package object contains ObjectMapper implementations.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CallMap

type CallMap struct {
	FuncMap
	CallSites []CallSite
}

CallMap implements compile.ObjectMapper. It stores all function addresses and call sites, but no instruction information.

Initial CallSites capacity may be allocated by initializing the field with a non-nil, empty array.

func (CallMap) FindAddr added in v0.8.0

func (m CallMap) FindAddr(retAddr uint32) (funcIndex, callIndex, _ uint32, stackOffset int32, initial, ok bool)

func (*CallMap) InitObjectMap

func (m *CallMap) InitObjectMap(numImportFuncs, numOtherFuncs int)

func (*CallMap) PutCallSite

func (m *CallMap) PutCallSite(retAddr uint32, stackOffset int32)

type CallSite

type CallSite struct {
	RetAddr     uint32 // The address immediately after the call instruction
	StackOffset int32  // Calling function's stack usage at time of call
}

CallSite represents a position within the text section (machine code) where a function call is made.

The struct size or layout will not change between minor versions.

type FuncMap

type FuncMap struct {
	FuncAddrs []uint32
}

FuncMap implements compile.ObjectMapper. It stores all function addresses, but no call or instruction information.

FuncAddrs may be preallocated by initializing the field with a non-nil, empty array.

func (FuncMap) FindAddr added in v0.8.0

func (m FuncMap) FindAddr(retAddr uint32) (funcIndex, _, _ uint32, _ int32, initial, ok bool)

func (*FuncMap) InitObjectMap

func (m *FuncMap) InitObjectMap(numImportFuncs, numOtherFuncs int)

func (*FuncMap) PutCallSite

func (*FuncMap) PutCallSite(uint32, int32)

func (*FuncMap) PutDataBlock added in v0.8.0

func (*FuncMap) PutDataBlock(uint32, int32)

func (*FuncMap) PutFuncAddr

func (m *FuncMap) PutFuncAddr(addr uint32)

func (*FuncMap) PutImportFuncAddr

func (m *FuncMap) PutImportFuncAddr(addr uint32)

func (*FuncMap) PutInsnAddr

func (*FuncMap) PutInsnAddr(uint32)

Directories

Path Synopsis
elf
Package stack provides runtime call stack manipulation functions.
Package stack provides runtime call stack manipulation functions.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL