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
文件包
常量
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
}