Spec-Zone.ru › Go

Пакет plan9obj

  • import "debug/plan9obj"
  • Обзор
  • Индекс

Обзор

Пакет plan9obj реализует доступ к объектным файлам Plan 9 a.out.

Безопасность

Этот пакет не предназначен для защиты от вредоносных входных данных и находится вне области действия https://go.dev/security/policy. В частности, при разборе объектных файлов выполняется только базовая валидация. Поэтому необходимо проявлять осторожность при разборе недоверенных входных данных, так как разбор некорректных файлов может потребовать значительных ресурсов или привести к панике.

Индекс

  • Константы
  • Переменные
  • Тип File
  • Функция NewFile(r io.ReaderAt) (*File, error)
  • Функция Open(name string) (*File, error)
  • Функция (f *File) Close() error
  • Функция (f *File) Section(name string) *Section
  • Функция (f *File) Symbols() ([]Sym, error)
  • Тип FileHeader
  • Тип Section
  • Функция (s *Section) Data() ([]byte, error)
  • Функция (s *Section) Open() io.ReadSeeker
  • Тип SectionHeader
  • Тип Sym

Файлы пакета

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

Sym представляет запись в разделе таблицы символов 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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API