在线文档教程

debug/plan9obj

plan9obj包

  • 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 )

type File(查看源代码)

File 代表一个开放的 Plan 9 a.out 文件。

type File struct { FileHeader Sections []*Section // 包含已过滤或未导出的字段 }

func NewFile(查看源代码)

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

NewFile 在底层的阅读器中创建一个用于访问 Plan 9 二进制文件的新文件。Plan 9二进制文件预计从 ReaderAt 的位置0开始。

func Open(查看源代码)

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

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

func (*File) Close(查看源代码)

func (f *File) Close() error

关闭文件。如果文件是直接使用 NewFile 而不是 Open 来创建的,则 Close 不起作用。

func (*File) Section(查看源代码)

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

部分返回给定名称的部分,如果不存在此部分,则返回 nil。

func (*File) Symbols(查看源代码)

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

符号返回f的符号表。

type FileHeader(查看源代码)

FileHeader 代表 Plan 9 a.out 文件头。

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

type Section(查看源代码)

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

type Section struct { SectionHeader // 为ReadAt方法嵌入ReaderAt。 // 不要直接嵌入SectionReader // 避免Read和Seek。 // 如果客户想要阅读和寻求它必须使用 // Open()以避免争夺搜索偏移量 // 与其他客户。 io.ReaderAt // 包含已过滤或未导出的字段 }

func (*Section) Data(查看源代码)

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

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

func (*Section) Open(查看源代码)

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

打开返回阅读 Plan 9 a.out 部分的新 ReadSeeker。

type SectionHeader(查看源代码)

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

type SectionHeader struct { Name string Size uint32 Offset uint32 }

type Sym(查看源代码)

符号表示 Plan 9 a.out 符号表部分中的条目。

type Sym struct { Value uint64 Type rune Name string }