©
本文档使用 PHP中文网手册 发布
import "debug/plan9obj"
概述
参数
Package plan9obj 实现对 Plan 9 a.out 目标文件的访问。
Constants
type File
func NewFile(r io.ReaderAt) (*File, error)
func Open(name string) (*File, error)
func (f *File) Close() error
func (f *File) Section(name string) *Section
func (f *File) Symbols() ([]Sym, error)
type FileHeader
type Section
func (s *Section) Data() ([]byte, error)
func (s *Section) Open() io.ReadSeeker
type SectionHeader
type Sym
file.go plan9obj.go
const ( Magic64 = 0x8000 // 64位扩展标头 Magic386 = (4*11+0)*11 + 7 MagicAMD64 = (4*26+0)*26 + 7 + Magic64 MagicARM = (4*20+0)*20 + 7)
File 代表一个开放的 Plan 9 a.out 文件。
type File struct { FileHeader Sections []*Section // 包含已过滤或未导出的字段}
func NewFile(r io.ReaderAt) (*File, error)
NewFile 在底层的阅读器中创建一个用于访问 Plan 9 二进制文件的新文件。Plan 9二进制文件预计从 ReaderAt 的位置0开始。
func Open(name string) (*File, error)
打开使用 os.Open 打开命名文件,并将其准备用作 Plan 9 a.out 二进制文件。
func (f *File) Close() error
关闭文件。如果文件是直接使用 NewFile 而不是 Open 来创建的,则 Close 不起作用。
func (f *File) Section(name string) *Section
部分返回给定名称的部分,如果不存在此部分,则返回 nil。
func (f *File) Symbols() ([]Sym, error)
符号返回f的符号表。
FileHeader 代表 Plan 9 a.out 文件头。
type FileHeader struct { Magic uint32 Bss uint32 Entry uint64 PtrSize int LoadAddress uint64 HdrSize uint64}
Section 代表 Plan 9 a.out 文件中的单个 Section。
type Section struct { SectionHeader // 为ReadAt方法嵌入ReaderAt。 // 不要直接嵌入SectionReader // 避免Read和Seek。 // 如果客户想要阅读和寻求它必须使用 // Open()以避免争夺搜索偏移量 // 与其他客户。 io.ReaderAt // 包含已过滤或未导出的字段}
func (s *Section) Data() ([]byte, error)
数据读取并返回 Plan 9 a.out 部分的内容。
func (s *Section) Open() io.ReadSeeker
打开返回阅读 Plan 9 a.out 部分的新 ReadSeeker。
SectionHeader 表示单个 Plan 9 a.out 节标题。该结构不存在于磁盘上,但可以简化通过目标文件的导航。
type SectionHeader struct { Name string Size uint32 Offset uint32}
符号表示 Plan 9 a.out 符号表部分中的条目。
type Sym struct { Value uint64 Type rune Name string}