Пакет plan9obj
Обзор
Пакет plan9obj предоставляет доступ к объектным файлам Plan 9 a.out.
Безопасность
Этот пакет не предназначен для защиты от злоумышленников и не входит в область действия https://go.dev/security/policy. В частности, при разборе объектных файлов выполняется только базовая проверка. Поэтому при разборе недоверенных данных следует соблюдать осторожность: разбор некорректных файлов может потребовать значительных ресурсов или привести к панике.
Указатель
Файлы пакета
file.go plan9obj.go
Константы
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
) Переменные
ErrNoSymbols возвращается методом File.Symbols, если в File нет такой секции.
var ErrNoSymbols = errors.New("no symbol section") тип File 1.3
File представляет открытый файл Plan 9 a.out.
type File struct {
FileHeader
Sections []*Section
// contains filtered or unexported fields
}
функция NewFile 1.3
func NewFile(r io.ReaderAt) (*File, error)
NewFile создаёт новый объект File для доступа к двоичному файлу Plan 9 через базовый считыватель. Предполагается, что двоичный файл Plan 9 начинается с позиции 0 в ReaderAt.
функция Open 1.3
func Open(name string) (*File, error)
Open открывает файл с указанным именем с помощью os.Open и подготавливает его к использованию в качестве двоичного файла Plan 9 a.out.
функция (*File) Close 1.3
func (f *File) Close() error
Close закрывает File. Если File был создан напрямую с помощью NewFile, а не Open, вызов Close не оказывает никакого эффекта.
функция (*File) Section 1.3
func (f *File) Section(name string) *Section
Section возвращает секцию с указанным именем или nil, если такой секции нет.
функция (*File) Symbols 1.3
func (f *File) Symbols() ([]Sym, error)
Symbols возвращает таблицу символов для f.
тип 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
}
тип Section 1.3
Section представляет отдельную секцию в файле 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
}
функция (*Section) Data 1.3
func (s *Section) Data() ([]byte, error)
Data считывает и возвращает содержимое секции Plan 9 a.out.
функция (*Section) Open 1.3
func (s *Section) Open() io.ReadSeeker
Open возвращает новый ReadSeeker для чтения секции Plan 9 a.out.
тип SectionHeader 1.3
SectionHeader представляет заголовок отдельной секции Plan 9 a.out. Эта структура не существует на диске, но упрощает навигацию по объектному файлу.
type SectionHeader struct {
Name string
Size uint32
Offset uint32
}
тип Sym 1.3
Symbol представляет запись в секции таблицы символов Plan 9 a.out.
type Sym struct {
Value uint64
Type rune
Name string
}
© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/debug/plan9obj/