Package plan9obj

import "debug/plan9obj"
Overview
Index

Overview ▾

程序包plan9obj实现对Plan 9 a.out对象文件的访问.

Constants

const (
    Magic64 = 0x8000 // 64-bit expanded header

    Magic386   = (4*11+0)*11 + 7
    MagicAMD64 = (4*26+0)*26 + 7 + Magic64
    MagicARM   = (4*20+0)*20 + 7
)

type File 1.3

文件代表打开的Plan 9 a.out文件.

type File struct {
    FileHeader
    Sections []*Section
    // contains filtered or unexported fields
}

func NewFile 1.3

func NewFile(r io.ReaderAt) (*File, error)

NewFile创建一个新文件,用于在基础读取器中访问Plan 9二进制文件. 计划9二进制文件应从ReaderAt的位置0开始.

func Open 1.3

func Open(name string) (*File, error)

Open使用os.Open打开命名文件,并准备将其用作Plan 9 a.out二进制文件.

func (*File) Close 1.3

func (f *File) Close() error

关闭关闭文件. 如果文件是使用NewFile而不是直接使用Open创建的,则Close无效.

func (*File) Section 1.3

func (f *File) Section(name string) *Section

Section返回具有给定名称的部分,如果没有这样的部分,则返回nil.

func (*File) Symbols 1.3

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

Symbols返回f的符号表.

type FileHeader 1.3

FileHeader表示Plan 9 a.out文件头.

type FileHeader struct {
    Magic       uint32
    Bss         uint32
    Entry       uint64
    PtrSize     int
    LoadAddress uint64 // Go 1.4
    HdrSize     uint64 // Go 1.4
}

type Section 1.3

节代表Plan 9 a.out文件中的单个节.

type Section struct {
    SectionHeader

    // Embed ReaderAt for ReadAt method.
    // Do not embed SectionReader directly
    // to avoid having Read and Seek.
    // If a client wants Read and Seek it must use
    // Open() to avoid fighting over the seek offset
    // with other clients.
    io.ReaderAt
    // contains filtered or unexported fields
}

func (*Section) Data 1.3

func (s *Section) Data() ([]byte, error)

数据读取并返回Plan 9 a.out部分的内容.

func (*Section) Open 1.3

func (s *Section) Open() io.ReadSeeker

打开将返回一个新的ReadSeeker,其中将读取Plan 9 a.out部分.

type SectionHeader 1.3

SectionHeader代表单个Plan 9 a.out节标题. 该结构在磁盘上不存在,但可以简化在目标文件中的导航.

type SectionHeader struct {
    Name   string
    Size   uint32
    Offset uint32
}

type Sym 1.3

符号表示计划9 a.out符号表部分中的条目.

type Sym struct {
    Value uint64
    Type  rune
    Name  string
}

by  ICOPY.SITE