Documentation
¶
Overview ¶
elfパッケージは、ELFオブジェクトファイルへのアクセスを実装します。
セキュリティ ¶
このパッケージは敵対的な入力に対して強化されるように設計されておらず、 https://go.dev/security/policy の範囲外です。特に、オブジェクトファイルを解析する際には基本的な 検証のみが行われます。そのため、信頼できない入力を解析する際には注意が必要です。なぜなら、 形式が不正なファイルを解析すると、大量のリソースを消費したり、パニックを引き起こす可能性があるからです。
Index ¶
- Constants
- Variables
- func R_INFO(sym, typ uint32) uint64
- func R_INFO32(sym, typ uint32) uint32
- func R_SYM32(info uint32) uint32
- func R_SYM64(info uint64) uint32
- func R_TYPE32(info uint32) uint32
- func R_TYPE64(info uint64) uint32
- func ST_INFO(bind SymBind, typ SymType) uint8
- type Chdr32
- type Chdr64
- type Class
- type CompressionType
- type Data
- type Dyn32
- type Dyn64
- type DynFlag
- type DynFlag1
- type DynTag
- type DynamicVersion
- type DynamicVersionDep
- type DynamicVersionFlag
- type DynamicVersionNeed
- type File
- func (f *File) Close() error
- func (f *File) DWARF() (*dwarf.Data, error)
- func (f *File) DynString(tag DynTag) ([]string, error)
- func (f *File) DynValue(tag DynTag) ([]uint64, error)
- func (f *File) DynamicSymbols() ([]Symbol, error)
- func (f *File) DynamicVersionNeeds() ([]DynamicVersionNeed, error)
- func (f *File) DynamicVersions() ([]DynamicVersion, error)
- func (f *File) ImportedLibraries() ([]string, error)
- func (f *File) ImportedSymbols() ([]ImportedSymbol, error)
- func (f *File) Section(name string) *Section
- func (f *File) SectionByType(typ SectionType) *Section
- func (f *File) Symbols() ([]Symbol, error)
- type FileHeader
- type FormatError
- type Header32
- type Header64
- type ImportedSymbol
- type Machine
- type NType
- type OSABI
- type Prog
- type Prog32
- type Prog64
- type ProgFlag
- type ProgHeader
- type ProgType
- type R_386
- type R_390
- type R_AARCH64
- type R_ALPHA
- type R_ARM
- type R_LARCH
- type R_MIPS
- type R_PPC
- type R_PPC64
- type R_RISCV
- type R_SPARC
- type R_X86_64
- type Rel32
- type Rel64
- type Rela32
- type Rela64
- type Section
- type Section32
- type Section64
- type SectionFlag
- type SectionHeader
- type SectionIndex
- type SectionType
- type Sym32
- type Sym64
- type SymBind
- type SymType
- type SymVis
- type Symbol
- type Type
- type Version
- type VersionIndex
Constants ¶
const ( EI_CLASS = 4 EI_DATA = 5 EI_VERSION = 6 EI_OSABI = 7 EI_ABIVERSION = 8 EI_PAD = 9 EI_NIDENT = 16 )
Header.Ident 配列へのインデックス。
const ARM_MAGIC_TRAMP_NUMBER = 0x5c000003
elfトランポリンのためのマジックナンバー。即値として賢明に選ばれます。
const ELFMAG = "\177ELF"
ELFファイルの初期マジックナンバー。
const Sym32Size = 16
const Sym64Size = 24
Variables ¶
var ErrNoSymbols = errors.New("no symbol section")
ErrNoSymbolsは、File.Symbols と File.DynamicSymbols によって返されます。 ファイルにそのようなセクションがない場合に返されます。
Functions ¶
Types ¶
type Chdr64 ¶ added in v1.6.0
type Chdr64 struct {
Type uint32
Size uint64
Addralign uint64
// contains filtered or unexported fields
}
ELF64 圧縮ヘッダー。
type CompressionType ¶ added in v1.6.0
type CompressionType int
セクションの圧縮タイプ。
const ( COMPRESS_ZLIB CompressionType = 1 COMPRESS_ZSTD CompressionType = 2 COMPRESS_LOOS CompressionType = 0x60000000 COMPRESS_HIOS CompressionType = 0x6fffffff COMPRESS_LOPROC CompressionType = 0x70000000 COMPRESS_HIPROC CompressionType = 0x7fffffff )
func (CompressionType) GoString ¶ added in v1.6.0
func (i CompressionType) GoString() string
func (CompressionType) String ¶ added in v1.6.0
func (i CompressionType) String() string
type DynFlag1 ¶ added in v1.21.0
type DynFlag1 uint32
DT_FLAGS_1の値。
const ( // このオブジェクトのすべての再配置がプログラムの制御を返す前に処理される必要があることを示します。 DF_1_NOW DynFlag1 = 0x00000001 // 未使用。 DF_1_GLOBAL DynFlag1 = 0x00000002 // オブジェクトがグループのメンバーであることを示します。 DF_1_GROUP DynFlag1 = 0x00000004 // オブジェクトがプロセスから削除できないことを示します。 DF_1_NODELETE DynFlag1 = 0x00000008 // フィルターにのみ意味があります。すべての関連するフィルティーが // 即座に処理されることを示します。 DF_1_LOADFLTR DynFlag1 = 0x00000010 // このオブジェクトの初期化セクションが、他のどのオブジェクトよりも先に実行されることを示します。 DF_1_INITFIRST DynFlag1 = 0x00000020 // オブジェクトがdlopenを使用して実行中のプロセスに追加できないことを示します。 DF_1_NOOPEN DynFlag1 = 0x00000040 // オブジェクトが$ORIGIN処理を必要とすることを示します。 DF_1_ORIGIN DynFlag1 = 0x00000080 // オブジェクトが直接バインディング情報を使用する必要があることを示します。 DF_1_DIRECT DynFlag1 = 0x00000100 // 未使用。 DF_1_TRANS DynFlag1 = 0x00000200 // オブジェクトのシンボルテーブルが、通常は実行可能ファイルである主要なロードオブジェクトを除く // すべてのシンボルの前に介在することを示します。 DF_1_INTERPOSE DynFlag1 = 0x00000400 // このオブジェクトの依存関係の検索が、任意のデフォルトのライブラリ検索パスを無視することを示します。 DF_1_NODEFLIB DynFlag1 = 0x00000800 // このオブジェクトがdldumpによってダンプされないことを示します。候補は、 // 代替オブジェクトを生成するときに含まれる可能性がある再配置のないオブジェクトです。 DF_1_NODUMP DynFlag1 = 0x00001000 // このオブジェクトがcrleによって生成された設定代替オブジェクトであることを識別します。 // ランタイムリンカーが設定ファイル$ORIGIN/ld.config.app-nameを検索するようにトリガーします。 DF_1_CONFALT DynFlag1 = 0x00002000 // フィルティーにのみ意味があります。フィルターがさらなるフィルティーを検索するのを終了します。 DF_1_ENDFILTEE DynFlag1 = 0x00004000 // このオブジェクトに変位再配置が適用されていることを示します。 DF_1_DISPRELDNE DynFlag1 = 0x00008000 // このオブジェクトには変位再配置が保留中であることを示します。 DF_1_DISPRELPND DynFlag1 = 0x00010000 // このオブジェクトが直接バインドできないシンボルを含んでいることを示します。 DF_1_NODIRECT DynFlag1 = 0x00020000 // カーネルのランタイムリンカーによる内部使用のために予約されています。 DF_1_IGNMULDEF DynFlag1 = 0x00040000 // カーネルのランタイムリンカーによる内部使用のために予約されています。 DF_1_NOKSYMS DynFlag1 = 0x00080000 // カーネルのランタイムリンカーによる内部使用のために予約されています。 DF_1_NOHDR DynFlag1 = 0x00100000 // このオブジェクトがリンクエディタによる元の構築以降に編集されたか、 // または変更されたことを示します。 DF_1_EDITED DynFlag1 = 0x00200000 // カーネルのランタイムリンカーによる内部使用のために予約されています。 DF_1_NORELOC DynFlag1 = 0x00400000 // オブジェクトが個々のシンボルを含んでおり、それらのシンボルは通常実行可能ファイルである // 主要なロードオブジェクトを除くすべてのシンボルよりも前に介在するべきであることを示します。 DF_1_SYMINTPOSE DynFlag1 = 0x00800000 // 実行可能ファイルがグローバル監査を必要とすることを示します。 DF_1_GLOBAUDIT DynFlag1 = 0x01000000 // オブジェクトがシングルトンシンボルを定義するか、またはそれらを参照することを示します。 DF_1_SINGLETON DynFlag1 = 0x02000000 // オブジェクトがスタブであることを示します。 DF_1_STUB DynFlag1 = 0x04000000 // オブジェクトが位置独立型実行可能ファイルであることを示します。 DF_1_PIE DynFlag1 = 0x08000000 // オブジェクトがカーネルモジュールであることを示します。 DF_1_KMOD DynFlag1 = 0x10000000 // オブジェクトが弱い標準フィルターであることを示します。 DF_1_WEAKFILTER DynFlag1 = 0x20000000 // 未使用。 DF_1_NOCOMMON DynFlag1 = 0x40000000 )
type DynTag ¶
type DynTag int
Dyn.Tag
const ( DT_NULL DynTag = 0 DT_NEEDED DynTag = 1 DT_PLTRELSZ DynTag = 2 DT_PLTGOT DynTag = 3 DT_HASH DynTag = 4 DT_STRTAB DynTag = 5 DT_SYMTAB DynTag = 6 DT_RELA DynTag = 7 DT_RELASZ DynTag = 8 DT_RELAENT DynTag = 9 DT_STRSZ DynTag = 10 DT_SYMENT DynTag = 11 DT_INIT DynTag = 12 DT_FINI DynTag = 13 DT_SONAME DynTag = 14 DT_RPATH DynTag = 15 DT_SYMBOLIC DynTag = 16 DT_REL DynTag = 17 DT_RELSZ DynTag = 18 DT_RELENT DynTag = 19 DT_PLTREL DynTag = 20 DT_DEBUG DynTag = 21 DT_TEXTREL DynTag = 22 DT_JMPREL DynTag = 23 DT_BIND_NOW DynTag = 24 DT_INIT_ARRAY DynTag = 25 DT_FINI_ARRAY DynTag = 26 DT_INIT_ARRAYSZ DynTag = 27 DT_FINI_ARRAYSZ DynTag = 28 DT_RUNPATH DynTag = 29 DT_FLAGS DynTag = 30 DT_ENCODING DynTag = 32 DT_PREINIT_ARRAY DynTag = 32 DT_PREINIT_ARRAYSZ DynTag = 33 DT_SYMTAB_SHNDX DynTag = 34 DT_LOOS DynTag = 0x6000000d DT_HIOS DynTag = 0x6ffff000 DT_VALRNGLO DynTag = 0x6ffffd00 DT_GNU_PRELINKED DynTag = 0x6ffffdf5 DT_GNU_CONFLICTSZ DynTag = 0x6ffffdf6 DT_GNU_LIBLISTSZ DynTag = 0x6ffffdf7 DT_CHECKSUM DynTag = 0x6ffffdf8 DT_PLTPADSZ DynTag = 0x6ffffdf9 DT_MOVEENT DynTag = 0x6ffffdfa DT_MOVESZ DynTag = 0x6ffffdfb DT_FEATURE DynTag = 0x6ffffdfc DT_POSFLAG_1 DynTag = 0x6ffffdfd DT_SYMINSZ DynTag = 0x6ffffdfe DT_SYMINENT DynTag = 0x6ffffdff DT_VALRNGHI DynTag = 0x6ffffdff DT_ADDRRNGLO DynTag = 0x6ffffe00 DT_GNU_HASH DynTag = 0x6ffffef5 DT_TLSDESC_PLT DynTag = 0x6ffffef6 DT_TLSDESC_GOT DynTag = 0x6ffffef7 DT_GNU_CONFLICT DynTag = 0x6ffffef8 DT_GNU_LIBLIST DynTag = 0x6ffffef9 DT_CONFIG DynTag = 0x6ffffefa DT_DEPAUDIT DynTag = 0x6ffffefb DT_AUDIT DynTag = 0x6ffffefc DT_PLTPAD DynTag = 0x6ffffefd DT_MOVETAB DynTag = 0x6ffffefe DT_SYMINFO DynTag = 0x6ffffeff DT_ADDRRNGHI DynTag = 0x6ffffeff DT_VERSYM DynTag = 0x6ffffff0 DT_RELACOUNT DynTag = 0x6ffffff9 DT_RELCOUNT DynTag = 0x6ffffffa DT_FLAGS_1 DynTag = 0x6ffffffb DT_VERDEF DynTag = 0x6ffffffc DT_VERDEFNUM DynTag = 0x6ffffffd DT_VERNEED DynTag = 0x6ffffffe DT_VERNEEDNUM DynTag = 0x6fffffff DT_LOPROC DynTag = 0x70000000 DT_MIPS_RLD_VERSION DynTag = 0x70000001 DT_MIPS_TIME_STAMP DynTag = 0x70000002 DT_MIPS_ICHECKSUM DynTag = 0x70000003 DT_MIPS_IVERSION DynTag = 0x70000004 DT_MIPS_FLAGS DynTag = 0x70000005 DT_MIPS_BASE_ADDRESS DynTag = 0x70000006 DT_MIPS_MSYM DynTag = 0x70000007 DT_MIPS_CONFLICT DynTag = 0x70000008 DT_MIPS_LIBLIST DynTag = 0x70000009 DT_MIPS_LOCAL_GOTNO DynTag = 0x7000000a DT_MIPS_CONFLICTNO DynTag = 0x7000000b DT_MIPS_LIBLISTNO DynTag = 0x70000010 DT_MIPS_SYMTABNO DynTag = 0x70000011 DT_MIPS_UNREFEXTNO DynTag = 0x70000012 DT_MIPS_GOTSYM DynTag = 0x70000013 DT_MIPS_HIPAGENO DynTag = 0x70000014 DT_MIPS_RLD_MAP DynTag = 0x70000016 DT_MIPS_DELTA_CLASS DynTag = 0x70000017 DT_MIPS_DELTA_CLASS_NO DynTag = 0x70000018 DT_MIPS_DELTA_INSTANCE DynTag = 0x70000019 DT_MIPS_DELTA_INSTANCE_NO DynTag = 0x7000001a DT_MIPS_DELTA_RELOC DynTag = 0x7000001b DT_MIPS_DELTA_RELOC_NO DynTag = 0x7000001c DT_MIPS_DELTA_SYM DynTag = 0x7000001d DT_MIPS_DELTA_SYM_NO DynTag = 0x7000001e DT_MIPS_DELTA_CLASSSYM DynTag = 0x70000020 DT_MIPS_DELTA_CLASSSYM_NO DynTag = 0x70000021 DT_MIPS_CXX_FLAGS DynTag = 0x70000022 DT_MIPS_PIXIE_INIT DynTag = 0x70000023 DT_MIPS_SYMBOL_LIB DynTag = 0x70000024 DT_MIPS_LOCALPAGE_GOTIDX DynTag = 0x70000025 DT_MIPS_LOCAL_GOTIDX DynTag = 0x70000026 DT_MIPS_HIDDEN_GOTIDX DynTag = 0x70000027 DT_MIPS_PROTECTED_GOTIDX DynTag = 0x70000028 DT_MIPS_OPTIONS DynTag = 0x70000029 DT_MIPS_INTERFACE DynTag = 0x7000002a DT_MIPS_DYNSTR_ALIGN DynTag = 0x7000002b DT_MIPS_INTERFACE_SIZE DynTag = 0x7000002c DT_MIPS_RLD_TEXT_RESOLVE_ADDR DynTag = 0x7000002d DT_MIPS_PERF_SUFFIX DynTag = 0x7000002e DT_MIPS_COMPACT_SIZE DynTag = 0x7000002f DT_MIPS_GP_VALUE DynTag = 0x70000030 DT_MIPS_AUX_DYNAMIC DynTag = 0x70000031 DT_MIPS_PLTGOT DynTag = 0x70000032 DT_MIPS_RWPLT DynTag = 0x70000034 DT_MIPS_RLD_MAP_REL DynTag = 0x70000035 DT_PPC_GOT DynTag = 0x70000000 DT_PPC_OPT DynTag = 0x70000001 DT_PPC64_GLINK DynTag = 0x70000000 DT_PPC64_OPD DynTag = 0x70000001 DT_PPC64_OPDSZ DynTag = 0x70000002 DT_PPC64_OPT DynTag = 0x70000003 DT_SPARC_REGISTER DynTag = 0x70000001 DT_AUXILIARY DynTag = 0x7ffffffd DT_USED DynTag = 0x7ffffffe DT_FILTER DynTag = 0x7fffffff DT_HIPROC DynTag = 0x7fffffff )
type DynamicVersion ¶ added in v1.25.0
type DynamicVersion struct {
Name string
Index uint16
Flags DynamicVersionFlag
Deps []string
}
DynamicVersionは動的オブジェクトによって定義されるバージョンです。 これはELF SHT_GNU_verdefセクションのエントリを記述します。 vd_versionフィールドが1であると仮定します。 バージョンの名前はここに表示されることに注意してください; ELFファイルのように最初のDepsエントリにはありません。
type DynamicVersionDep ¶ added in v1.25.0
type DynamicVersionDep struct {
Flags DynamicVersionFlag
Index uint16
Dep string
}
DynamicVersionDepは共有ライブラリから必要とされるバージョンです。
type DynamicVersionFlag ¶ added in v1.25.0
type DynamicVersionFlag uint16
Dynamic version flags.
const ( VER_FLG_BASE DynamicVersionFlag = 0x1 VER_FLG_WEAK DynamicVersionFlag = 0x2 VER_FLG_INFO DynamicVersionFlag = 0x4 )
type DynamicVersionNeed ¶ added in v1.25.0
type DynamicVersionNeed struct {
Name string
Needs []DynamicVersionDep
}
DynamicVersionNeedは、動的オブジェクトによって必要とされる共有ライブラリを記述し、 その共有ライブラリから必要とされるバージョンのリストを含みます。 これはELF SHT_GNU_verneedセクションのエントリを記述します。 vn_versionフィールドが1であると仮定します。
type File ¶
type File struct {
FileHeader
Sections []*Section
Progs []*Prog
// contains filtered or unexported fields
}
Fileは開いているELFファイルを表します。
func NewFile ¶
NewFileは、基礎となるリーダー内のELFバイナリにアクセスするための新しい File を作成します。 ELFバイナリは、ReaderAtの位置0で開始することが期待されます。
func (*File) DynString ¶ added in v1.1.0
DynStringは、ファイルの動的セクションで指定されたタグにリストされている文字列を返します。
タグは、文字列値を取るものでなければなりません:DT_NEEDED、DT_SONAME、DT_RPATH、または DT_RUNPATH。
func (*File) DynamicSymbols ¶ added in v1.4.0
DynamicSymbolsは、fの動的シンボルテーブルを返します。シンボルは、f内に出現する順序でリストされます。
fがシンボルバージョンテーブルを持っている場合、返される File.Symbols は 初期化されたVersionとLibraryフィールドを持ちます。
File.Symbols との互換性のため、File.DynamicSymbols はインデックス0のnullシンボルを省略します。 シンボルをsymtabとして取得した後、外部から供給されたインデックスxは symtab[x]ではなく、symtab[x-1]に対応します。
func (*File) DynamicVersionNeeds ¶ added in v1.25.0
func (f *File) DynamicVersionNeeds() ([]DynamicVersionNeed, error)
DynamicVersionNeedsは動的オブジェクトのバージョン依存関係を返します。
func (*File) DynamicVersions ¶ added in v1.25.0
func (f *File) DynamicVersions() ([]DynamicVersion, error)
DynamicVersionsは動的オブジェクトのバージョン情報を返します。
func (*File) ImportedLibraries ¶
ImportedLibrariesは、バイナリfによって参照されるすべてのライブラリの名前を返します。 これらのライブラリは動的リンク時にバイナリとリンクされることが期待されます。
func (*File) ImportedSymbols ¶
func (f *File) ImportedSymbols() ([]ImportedSymbol, error)
ImportedSymbolsは、動的ロード時に他のライブラリによって満たされることが期待される バイナリfによって参照されるすべてのシンボルの名前を返します。 弱いシンボルは返しません。
func (*File) SectionByType ¶
func (f *File) SectionByType(typ SectionType) *Section
SectionByTypeは、指定されたタイプを持つf内の最初のセクションを返します。 そのようなセクションがない場合はnilを返します。
type FileHeader ¶
type FileHeader struct {
Class Class
Data Data
Version Version
OSABI OSABI
ABIVersion uint8
ByteOrder binary.ByteOrder
Type Type
Machine Machine
Entry uint64
}
FileHeaderはELFファイルヘッダーを表します。
type FormatError ¶
type FormatError struct {
// contains filtered or unexported fields
}
func (*FormatError) Error ¶
func (e *FormatError) Error() string
type Header32 ¶
type Header32 struct {
Ident [EI_NIDENT]byte
Type uint16
Machine uint16
Version uint32
Entry uint32
Phoff uint32
Shoff uint32
Flags uint32
Ehsize uint16
Phentsize uint16
Phnum uint16
Shentsize uint16
Shnum uint16
Shstrndx uint16
}
ELF32 ファイルヘッダー。
type Header64 ¶
type Header64 struct {
Ident [EI_NIDENT]byte
Type uint16
Machine uint16
Version uint32
Entry uint64
Phoff uint64
Shoff uint64
Flags uint32
Ehsize uint16
Phentsize uint16
Phnum uint16
Shentsize uint16
Shnum uint16
Shstrndx uint16
}
ELF64 ファイルヘッダー。
type ImportedSymbol ¶
type Machine ¶
type Machine uint16
Machineは、Header.Machineに存在します。
const ( EM_NONE Machine = 0 EM_M32 Machine = 1 EM_SPARC Machine = 2 EM_386 Machine = 3 EM_68K Machine = 4 EM_88K Machine = 5 EM_860 Machine = 7 EM_MIPS Machine = 8 EM_S370 Machine = 9 EM_MIPS_RS3_LE Machine = 10 EM_PARISC Machine = 15 EM_VPP500 Machine = 17 EM_SPARC32PLUS Machine = 18 EM_960 Machine = 19 EM_PPC Machine = 20 EM_PPC64 Machine = 21 EM_S390 Machine = 22 EM_V800 Machine = 36 EM_FR20 Machine = 37 EM_RH32 Machine = 38 EM_RCE Machine = 39 EM_ARM Machine = 40 EM_SH Machine = 42 EM_SPARCV9 Machine = 43 EM_TRICORE Machine = 44 EM_ARC Machine = 45 EM_H8_300 Machine = 46 EM_H8_300H Machine = 47 EM_H8S Machine = 48 EM_H8_500 Machine = 49 EM_IA_64 Machine = 50 EM_MIPS_X Machine = 51 EM_COLDFIRE Machine = 52 EM_68HC12 Machine = 53 EM_MMA Machine = 54 EM_PCP Machine = 55 EM_NCPU Machine = 56 EM_NDR1 Machine = 57 EM_STARCORE Machine = 58 EM_ME16 Machine = 59 EM_ST100 Machine = 60 EM_TINYJ Machine = 61 EM_X86_64 Machine = 62 EM_PDSP Machine = 63 EM_PDP10 Machine = 64 EM_PDP11 Machine = 65 EM_FX66 Machine = 66 EM_ST9PLUS Machine = 67 EM_ST7 Machine = 68 EM_68HC16 Machine = 69 EM_68HC11 Machine = 70 EM_68HC08 Machine = 71 EM_68HC05 Machine = 72 EM_SVX Machine = 73 EM_ST19 Machine = 74 EM_VAX Machine = 75 EM_CRIS Machine = 76 EM_JAVELIN Machine = 77 EM_FIREPATH Machine = 78 EM_ZSP Machine = 79 EM_MMIX Machine = 80 EM_HUANY Machine = 81 EM_PRISM Machine = 82 EM_AVR Machine = 83 EM_FR30 Machine = 84 EM_D10V Machine = 85 EM_D30V Machine = 86 EM_V850 Machine = 87 EM_M32R Machine = 88 EM_MN10300 Machine = 89 EM_MN10200 Machine = 90 EM_PJ Machine = 91 EM_OPENRISC Machine = 92 EM_ARC_COMPACT Machine = 93 EM_XTENSA Machine = 94 EM_VIDEOCORE Machine = 95 EM_TMM_GPP Machine = 96 EM_NS32K Machine = 97 EM_TPC Machine = 98 EM_SNP1K Machine = 99 EM_ST200 Machine = 100 EM_IP2K Machine = 101 EM_MAX Machine = 102 EM_CR Machine = 103 EM_F2MC16 Machine = 104 EM_MSP430 Machine = 105 EM_BLACKFIN Machine = 106 EM_SE_C33 Machine = 107 EM_SEP Machine = 108 EM_ARCA Machine = 109 EM_UNICORE Machine = 110 EM_EXCESS Machine = 111 EM_DXP Machine = 112 EM_ALTERA_NIOS2 Machine = 113 EM_CRX Machine = 114 EM_XGATE Machine = 115 EM_C166 Machine = 116 EM_M16C Machine = 117 EM_DSPIC30F Machine = 118 EM_CE Machine = 119 EM_M32C Machine = 120 EM_TSK3000 Machine = 131 EM_RS08 Machine = 132 EM_SHARC Machine = 133 EM_ECOG2 Machine = 134 EM_SCORE7 Machine = 135 EM_DSP24 Machine = 136 EM_VIDEOCORE3 Machine = 137 EM_LATTICEMICO32 Machine = 138 EM_SE_C17 Machine = 139 EM_TI_C6000 Machine = 140 EM_TI_C2000 Machine = 141 EM_TI_C5500 Machine = 142 EM_TI_ARP32 Machine = 143 EM_TI_PRU Machine = 144 EM_MMDSP_PLUS Machine = 160 EM_CYPRESS_M8C Machine = 161 EM_R32C Machine = 162 EM_TRIMEDIA Machine = 163 EM_QDSP6 Machine = 164 EM_8051 Machine = 165 EM_STXP7X Machine = 166 EM_NDS32 Machine = 167 EM_ECOG1 Machine = 168 EM_ECOG1X Machine = 168 EM_MAXQ30 Machine = 169 EM_XIMO16 Machine = 170 EM_MANIK Machine = 171 EM_CRAYNV2 Machine = 172 EM_RX Machine = 173 EM_METAG Machine = 174 EM_MCST_ELBRUS Machine = 175 EM_ECOG16 Machine = 176 EM_CR16 Machine = 177 EM_ETPU Machine = 178 EM_SLE9X Machine = 179 EM_L10M Machine = 180 EM_K10M Machine = 181 EM_AARCH64 Machine = 183 EM_AVR32 Machine = 185 EM_STM8 Machine = 186 EM_TILE64 Machine = 187 EM_TILEPRO Machine = 188 EM_MICROBLAZE Machine = 189 EM_CUDA Machine = 190 EM_TILEGX Machine = 191 EM_CLOUDSHIELD Machine = 192 EM_COREA_1ST Machine = 193 EM_COREA_2ND Machine = 194 EM_ARC_COMPACT2 Machine = 195 EM_OPEN8 Machine = 196 EM_RL78 Machine = 197 EM_VIDEOCORE5 Machine = 198 EM_78KOR Machine = 199 EM_56800EX Machine = 200 EM_BA1 Machine = 201 EM_BA2 Machine = 202 EM_XCORE Machine = 203 EM_MCHP_PIC Machine = 204 EM_INTEL205 Machine = 205 EM_INTEL206 Machine = 206 EM_INTEL207 Machine = 207 EM_INTEL208 Machine = 208 EM_INTEL209 Machine = 209 EM_KM32 Machine = 210 EM_KMX32 Machine = 211 EM_KMX16 Machine = 212 EM_KMX8 Machine = 213 EM_KVARC Machine = 214 EM_CDP Machine = 215 EM_COGE Machine = 216 EM_COOL Machine = 217 EM_NORC Machine = 218 EM_CSR_KALIMBA Machine = 219 EM_Z80 Machine = 220 EM_VISIUM Machine = 221 EM_FT32 Machine = 222 EM_MOXIE Machine = 223 EM_AMDGPU Machine = 224 EM_RISCV Machine = 243 EM_LANAI Machine = 244 EM_BPF Machine = 247 EM_LOONGARCH Machine = 258 /* 非標準または非推奨。 */ EM_486 Machine = 6 EM_MIPS_RS4_BE Machine = 10 EM_ALPHA_STD Machine = 41 EM_ALPHA Machine = 0x9026 )
type OSABI ¶
type OSABI byte
OSABIは、Header.Ident[EI_OSABI]とHeader.OSABIに存在します。
const ( ELFOSABI_NONE OSABI = 0 ELFOSABI_HPUX OSABI = 1 ELFOSABI_NETBSD OSABI = 2 ELFOSABI_LINUX OSABI = 3 ELFOSABI_HURD OSABI = 4 ELFOSABI_86OPEN OSABI = 5 ELFOSABI_SOLARIS OSABI = 6 ELFOSABI_AIX OSABI = 7 ELFOSABI_IRIX OSABI = 8 ELFOSABI_FREEBSD OSABI = 9 ELFOSABI_TRU64 OSABI = 10 ELFOSABI_MODESTO OSABI = 11 ELFOSABI_OPENBSD OSABI = 12 ELFOSABI_OPENVMS OSABI = 13 ELFOSABI_NSK OSABI = 14 ELFOSABI_AROS OSABI = 15 ELFOSABI_FENIXOS OSABI = 16 ELFOSABI_CLOUDABI OSABI = 17 ELFOSABI_ARM OSABI = 97 ELFOSABI_STANDALONE OSABI = 255 )
type Prog ¶
type Prog struct {
ProgHeader
// ReadAtメソッドのためにReaderAtを埋め込みます。
// ReadとSeekを避けるために、SectionReaderを直接埋め込まないでください。
// クライアントがReadとSeekを使用したい場合は、
// 他のクライアントとのシークオフセットの競合を避けるために
// Open()を使用する必要があります。
io.ReaderAt
// contains filtered or unexported fields
}
Progは、ELFバイナリ内の単一のELFプログラムヘッダーを表します。
type Prog32 ¶
type Prog32 struct {
Type uint32
Off uint32
Vaddr uint32
Paddr uint32
Filesz uint32
Memsz uint32
Flags uint32
Align uint32
}
ELF32 プログラムヘッダー。
type Prog64 ¶
type Prog64 struct {
Type uint32
Flags uint32
Off uint64
Vaddr uint64
Paddr uint64
Filesz uint64
Memsz uint64
Align uint64
}
ELF64 プログラムヘッダー。
type ProgHeader ¶
type ProgHeader struct {
Type ProgType
Flags ProgFlag
Off uint64
Vaddr uint64
Paddr uint64
Filesz uint64
Memsz uint64
Align uint64
}
ProgHeaderは、単一のELFプログラムヘッダーを表します。
type ProgType ¶
type ProgType int
Prog.Type
const ( PT_NULL ProgType = 0 PT_LOAD ProgType = 1 PT_DYNAMIC ProgType = 2 PT_INTERP ProgType = 3 PT_NOTE ProgType = 4 PT_SHLIB ProgType = 5 PT_PHDR ProgType = 6 PT_TLS ProgType = 7 PT_LOOS ProgType = 0x60000000 PT_GNU_EH_FRAME ProgType = 0x6474e550 PT_GNU_STACK ProgType = 0x6474e551 PT_GNU_RELRO ProgType = 0x6474e552 PT_GNU_PROPERTY ProgType = 0x6474e553 PT_GNU_MBIND_LO ProgType = 0x6474e555 PT_GNU_MBIND_HI ProgType = 0x6474f554 PT_PAX_FLAGS ProgType = 0x65041580 PT_OPENBSD_RANDOMIZE ProgType = 0x65a3dbe6 PT_OPENBSD_WXNEEDED ProgType = 0x65a3dbe7 PT_OPENBSD_NOBTCFI ProgType = 0x65a3dbe8 PT_OPENBSD_BOOTDATA ProgType = 0x65a41be6 PT_SUNW_EH_FRAME ProgType = 0x6474e550 PT_SUNWSTACK ProgType = 0x6ffffffb PT_HIOS ProgType = 0x6fffffff PT_LOPROC ProgType = 0x70000000 PT_ARM_ARCHEXT ProgType = 0x70000000 PT_ARM_EXIDX ProgType = 0x70000001 PT_AARCH64_ARCHEXT ProgType = 0x70000000 PT_AARCH64_UNWIND ProgType = 0x70000001 PT_MIPS_REGINFO ProgType = 0x70000000 PT_MIPS_RTPROC ProgType = 0x70000001 PT_MIPS_OPTIONS ProgType = 0x70000002 PT_MIPS_ABIFLAGS ProgType = 0x70000003 PT_RISCV_ATTRIBUTES ProgType = 0x70000003 PT_S390_PGSTE ProgType = 0x70000000 PT_HIPROC ProgType = 0x7fffffff )
type R_386 ¶
type R_386 int
386のための再配置タイプ。
const ( R_386_NONE R_386 = 0 R_386_32 R_386 = 1 R_386_PC32 R_386 = 2 R_386_GOT32 R_386 = 3 R_386_PLT32 R_386 = 4 R_386_COPY R_386 = 5 R_386_GLOB_DAT R_386 = 6 R_386_JMP_SLOT R_386 = 7 R_386_RELATIVE R_386 = 8 R_386_GOTOFF R_386 = 9 R_386_GOTPC R_386 = 10 R_386_32PLT R_386 = 11 R_386_TLS_TPOFF R_386 = 14 R_386_TLS_IE R_386 = 15 R_386_TLS_GOTIE R_386 = 16 R_386_TLS_LE R_386 = 17 R_386_TLS_GD R_386 = 18 R_386_TLS_LDM R_386 = 19 R_386_16 R_386 = 20 R_386_PC16 R_386 = 21 R_386_8 R_386 = 22 R_386_PC8 R_386 = 23 R_386_TLS_GD_32 R_386 = 24 R_386_TLS_GD_PUSH R_386 = 25 R_386_TLS_GD_CALL R_386 = 26 R_386_TLS_GD_POP R_386 = 27 R_386_TLS_LDM_32 R_386 = 28 R_386_TLS_LDM_PUSH R_386 = 29 R_386_TLS_LDM_CALL R_386 = 30 R_386_TLS_LDM_POP R_386 = 31 R_386_TLS_LDO_32 R_386 = 32 R_386_TLS_IE_32 R_386 = 33 R_386_TLS_LE_32 R_386 = 34 R_386_TLS_DTPMOD32 R_386 = 35 R_386_TLS_DTPOFF32 R_386 = 36 R_386_TLS_TPOFF32 R_386 = 37 R_386_SIZE32 R_386 = 38 R_386_TLS_GOTDESC R_386 = 39 R_386_TLS_DESC_CALL R_386 = 40 R_386_TLS_DESC R_386 = 41 R_386_IRELATIVE R_386 = 42 R_386_GOT32X R_386 = 43 )
type R_390 ¶ added in v1.7.0
type R_390 int
s390xプロセッサのための再配置タイプ。
const ( R_390_NONE R_390 = 0 R_390_8 R_390 = 1 R_390_12 R_390 = 2 R_390_16 R_390 = 3 R_390_32 R_390 = 4 R_390_PC32 R_390 = 5 R_390_GOT12 R_390 = 6 R_390_GOT32 R_390 = 7 R_390_PLT32 R_390 = 8 R_390_COPY R_390 = 9 R_390_GLOB_DAT R_390 = 10 R_390_JMP_SLOT R_390 = 11 R_390_RELATIVE R_390 = 12 R_390_GOTOFF R_390 = 13 R_390_GOTPC R_390 = 14 R_390_GOT16 R_390 = 15 R_390_PC16 R_390 = 16 R_390_PC16DBL R_390 = 17 R_390_PLT16DBL R_390 = 18 R_390_PC32DBL R_390 = 19 R_390_PLT32DBL R_390 = 20 R_390_GOTPCDBL R_390 = 21 R_390_64 R_390 = 22 R_390_PC64 R_390 = 23 R_390_GOT64 R_390 = 24 R_390_PLT64 R_390 = 25 R_390_GOTENT R_390 = 26 R_390_GOTOFF16 R_390 = 27 R_390_GOTOFF64 R_390 = 28 R_390_GOTPLT12 R_390 = 29 R_390_GOTPLT16 R_390 = 30 R_390_GOTPLT32 R_390 = 31 R_390_GOTPLT64 R_390 = 32 R_390_GOTPLTENT R_390 = 33 R_390_GOTPLTOFF16 R_390 = 34 R_390_GOTPLTOFF32 R_390 = 35 R_390_GOTPLTOFF64 R_390 = 36 R_390_TLS_LOAD R_390 = 37 R_390_TLS_GDCALL R_390 = 38 R_390_TLS_LDCALL R_390 = 39 R_390_TLS_GD32 R_390 = 40 R_390_TLS_GD64 R_390 = 41 R_390_TLS_GOTIE12 R_390 = 42 R_390_TLS_GOTIE32 R_390 = 43 R_390_TLS_GOTIE64 R_390 = 44 R_390_TLS_LDM32 R_390 = 45 R_390_TLS_LDM64 R_390 = 46 R_390_TLS_IE32 R_390 = 47 R_390_TLS_IE64 R_390 = 48 R_390_TLS_IEENT R_390 = 49 R_390_TLS_LE32 R_390 = 50 R_390_TLS_LE64 R_390 = 51 R_390_TLS_LDO32 R_390 = 52 R_390_TLS_LDO64 R_390 = 53 R_390_TLS_DTPMOD R_390 = 54 R_390_TLS_DTPOFF R_390 = 55 R_390_TLS_TPOFF R_390 = 56 R_390_20 R_390 = 57 R_390_GOT20 R_390 = 58 R_390_GOTPLT20 R_390 = 59 R_390_TLS_GOTIE20 R_390 = 60 )
type R_AARCH64 ¶ added in v1.4.0
type R_AARCH64 int
AArch64(別名 arm64)のための再配置タイプ。
const ( R_AARCH64_NONE R_AARCH64 = 0 R_AARCH64_P32_ABS32 R_AARCH64 = 1 R_AARCH64_P32_ABS16 R_AARCH64 = 2 R_AARCH64_P32_PREL32 R_AARCH64 = 3 R_AARCH64_P32_PREL16 R_AARCH64 = 4 R_AARCH64_P32_MOVW_UABS_G0 R_AARCH64 = 5 R_AARCH64_P32_MOVW_UABS_G0_NC R_AARCH64 = 6 R_AARCH64_P32_MOVW_UABS_G1 R_AARCH64 = 7 R_AARCH64_P32_MOVW_SABS_G0 R_AARCH64 = 8 R_AARCH64_P32_LD_PREL_LO19 R_AARCH64 = 9 R_AARCH64_P32_ADR_PREL_LO21 R_AARCH64 = 10 R_AARCH64_P32_ADR_PREL_PG_HI21 R_AARCH64 = 11 R_AARCH64_P32_ADD_ABS_LO12_NC R_AARCH64 = 12 R_AARCH64_P32_LDST8_ABS_LO12_NC R_AARCH64 = 13 R_AARCH64_P32_LDST16_ABS_LO12_NC R_AARCH64 = 14 R_AARCH64_P32_LDST32_ABS_LO12_NC R_AARCH64 = 15 R_AARCH64_P32_LDST64_ABS_LO12_NC R_AARCH64 = 16 R_AARCH64_P32_LDST128_ABS_LO12_NC R_AARCH64 = 17 R_AARCH64_P32_TSTBR14 R_AARCH64 = 18 R_AARCH64_P32_CONDBR19 R_AARCH64 = 19 R_AARCH64_P32_JUMP26 R_AARCH64 = 20 R_AARCH64_P32_CALL26 R_AARCH64 = 21 R_AARCH64_P32_GOT_LD_PREL19 R_AARCH64 = 25 R_AARCH64_P32_ADR_GOT_PAGE R_AARCH64 = 26 R_AARCH64_P32_LD32_GOT_LO12_NC R_AARCH64 = 27 R_AARCH64_P32_TLSGD_ADR_PAGE21 R_AARCH64 = 81 R_AARCH64_P32_TLSGD_ADD_LO12_NC R_AARCH64 = 82 R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21 R_AARCH64 = 103 R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC R_AARCH64 = 104 R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19 R_AARCH64 = 105 R_AARCH64_P32_TLSLE_MOVW_TPREL_G1 R_AARCH64 = 106 R_AARCH64_P32_TLSLE_MOVW_TPREL_G0 R_AARCH64 = 107 R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC R_AARCH64 = 108 R_AARCH64_P32_TLSLE_ADD_TPREL_HI12 R_AARCH64 = 109 R_AARCH64_P32_TLSLE_ADD_TPREL_LO12 R_AARCH64 = 110 R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC R_AARCH64 = 111 R_AARCH64_P32_TLSDESC_LD_PREL19 R_AARCH64 = 122 R_AARCH64_P32_TLSDESC_ADR_PREL21 R_AARCH64 = 123 R_AARCH64_P32_TLSDESC_ADR_PAGE21 R_AARCH64 = 124 R_AARCH64_P32_TLSDESC_LD32_LO12_NC R_AARCH64 = 125 R_AARCH64_P32_TLSDESC_ADD_LO12_NC R_AARCH64 = 126 R_AARCH64_P32_TLSDESC_CALL R_AARCH64 = 127 R_AARCH64_P32_COPY R_AARCH64 = 180 R_AARCH64_P32_GLOB_DAT R_AARCH64 = 181 R_AARCH64_P32_JUMP_SLOT R_AARCH64 = 182 R_AARCH64_P32_RELATIVE R_AARCH64 = 183 R_AARCH64_P32_TLS_DTPMOD R_AARCH64 = 184 R_AARCH64_P32_TLS_DTPREL R_AARCH64 = 185 R_AARCH64_P32_TLS_TPREL R_AARCH64 = 186 R_AARCH64_P32_TLSDESC R_AARCH64 = 187 R_AARCH64_P32_IRELATIVE R_AARCH64 = 188 R_AARCH64_NULL R_AARCH64 = 256 R_AARCH64_ABS64 R_AARCH64 = 257 R_AARCH64_ABS32 R_AARCH64 = 258 R_AARCH64_ABS16 R_AARCH64 = 259 R_AARCH64_PREL64 R_AARCH64 = 260 R_AARCH64_PREL32 R_AARCH64 = 261 R_AARCH64_PREL16 R_AARCH64 = 262 R_AARCH64_MOVW_UABS_G0 R_AARCH64 = 263 R_AARCH64_MOVW_UABS_G0_NC R_AARCH64 = 264 R_AARCH64_MOVW_UABS_G1 R_AARCH64 = 265 R_AARCH64_MOVW_UABS_G1_NC R_AARCH64 = 266 R_AARCH64_MOVW_UABS_G2 R_AARCH64 = 267 R_AARCH64_MOVW_UABS_G2_NC R_AARCH64 = 268 R_AARCH64_MOVW_UABS_G3 R_AARCH64 = 269 R_AARCH64_MOVW_SABS_G0 R_AARCH64 = 270 R_AARCH64_MOVW_SABS_G1 R_AARCH64 = 271 R_AARCH64_MOVW_SABS_G2 R_AARCH64 = 272 R_AARCH64_LD_PREL_LO19 R_AARCH64 = 273 R_AARCH64_ADR_PREL_LO21 R_AARCH64 = 274 R_AARCH64_ADR_PREL_PG_HI21 R_AARCH64 = 275 R_AARCH64_ADR_PREL_PG_HI21_NC R_AARCH64 = 276 R_AARCH64_ADD_ABS_LO12_NC R_AARCH64 = 277 R_AARCH64_LDST8_ABS_LO12_NC R_AARCH64 = 278 R_AARCH64_TSTBR14 R_AARCH64 = 279 R_AARCH64_CONDBR19 R_AARCH64 = 280 R_AARCH64_JUMP26 R_AARCH64 = 282 R_AARCH64_CALL26 R_AARCH64 = 283 R_AARCH64_LDST16_ABS_LO12_NC R_AARCH64 = 284 R_AARCH64_LDST32_ABS_LO12_NC R_AARCH64 = 285 R_AARCH64_LDST64_ABS_LO12_NC R_AARCH64 = 286 R_AARCH64_LDST128_ABS_LO12_NC R_AARCH64 = 299 R_AARCH64_GOT_LD_PREL19 R_AARCH64 = 309 R_AARCH64_LD64_GOTOFF_LO15 R_AARCH64 = 310 R_AARCH64_ADR_GOT_PAGE R_AARCH64 = 311 R_AARCH64_LD64_GOT_LO12_NC R_AARCH64 = 312 R_AARCH64_LD64_GOTPAGE_LO15 R_AARCH64 = 313 R_AARCH64_TLSGD_ADR_PREL21 R_AARCH64 = 512 R_AARCH64_TLSGD_ADR_PAGE21 R_AARCH64 = 513 R_AARCH64_TLSGD_ADD_LO12_NC R_AARCH64 = 514 R_AARCH64_TLSGD_MOVW_G1 R_AARCH64 = 515 R_AARCH64_TLSGD_MOVW_G0_NC R_AARCH64 = 516 R_AARCH64_TLSLD_ADR_PREL21 R_AARCH64 = 517 R_AARCH64_TLSLD_ADR_PAGE21 R_AARCH64 = 518 R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 R_AARCH64 = 539 R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC R_AARCH64 = 540 R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 R_AARCH64 = 541 R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC R_AARCH64 = 542 R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 R_AARCH64 = 543 R_AARCH64_TLSLE_MOVW_TPREL_G2 R_AARCH64 = 544 R_AARCH64_TLSLE_MOVW_TPREL_G1 R_AARCH64 = 545 R_AARCH64_TLSLE_MOVW_TPREL_G1_NC R_AARCH64 = 546 R_AARCH64_TLSLE_MOVW_TPREL_G0 R_AARCH64 = 547 R_AARCH64_TLSLE_MOVW_TPREL_G0_NC R_AARCH64 = 548 R_AARCH64_TLSLE_ADD_TPREL_HI12 R_AARCH64 = 549 R_AARCH64_TLSLE_ADD_TPREL_LO12 R_AARCH64 = 550 R_AARCH64_TLSLE_ADD_TPREL_LO12_NC R_AARCH64 = 551 R_AARCH64_TLSDESC_LD_PREL19 R_AARCH64 = 560 R_AARCH64_TLSDESC_ADR_PREL21 R_AARCH64 = 561 R_AARCH64_TLSDESC_ADR_PAGE21 R_AARCH64 = 562 R_AARCH64_TLSDESC_LD64_LO12_NC R_AARCH64 = 563 R_AARCH64_TLSDESC_ADD_LO12_NC R_AARCH64 = 564 R_AARCH64_TLSDESC_OFF_G1 R_AARCH64 = 565 R_AARCH64_TLSDESC_OFF_G0_NC R_AARCH64 = 566 R_AARCH64_TLSDESC_LDR R_AARCH64 = 567 R_AARCH64_TLSDESC_ADD R_AARCH64 = 568 R_AARCH64_TLSDESC_CALL R_AARCH64 = 569 R_AARCH64_TLSLE_LDST128_TPREL_LO12 R_AARCH64 = 570 R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC R_AARCH64 = 571 R_AARCH64_TLSLD_LDST128_DTPREL_LO12 R_AARCH64 = 572 R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC R_AARCH64 = 573 R_AARCH64_COPY R_AARCH64 = 1024 R_AARCH64_GLOB_DAT R_AARCH64 = 1025 R_AARCH64_JUMP_SLOT R_AARCH64 = 1026 R_AARCH64_RELATIVE R_AARCH64 = 1027 R_AARCH64_TLS_DTPMOD64 R_AARCH64 = 1028 R_AARCH64_TLS_DTPREL64 R_AARCH64 = 1029 R_AARCH64_TLS_TPREL64 R_AARCH64 = 1030 R_AARCH64_TLSDESC R_AARCH64 = 1031 R_AARCH64_IRELATIVE R_AARCH64 = 1032 )
type R_ALPHA ¶
type R_ALPHA int
Alphaのための再配置タイプ。
const ( R_ALPHA_NONE R_ALPHA = 0 R_ALPHA_REFLONG R_ALPHA = 1 R_ALPHA_REFQUAD R_ALPHA = 2 R_ALPHA_GPREL32 R_ALPHA = 3 R_ALPHA_LITERAL R_ALPHA = 4 R_ALPHA_LITUSE R_ALPHA = 5 R_ALPHA_GPDISP R_ALPHA = 6 R_ALPHA_BRADDR R_ALPHA = 7 R_ALPHA_HINT R_ALPHA = 8 R_ALPHA_SREL16 R_ALPHA = 9 R_ALPHA_SREL32 R_ALPHA = 10 R_ALPHA_SREL64 R_ALPHA = 11 R_ALPHA_OP_PUSH R_ALPHA = 12 R_ALPHA_OP_STORE R_ALPHA = 13 R_ALPHA_OP_PSUB R_ALPHA = 14 R_ALPHA_OP_PRSHIFT R_ALPHA = 15 R_ALPHA_GPVALUE R_ALPHA = 16 R_ALPHA_GPRELHIGH R_ALPHA = 17 R_ALPHA_GPRELLOW R_ALPHA = 18 R_ALPHA_IMMED_GP_16 R_ALPHA = 19 R_ALPHA_IMMED_GP_HI32 R_ALPHA = 20 R_ALPHA_IMMED_SCN_HI32 R_ALPHA = 21 R_ALPHA_IMMED_BR_HI32 R_ALPHA = 22 R_ALPHA_IMMED_LO32 R_ALPHA = 23 R_ALPHA_COPY R_ALPHA = 24 R_ALPHA_GLOB_DAT R_ALPHA = 25 R_ALPHA_JMP_SLOT R_ALPHA = 26 R_ALPHA_RELATIVE R_ALPHA = 27 )
type R_ARM ¶
type R_ARM int
ARMのための再配置タイプ。
const ( R_ARM_NONE R_ARM = 0 R_ARM_PC24 R_ARM = 1 R_ARM_ABS32 R_ARM = 2 R_ARM_REL32 R_ARM = 3 R_ARM_PC13 R_ARM = 4 R_ARM_ABS16 R_ARM = 5 R_ARM_ABS12 R_ARM = 6 R_ARM_THM_ABS5 R_ARM = 7 R_ARM_ABS8 R_ARM = 8 R_ARM_SBREL32 R_ARM = 9 R_ARM_THM_PC22 R_ARM = 10 R_ARM_THM_PC8 R_ARM = 11 R_ARM_AMP_VCALL9 R_ARM = 12 R_ARM_SWI24 R_ARM = 13 R_ARM_THM_SWI8 R_ARM = 14 R_ARM_XPC25 R_ARM = 15 R_ARM_THM_XPC22 R_ARM = 16 R_ARM_TLS_DTPMOD32 R_ARM = 17 R_ARM_TLS_DTPOFF32 R_ARM = 18 R_ARM_TLS_TPOFF32 R_ARM = 19 R_ARM_COPY R_ARM = 20 R_ARM_GLOB_DAT R_ARM = 21 R_ARM_JUMP_SLOT R_ARM = 22 R_ARM_RELATIVE R_ARM = 23 R_ARM_GOTOFF R_ARM = 24 R_ARM_GOTPC R_ARM = 25 R_ARM_GOT32 R_ARM = 26 R_ARM_PLT32 R_ARM = 27 R_ARM_CALL R_ARM = 28 R_ARM_JUMP24 R_ARM = 29 R_ARM_THM_JUMP24 R_ARM = 30 R_ARM_BASE_ABS R_ARM = 31 R_ARM_ALU_PCREL_7_0 R_ARM = 32 R_ARM_ALU_PCREL_15_8 R_ARM = 33 R_ARM_ALU_PCREL_23_15 R_ARM = 34 R_ARM_LDR_SBREL_11_10_NC R_ARM = 35 R_ARM_ALU_SBREL_19_12_NC R_ARM = 36 R_ARM_ALU_SBREL_27_20_CK R_ARM = 37 R_ARM_TARGET1 R_ARM = 38 R_ARM_SBREL31 R_ARM = 39 R_ARM_V4BX R_ARM = 40 R_ARM_TARGET2 R_ARM = 41 R_ARM_PREL31 R_ARM = 42 R_ARM_MOVW_ABS_NC R_ARM = 43 R_ARM_MOVT_ABS R_ARM = 44 R_ARM_MOVW_PREL_NC R_ARM = 45 R_ARM_MOVT_PREL R_ARM = 46 R_ARM_THM_MOVW_ABS_NC R_ARM = 47 R_ARM_THM_MOVT_ABS R_ARM = 48 R_ARM_THM_MOVW_PREL_NC R_ARM = 49 R_ARM_THM_MOVT_PREL R_ARM = 50 R_ARM_THM_JUMP19 R_ARM = 51 R_ARM_THM_JUMP6 R_ARM = 52 R_ARM_THM_ALU_PREL_11_0 R_ARM = 53 R_ARM_THM_PC12 R_ARM = 54 R_ARM_ABS32_NOI R_ARM = 55 R_ARM_REL32_NOI R_ARM = 56 R_ARM_ALU_PC_G0_NC R_ARM = 57 R_ARM_ALU_PC_G0 R_ARM = 58 R_ARM_ALU_PC_G1_NC R_ARM = 59 R_ARM_ALU_PC_G1 R_ARM = 60 R_ARM_ALU_PC_G2 R_ARM = 61 R_ARM_LDR_PC_G1 R_ARM = 62 R_ARM_LDR_PC_G2 R_ARM = 63 R_ARM_LDRS_PC_G0 R_ARM = 64 R_ARM_LDRS_PC_G1 R_ARM = 65 R_ARM_LDRS_PC_G2 R_ARM = 66 R_ARM_LDC_PC_G0 R_ARM = 67 R_ARM_LDC_PC_G1 R_ARM = 68 R_ARM_LDC_PC_G2 R_ARM = 69 R_ARM_ALU_SB_G0_NC R_ARM = 70 R_ARM_ALU_SB_G0 R_ARM = 71 R_ARM_ALU_SB_G1_NC R_ARM = 72 R_ARM_ALU_SB_G1 R_ARM = 73 R_ARM_ALU_SB_G2 R_ARM = 74 R_ARM_LDR_SB_G0 R_ARM = 75 R_ARM_LDR_SB_G1 R_ARM = 76 R_ARM_LDR_SB_G2 R_ARM = 77 R_ARM_LDRS_SB_G0 R_ARM = 78 R_ARM_LDRS_SB_G1 R_ARM = 79 R_ARM_LDRS_SB_G2 R_ARM = 80 R_ARM_LDC_SB_G0 R_ARM = 81 R_ARM_LDC_SB_G1 R_ARM = 82 R_ARM_LDC_SB_G2 R_ARM = 83 R_ARM_MOVW_BREL_NC R_ARM = 84 R_ARM_MOVT_BREL R_ARM = 85 R_ARM_MOVW_BREL R_ARM = 86 R_ARM_THM_MOVW_BREL_NC R_ARM = 87 R_ARM_THM_MOVT_BREL R_ARM = 88 R_ARM_THM_MOVW_BREL R_ARM = 89 R_ARM_TLS_GOTDESC R_ARM = 90 R_ARM_TLS_CALL R_ARM = 91 R_ARM_TLS_DESCSEQ R_ARM = 92 R_ARM_THM_TLS_CALL R_ARM = 93 R_ARM_PLT32_ABS R_ARM = 94 R_ARM_GOT_ABS R_ARM = 95 R_ARM_GOT_PREL R_ARM = 96 R_ARM_GOT_BREL12 R_ARM = 97 R_ARM_GOTOFF12 R_ARM = 98 R_ARM_GOTRELAX R_ARM = 99 R_ARM_GNU_VTENTRY R_ARM = 100 R_ARM_GNU_VTINHERIT R_ARM = 101 R_ARM_THM_JUMP11 R_ARM = 102 R_ARM_THM_JUMP8 R_ARM = 103 R_ARM_TLS_GD32 R_ARM = 104 R_ARM_TLS_LDM32 R_ARM = 105 R_ARM_TLS_LDO32 R_ARM = 106 R_ARM_TLS_IE32 R_ARM = 107 R_ARM_TLS_LE32 R_ARM = 108 R_ARM_TLS_LDO12 R_ARM = 109 R_ARM_TLS_LE12 R_ARM = 110 R_ARM_TLS_IE12GP R_ARM = 111 R_ARM_PRIVATE_0 R_ARM = 112 R_ARM_PRIVATE_1 R_ARM = 113 R_ARM_PRIVATE_2 R_ARM = 114 R_ARM_PRIVATE_3 R_ARM = 115 R_ARM_PRIVATE_4 R_ARM = 116 R_ARM_PRIVATE_5 R_ARM = 117 R_ARM_PRIVATE_6 R_ARM = 118 R_ARM_PRIVATE_7 R_ARM = 119 R_ARM_PRIVATE_8 R_ARM = 120 R_ARM_PRIVATE_9 R_ARM = 121 R_ARM_PRIVATE_10 R_ARM = 122 R_ARM_PRIVATE_11 R_ARM = 123 R_ARM_PRIVATE_12 R_ARM = 124 R_ARM_PRIVATE_13 R_ARM = 125 R_ARM_PRIVATE_14 R_ARM = 126 R_ARM_PRIVATE_15 R_ARM = 127 R_ARM_ME_TOO R_ARM = 128 R_ARM_THM_TLS_DESCSEQ16 R_ARM = 129 R_ARM_THM_TLS_DESCSEQ32 R_ARM = 130 R_ARM_THM_GOT_BREL12 R_ARM = 131 R_ARM_THM_ALU_ABS_G0_NC R_ARM = 132 R_ARM_THM_ALU_ABS_G1_NC R_ARM = 133 R_ARM_THM_ALU_ABS_G2_NC R_ARM = 134 R_ARM_THM_ALU_ABS_G3 R_ARM = 135 R_ARM_IRELATIVE R_ARM = 160 R_ARM_RXPC25 R_ARM = 249 R_ARM_RSBREL32 R_ARM = 250 R_ARM_THM_RPC22 R_ARM = 251 R_ARM_RREL32 R_ARM = 252 R_ARM_RABS32 R_ARM = 253 R_ARM_RPC24 R_ARM = 254 R_ARM_RBASE R_ARM = 255 )
type R_LARCH ¶ added in v1.19.0
type R_LARCH int
LoongArchのための再配置タイプ。
const ( R_LARCH_NONE R_LARCH = 0 R_LARCH_32 R_LARCH = 1 R_LARCH_64 R_LARCH = 2 R_LARCH_RELATIVE R_LARCH = 3 R_LARCH_COPY R_LARCH = 4 R_LARCH_JUMP_SLOT R_LARCH = 5 R_LARCH_TLS_DTPMOD32 R_LARCH = 6 R_LARCH_TLS_DTPMOD64 R_LARCH = 7 R_LARCH_TLS_DTPREL32 R_LARCH = 8 R_LARCH_TLS_DTPREL64 R_LARCH = 9 R_LARCH_TLS_TPREL32 R_LARCH = 10 R_LARCH_TLS_TPREL64 R_LARCH = 11 R_LARCH_IRELATIVE R_LARCH = 12 R_LARCH_MARK_LA R_LARCH = 20 R_LARCH_MARK_PCREL R_LARCH = 21 R_LARCH_SOP_PUSH_PCREL R_LARCH = 22 R_LARCH_SOP_PUSH_ABSOLUTE R_LARCH = 23 R_LARCH_SOP_PUSH_DUP R_LARCH = 24 R_LARCH_SOP_PUSH_GPREL R_LARCH = 25 R_LARCH_SOP_PUSH_TLS_TPREL R_LARCH = 26 R_LARCH_SOP_PUSH_TLS_GOT R_LARCH = 27 R_LARCH_SOP_PUSH_TLS_GD R_LARCH = 28 R_LARCH_SOP_PUSH_PLT_PCREL R_LARCH = 29 R_LARCH_SOP_ASSERT R_LARCH = 30 R_LARCH_SOP_NOT R_LARCH = 31 R_LARCH_SOP_SUB R_LARCH = 32 R_LARCH_SOP_SL R_LARCH = 33 R_LARCH_SOP_SR R_LARCH = 34 R_LARCH_SOP_ADD R_LARCH = 35 R_LARCH_SOP_AND R_LARCH = 36 R_LARCH_SOP_IF_ELSE R_LARCH = 37 R_LARCH_SOP_POP_32_S_10_5 R_LARCH = 38 R_LARCH_SOP_POP_32_U_10_12 R_LARCH = 39 R_LARCH_SOP_POP_32_S_10_12 R_LARCH = 40 R_LARCH_SOP_POP_32_S_10_16 R_LARCH = 41 R_LARCH_SOP_POP_32_S_10_16_S2 R_LARCH = 42 R_LARCH_SOP_POP_32_S_5_20 R_LARCH = 43 R_LARCH_SOP_POP_32_S_0_5_10_16_S2 R_LARCH = 44 R_LARCH_SOP_POP_32_S_0_10_10_16_S2 R_LARCH = 45 R_LARCH_SOP_POP_32_U R_LARCH = 46 R_LARCH_ADD8 R_LARCH = 47 R_LARCH_ADD16 R_LARCH = 48 R_LARCH_ADD24 R_LARCH = 49 R_LARCH_ADD32 R_LARCH = 50 R_LARCH_ADD64 R_LARCH = 51 R_LARCH_SUB8 R_LARCH = 52 R_LARCH_SUB16 R_LARCH = 53 R_LARCH_SUB24 R_LARCH = 54 R_LARCH_SUB32 R_LARCH = 55 R_LARCH_SUB64 R_LARCH = 56 R_LARCH_GNU_VTINHERIT R_LARCH = 57 R_LARCH_GNU_VTENTRY R_LARCH = 58 R_LARCH_B16 R_LARCH = 64 R_LARCH_B21 R_LARCH = 65 R_LARCH_B26 R_LARCH = 66 R_LARCH_ABS_HI20 R_LARCH = 67 R_LARCH_ABS_LO12 R_LARCH = 68 R_LARCH_ABS64_LO20 R_LARCH = 69 R_LARCH_ABS64_HI12 R_LARCH = 70 R_LARCH_PCALA_HI20 R_LARCH = 71 R_LARCH_PCALA_LO12 R_LARCH = 72 R_LARCH_PCALA64_LO20 R_LARCH = 73 R_LARCH_PCALA64_HI12 R_LARCH = 74 R_LARCH_GOT_PC_HI20 R_LARCH = 75 R_LARCH_GOT_PC_LO12 R_LARCH = 76 R_LARCH_GOT64_PC_LO20 R_LARCH = 77 R_LARCH_GOT64_PC_HI12 R_LARCH = 78 R_LARCH_GOT_HI20 R_LARCH = 79 R_LARCH_GOT_LO12 R_LARCH = 80 R_LARCH_GOT64_LO20 R_LARCH = 81 R_LARCH_GOT64_HI12 R_LARCH = 82 R_LARCH_TLS_LE_HI20 R_LARCH = 83 R_LARCH_TLS_LE_LO12 R_LARCH = 84 R_LARCH_TLS_LE64_LO20 R_LARCH = 85 R_LARCH_TLS_LE64_HI12 R_LARCH = 86 R_LARCH_TLS_IE_PC_HI20 R_LARCH = 87 R_LARCH_TLS_IE_PC_LO12 R_LARCH = 88 R_LARCH_TLS_IE64_PC_LO20 R_LARCH = 89 R_LARCH_TLS_IE64_PC_HI12 R_LARCH = 90 R_LARCH_TLS_IE_HI20 R_LARCH = 91 R_LARCH_TLS_IE_LO12 R_LARCH = 92 R_LARCH_TLS_IE64_LO20 R_LARCH = 93 R_LARCH_TLS_IE64_HI12 R_LARCH = 94 R_LARCH_TLS_LD_PC_HI20 R_LARCH = 95 R_LARCH_TLS_LD_HI20 R_LARCH = 96 R_LARCH_TLS_GD_PC_HI20 R_LARCH = 97 R_LARCH_TLS_GD_HI20 R_LARCH = 98 R_LARCH_32_PCREL R_LARCH = 99 R_LARCH_RELAX R_LARCH = 100 R_LARCH_DELETE R_LARCH = 101 R_LARCH_ALIGN R_LARCH = 102 R_LARCH_PCREL20_S2 R_LARCH = 103 R_LARCH_CFA R_LARCH = 104 R_LARCH_ADD6 R_LARCH = 105 R_LARCH_SUB6 R_LARCH = 106 R_LARCH_ADD_ULEB128 R_LARCH = 107 R_LARCH_SUB_ULEB128 R_LARCH = 108 R_LARCH_64_PCREL R_LARCH = 109 )
type R_MIPS ¶ added in v1.6.0
type R_MIPS int
MIPSのための再配置タイプ。
const ( R_MIPS_NONE R_MIPS = 0 R_MIPS_16 R_MIPS = 1 R_MIPS_32 R_MIPS = 2 R_MIPS_REL32 R_MIPS = 3 R_MIPS_26 R_MIPS = 4 R_MIPS_HI16 R_MIPS = 5 R_MIPS_LO16 R_MIPS = 6 R_MIPS_GPREL16 R_MIPS = 7 R_MIPS_LITERAL R_MIPS = 8 R_MIPS_GOT16 R_MIPS = 9 R_MIPS_PC16 R_MIPS = 10 R_MIPS_CALL16 R_MIPS = 11 R_MIPS_GPREL32 R_MIPS = 12 R_MIPS_SHIFT5 R_MIPS = 16 R_MIPS_SHIFT6 R_MIPS = 17 R_MIPS_64 R_MIPS = 18 R_MIPS_GOT_DISP R_MIPS = 19 R_MIPS_GOT_PAGE R_MIPS = 20 R_MIPS_GOT_OFST R_MIPS = 21 R_MIPS_GOT_HI16 R_MIPS = 22 R_MIPS_GOT_LO16 R_MIPS = 23 R_MIPS_SUB R_MIPS = 24 R_MIPS_INSERT_A R_MIPS = 25 R_MIPS_INSERT_B R_MIPS = 26 R_MIPS_DELETE R_MIPS = 27 R_MIPS_HIGHER R_MIPS = 28 R_MIPS_HIGHEST R_MIPS = 29 R_MIPS_CALL_HI16 R_MIPS = 30 R_MIPS_CALL_LO16 R_MIPS = 31 R_MIPS_SCN_DISP R_MIPS = 32 R_MIPS_REL16 R_MIPS = 33 R_MIPS_ADD_IMMEDIATE R_MIPS = 34 R_MIPS_PJUMP R_MIPS = 35 R_MIPS_RELGOT R_MIPS = 36 R_MIPS_JALR R_MIPS = 37 R_MIPS_TLS_DTPMOD32 R_MIPS = 38 R_MIPS_TLS_DTPREL32 R_MIPS = 39 R_MIPS_TLS_DTPMOD64 R_MIPS = 40 R_MIPS_TLS_DTPREL64 R_MIPS = 41 R_MIPS_TLS_GD R_MIPS = 42 R_MIPS_TLS_LDM R_MIPS = 43 R_MIPS_TLS_DTPREL_HI16 R_MIPS = 44 R_MIPS_TLS_DTPREL_LO16 R_MIPS = 45 R_MIPS_TLS_GOTTPREL R_MIPS = 46 R_MIPS_TLS_TPREL32 R_MIPS = 47 R_MIPS_TLS_TPREL64 R_MIPS = 48 R_MIPS_TLS_TPREL_HI16 R_MIPS = 49 R_MIPS_TLS_TPREL_LO16 R_MIPS = 50 R_MIPS_PC32 R_MIPS = 248 )
type R_PPC ¶
type R_PPC int
PowerPCのための再配置タイプ。
R_PPCとR_PPC64の両方で共有される値は、 ELF標準ではR_POWERPC_というプレフィックスが付けられています。R_PPCタイプの場合、関連する 共有再配置はR_PPC_というプレフィックスで改名されています。 元の名前は値の後のコメントに続きます。
const ( R_PPC_NONE R_PPC = 0 R_PPC_ADDR32 R_PPC = 1 R_PPC_ADDR24 R_PPC = 2 R_PPC_ADDR16 R_PPC = 3 R_PPC_ADDR16_LO R_PPC = 4 R_PPC_ADDR16_HI R_PPC = 5 R_PPC_ADDR16_HA R_PPC = 6 R_PPC_ADDR14 R_PPC = 7 R_PPC_ADDR14_BRTAKEN R_PPC = 8 R_PPC_ADDR14_BRNTAKEN R_PPC = 9 R_PPC_REL24 R_PPC = 10 R_PPC_REL14 R_PPC = 11 R_PPC_REL14_BRTAKEN R_PPC = 12 R_PPC_REL14_BRNTAKEN R_PPC = 13 R_PPC_GOT16 R_PPC = 14 R_PPC_GOT16_LO R_PPC = 15 R_PPC_GOT16_HI R_PPC = 16 R_PPC_GOT16_HA R_PPC = 17 R_PPC_PLTREL24 R_PPC = 18 R_PPC_COPY R_PPC = 19 R_PPC_GLOB_DAT R_PPC = 20 R_PPC_JMP_SLOT R_PPC = 21 R_PPC_RELATIVE R_PPC = 22 R_PPC_LOCAL24PC R_PPC = 23 R_PPC_UADDR32 R_PPC = 24 R_PPC_UADDR16 R_PPC = 25 R_PPC_REL32 R_PPC = 26 R_PPC_PLT32 R_PPC = 27 R_PPC_PLTREL32 R_PPC = 28 R_PPC_PLT16_LO R_PPC = 29 R_PPC_PLT16_HI R_PPC = 30 R_PPC_PLT16_HA R_PPC = 31 R_PPC_SDAREL16 R_PPC = 32 R_PPC_SECTOFF R_PPC = 33 R_PPC_SECTOFF_LO R_PPC = 34 R_PPC_SECTOFF_HI R_PPC = 35 R_PPC_SECTOFF_HA R_PPC = 36 R_PPC_TLS R_PPC = 67 R_PPC_DTPMOD32 R_PPC = 68 R_PPC_TPREL16 R_PPC = 69 R_PPC_TPREL16_LO R_PPC = 70 R_PPC_TPREL16_HI R_PPC = 71 R_PPC_TPREL16_HA R_PPC = 72 R_PPC_TPREL32 R_PPC = 73 R_PPC_DTPREL16 R_PPC = 74 R_PPC_DTPREL16_LO R_PPC = 75 R_PPC_DTPREL16_HI R_PPC = 76 R_PPC_DTPREL16_HA R_PPC = 77 R_PPC_DTPREL32 R_PPC = 78 R_PPC_GOT_TLSGD16 R_PPC = 79 R_PPC_GOT_TLSGD16_LO R_PPC = 80 R_PPC_GOT_TLSGD16_HI R_PPC = 81 R_PPC_GOT_TLSGD16_HA R_PPC = 82 R_PPC_GOT_TLSLD16 R_PPC = 83 R_PPC_GOT_TLSLD16_LO R_PPC = 84 R_PPC_GOT_TLSLD16_HI R_PPC = 85 R_PPC_GOT_TLSLD16_HA R_PPC = 86 R_PPC_GOT_TPREL16 R_PPC = 87 R_PPC_GOT_TPREL16_LO R_PPC = 88 R_PPC_GOT_TPREL16_HI R_PPC = 89 R_PPC_GOT_TPREL16_HA R_PPC = 90 R_PPC_EMB_NADDR32 R_PPC = 101 R_PPC_EMB_NADDR16 R_PPC = 102 R_PPC_EMB_NADDR16_LO R_PPC = 103 R_PPC_EMB_NADDR16_HI R_PPC = 104 R_PPC_EMB_NADDR16_HA R_PPC = 105 R_PPC_EMB_SDAI16 R_PPC = 106 R_PPC_EMB_SDA2I16 R_PPC = 107 R_PPC_EMB_SDA2REL R_PPC = 108 R_PPC_EMB_SDA21 R_PPC = 109 R_PPC_EMB_MRKREF R_PPC = 110 R_PPC_EMB_RELSEC16 R_PPC = 111 R_PPC_EMB_RELST_LO R_PPC = 112 R_PPC_EMB_RELST_HI R_PPC = 113 R_PPC_EMB_RELST_HA R_PPC = 114 R_PPC_EMB_BIT_FLD R_PPC = 115 R_PPC_EMB_RELSDA R_PPC = 116 )
type R_PPC64 ¶ added in v1.5.0
type R_PPC64 int
64ビットPowerPCまたはPower Architectureプロセッサのための再配置タイプ。
R_PPCとR_PPC64の両方で共有される値は、 ELF標準ではR_POWERPC_というプレフィックスが付けられています。R_PPC64タイプの場合、関連する 共有再配置はR_PPC64_というプレフィックスで改名されています。 元の名前は値の後のコメントに続きます。
const ( R_PPC64_NONE R_PPC64 = 0 R_PPC64_ADDR32 R_PPC64 = 1 R_PPC64_ADDR24 R_PPC64 = 2 R_PPC64_ADDR16 R_PPC64 = 3 R_PPC64_ADDR16_LO R_PPC64 = 4 R_PPC64_ADDR16_HI R_PPC64 = 5 R_PPC64_ADDR16_HA R_PPC64 = 6 R_PPC64_ADDR14 R_PPC64 = 7 R_PPC64_ADDR14_BRTAKEN R_PPC64 = 8 R_PPC64_ADDR14_BRNTAKEN R_PPC64 = 9 R_PPC64_REL24 R_PPC64 = 10 R_PPC64_REL14 R_PPC64 = 11 R_PPC64_REL14_BRTAKEN R_PPC64 = 12 R_PPC64_REL14_BRNTAKEN R_PPC64 = 13 R_PPC64_GOT16 R_PPC64 = 14 R_PPC64_GOT16_LO R_PPC64 = 15 R_PPC64_GOT16_HI R_PPC64 = 16 R_PPC64_GOT16_HA R_PPC64 = 17 R_PPC64_COPY R_PPC64 = 19 R_PPC64_GLOB_DAT R_PPC64 = 20 R_PPC64_JMP_SLOT R_PPC64 = 21 R_PPC64_RELATIVE R_PPC64 = 22 R_PPC64_UADDR32 R_PPC64 = 24 R_PPC64_UADDR16 R_PPC64 = 25 R_PPC64_REL32 R_PPC64 = 26 R_PPC64_PLT32 R_PPC64 = 27 R_PPC64_PLTREL32 R_PPC64 = 28 R_PPC64_PLT16_LO R_PPC64 = 29 R_PPC64_PLT16_HI R_PPC64 = 30 R_PPC64_PLT16_HA R_PPC64 = 31 R_PPC64_SECTOFF R_PPC64 = 33 R_PPC64_SECTOFF_LO R_PPC64 = 34 R_PPC64_SECTOFF_HI R_PPC64 = 35 R_PPC64_SECTOFF_HA R_PPC64 = 36 R_PPC64_REL30 R_PPC64 = 37 R_PPC64_ADDR64 R_PPC64 = 38 R_PPC64_ADDR16_HIGHER R_PPC64 = 39 R_PPC64_ADDR16_HIGHERA R_PPC64 = 40 R_PPC64_ADDR16_HIGHEST R_PPC64 = 41 R_PPC64_ADDR16_HIGHESTA R_PPC64 = 42 R_PPC64_UADDR64 R_PPC64 = 43 R_PPC64_REL64 R_PPC64 = 44 R_PPC64_PLT64 R_PPC64 = 45 R_PPC64_PLTREL64 R_PPC64 = 46 R_PPC64_TOC16 R_PPC64 = 47 R_PPC64_TOC16_LO R_PPC64 = 48 R_PPC64_TOC16_HI R_PPC64 = 49 R_PPC64_TOC16_HA R_PPC64 = 50 R_PPC64_TOC R_PPC64 = 51 R_PPC64_PLTGOT16 R_PPC64 = 52 R_PPC64_PLTGOT16_LO R_PPC64 = 53 R_PPC64_PLTGOT16_HI R_PPC64 = 54 R_PPC64_PLTGOT16_HA R_PPC64 = 55 R_PPC64_ADDR16_DS R_PPC64 = 56 R_PPC64_ADDR16_LO_DS R_PPC64 = 57 R_PPC64_GOT16_DS R_PPC64 = 58 R_PPC64_GOT16_LO_DS R_PPC64 = 59 R_PPC64_PLT16_LO_DS R_PPC64 = 60 R_PPC64_SECTOFF_DS R_PPC64 = 61 R_PPC64_SECTOFF_LO_DS R_PPC64 = 62 R_PPC64_TOC16_DS R_PPC64 = 63 R_PPC64_TOC16_LO_DS R_PPC64 = 64 R_PPC64_PLTGOT16_DS R_PPC64 = 65 R_PPC64_PLTGOT_LO_DS R_PPC64 = 66 R_PPC64_TLS R_PPC64 = 67 R_PPC64_DTPMOD64 R_PPC64 = 68 R_PPC64_TPREL16 R_PPC64 = 69 R_PPC64_TPREL16_LO R_PPC64 = 70 R_PPC64_TPREL16_HI R_PPC64 = 71 R_PPC64_TPREL16_HA R_PPC64 = 72 R_PPC64_TPREL64 R_PPC64 = 73 R_PPC64_DTPREL16 R_PPC64 = 74 R_PPC64_DTPREL16_LO R_PPC64 = 75 R_PPC64_DTPREL16_HI R_PPC64 = 76 R_PPC64_DTPREL16_HA R_PPC64 = 77 R_PPC64_DTPREL64 R_PPC64 = 78 R_PPC64_GOT_TLSGD16 R_PPC64 = 79 R_PPC64_GOT_TLSGD16_LO R_PPC64 = 80 R_PPC64_GOT_TLSGD16_HI R_PPC64 = 81 R_PPC64_GOT_TLSGD16_HA R_PPC64 = 82 R_PPC64_GOT_TLSLD16 R_PPC64 = 83 R_PPC64_GOT_TLSLD16_LO R_PPC64 = 84 R_PPC64_GOT_TLSLD16_HI R_PPC64 = 85 R_PPC64_GOT_TLSLD16_HA R_PPC64 = 86 R_PPC64_GOT_TPREL16_DS R_PPC64 = 87 R_PPC64_GOT_TPREL16_LO_DS R_PPC64 = 88 R_PPC64_GOT_TPREL16_HI R_PPC64 = 89 R_PPC64_GOT_TPREL16_HA R_PPC64 = 90 R_PPC64_GOT_DTPREL16_DS R_PPC64 = 91 R_PPC64_GOT_DTPREL16_LO_DS R_PPC64 = 92 R_PPC64_GOT_DTPREL16_HI R_PPC64 = 93 R_PPC64_GOT_DTPREL16_HA R_PPC64 = 94 R_PPC64_TPREL16_DS R_PPC64 = 95 R_PPC64_TPREL16_LO_DS R_PPC64 = 96 R_PPC64_TPREL16_HIGHER R_PPC64 = 97 R_PPC64_TPREL16_HIGHERA R_PPC64 = 98 R_PPC64_TPREL16_HIGHEST R_PPC64 = 99 R_PPC64_TPREL16_HIGHESTA R_PPC64 = 100 R_PPC64_DTPREL16_DS R_PPC64 = 101 R_PPC64_DTPREL16_LO_DS R_PPC64 = 102 R_PPC64_DTPREL16_HIGHER R_PPC64 = 103 R_PPC64_DTPREL16_HIGHERA R_PPC64 = 104 R_PPC64_DTPREL16_HIGHEST R_PPC64 = 105 R_PPC64_DTPREL16_HIGHESTA R_PPC64 = 106 R_PPC64_TLSGD R_PPC64 = 107 R_PPC64_TLSLD R_PPC64 = 108 R_PPC64_TOCSAVE R_PPC64 = 109 R_PPC64_ADDR16_HIGH R_PPC64 = 110 R_PPC64_ADDR16_HIGHA R_PPC64 = 111 R_PPC64_TPREL16_HIGH R_PPC64 = 112 R_PPC64_TPREL16_HIGHA R_PPC64 = 113 R_PPC64_DTPREL16_HIGH R_PPC64 = 114 R_PPC64_DTPREL16_HIGHA R_PPC64 = 115 R_PPC64_REL24_NOTOC R_PPC64 = 116 R_PPC64_ADDR64_LOCAL R_PPC64 = 117 R_PPC64_ENTRY R_PPC64 = 118 R_PPC64_PLTSEQ R_PPC64 = 119 R_PPC64_PLTCALL R_PPC64 = 120 R_PPC64_PLTSEQ_NOTOC R_PPC64 = 121 R_PPC64_PLTCALL_NOTOC R_PPC64 = 122 R_PPC64_PCREL_OPT R_PPC64 = 123 R_PPC64_REL24_P9NOTOC R_PPC64 = 124 R_PPC64_D34 R_PPC64 = 128 R_PPC64_D34_LO R_PPC64 = 129 R_PPC64_D34_HI30 R_PPC64 = 130 R_PPC64_D34_HA30 R_PPC64 = 131 R_PPC64_PCREL34 R_PPC64 = 132 R_PPC64_GOT_PCREL34 R_PPC64 = 133 R_PPC64_PLT_PCREL34 R_PPC64 = 134 R_PPC64_PLT_PCREL34_NOTOC R_PPC64 = 135 R_PPC64_ADDR16_HIGHER34 R_PPC64 = 136 R_PPC64_ADDR16_HIGHERA34 R_PPC64 = 137 R_PPC64_ADDR16_HIGHEST34 R_PPC64 = 138 R_PPC64_ADDR16_HIGHESTA34 R_PPC64 = 139 R_PPC64_REL16_HIGHER34 R_PPC64 = 140 R_PPC64_REL16_HIGHERA34 R_PPC64 = 141 R_PPC64_REL16_HIGHEST34 R_PPC64 = 142 R_PPC64_REL16_HIGHESTA34 R_PPC64 = 143 R_PPC64_D28 R_PPC64 = 144 R_PPC64_PCREL28 R_PPC64 = 145 R_PPC64_TPREL34 R_PPC64 = 146 R_PPC64_DTPREL34 R_PPC64 = 147 R_PPC64_GOT_TLSGD_PCREL34 R_PPC64 = 148 R_PPC64_GOT_TLSLD_PCREL34 R_PPC64 = 149 R_PPC64_GOT_TPREL_PCREL34 R_PPC64 = 150 R_PPC64_GOT_DTPREL_PCREL34 R_PPC64 = 151 R_PPC64_REL16_HIGH R_PPC64 = 240 R_PPC64_REL16_HIGHA R_PPC64 = 241 R_PPC64_REL16_HIGHER R_PPC64 = 242 R_PPC64_REL16_HIGHERA R_PPC64 = 243 R_PPC64_REL16_HIGHEST R_PPC64 = 244 R_PPC64_REL16_HIGHESTA R_PPC64 = 245 R_PPC64_REL16DX_HA R_PPC64 = 246 R_PPC64_JMP_IREL R_PPC64 = 247 R_PPC64_IRELATIVE R_PPC64 = 248 R_PPC64_REL16 R_PPC64 = 249 R_PPC64_REL16_LO R_PPC64 = 250 R_PPC64_REL16_HI R_PPC64 = 251 R_PPC64_REL16_HA R_PPC64 = 252 R_PPC64_GNU_VTINHERIT R_PPC64 = 253 R_PPC64_GNU_VTENTRY R_PPC64 = 254 )
type R_RISCV ¶ added in v1.11.0
type R_RISCV int
RISC-Vプロセッサのための再配置タイプ。
const ( R_RISCV_NONE R_RISCV = 0 R_RISCV_32 R_RISCV = 1 R_RISCV_64 R_RISCV = 2 R_RISCV_RELATIVE R_RISCV = 3 R_RISCV_COPY R_RISCV = 4 R_RISCV_JUMP_SLOT R_RISCV = 5 R_RISCV_TLS_DTPMOD32 R_RISCV = 6 R_RISCV_TLS_DTPMOD64 R_RISCV = 7 R_RISCV_TLS_DTPREL32 R_RISCV = 8 R_RISCV_TLS_DTPREL64 R_RISCV = 9 R_RISCV_TLS_TPREL32 R_RISCV = 10 R_RISCV_TLS_TPREL64 R_RISCV = 11 R_RISCV_BRANCH R_RISCV = 16 R_RISCV_JAL R_RISCV = 17 R_RISCV_CALL R_RISCV = 18 R_RISCV_CALL_PLT R_RISCV = 19 R_RISCV_GOT_HI20 R_RISCV = 20 R_RISCV_TLS_GOT_HI20 R_RISCV = 21 R_RISCV_TLS_GD_HI20 R_RISCV = 22 R_RISCV_PCREL_HI20 R_RISCV = 23 R_RISCV_PCREL_LO12_I R_RISCV = 24 R_RISCV_PCREL_LO12_S R_RISCV = 25 R_RISCV_HI20 R_RISCV = 26 R_RISCV_LO12_I R_RISCV = 27 R_RISCV_LO12_S R_RISCV = 28 R_RISCV_TPREL_HI20 R_RISCV = 29 R_RISCV_TPREL_LO12_I R_RISCV = 30 R_RISCV_TPREL_LO12_S R_RISCV = 31 R_RISCV_TPREL_ADD R_RISCV = 32 R_RISCV_ADD8 R_RISCV = 33 R_RISCV_ADD16 R_RISCV = 34 R_RISCV_ADD32 R_RISCV = 35 R_RISCV_ADD64 R_RISCV = 36 R_RISCV_SUB8 R_RISCV = 37 R_RISCV_SUB16 R_RISCV = 38 R_RISCV_SUB32 R_RISCV = 39 R_RISCV_SUB64 R_RISCV = 40 R_RISCV_GNU_VTINHERIT R_RISCV = 41 R_RISCV_GNU_VTENTRY R_RISCV = 42 R_RISCV_ALIGN R_RISCV = 43 R_RISCV_RVC_BRANCH R_RISCV = 44 R_RISCV_RVC_JUMP R_RISCV = 45 R_RISCV_RVC_LUI R_RISCV = 46 R_RISCV_GPREL_I R_RISCV = 47 R_RISCV_GPREL_S R_RISCV = 48 R_RISCV_TPREL_I R_RISCV = 49 R_RISCV_TPREL_S R_RISCV = 50 R_RISCV_RELAX R_RISCV = 51 R_RISCV_SUB6 R_RISCV = 52 R_RISCV_SET6 R_RISCV = 53 R_RISCV_SET8 R_RISCV = 54 R_RISCV_SET16 R_RISCV = 55 R_RISCV_SET32 R_RISCV = 56 R_RISCV_32_PCREL R_RISCV = 57 )
type R_SPARC ¶
type R_SPARC int
SPARCのための再配置タイプ。
const ( R_SPARC_NONE R_SPARC = 0 R_SPARC_8 R_SPARC = 1 R_SPARC_16 R_SPARC = 2 R_SPARC_32 R_SPARC = 3 R_SPARC_DISP8 R_SPARC = 4 R_SPARC_DISP16 R_SPARC = 5 R_SPARC_DISP32 R_SPARC = 6 R_SPARC_WDISP30 R_SPARC = 7 R_SPARC_WDISP22 R_SPARC = 8 R_SPARC_HI22 R_SPARC = 9 R_SPARC_22 R_SPARC = 10 R_SPARC_13 R_SPARC = 11 R_SPARC_LO10 R_SPARC = 12 R_SPARC_GOT10 R_SPARC = 13 R_SPARC_GOT13 R_SPARC = 14 R_SPARC_GOT22 R_SPARC = 15 R_SPARC_PC10 R_SPARC = 16 R_SPARC_PC22 R_SPARC = 17 R_SPARC_WPLT30 R_SPARC = 18 R_SPARC_COPY R_SPARC = 19 R_SPARC_GLOB_DAT R_SPARC = 20 R_SPARC_JMP_SLOT R_SPARC = 21 R_SPARC_RELATIVE R_SPARC = 22 R_SPARC_UA32 R_SPARC = 23 R_SPARC_PLT32 R_SPARC = 24 R_SPARC_HIPLT22 R_SPARC = 25 R_SPARC_LOPLT10 R_SPARC = 26 R_SPARC_PCPLT32 R_SPARC = 27 R_SPARC_PCPLT22 R_SPARC = 28 R_SPARC_PCPLT10 R_SPARC = 29 R_SPARC_10 R_SPARC = 30 R_SPARC_11 R_SPARC = 31 R_SPARC_64 R_SPARC = 32 R_SPARC_OLO10 R_SPARC = 33 R_SPARC_HH22 R_SPARC = 34 R_SPARC_HM10 R_SPARC = 35 R_SPARC_LM22 R_SPARC = 36 R_SPARC_PC_HH22 R_SPARC = 37 R_SPARC_PC_HM10 R_SPARC = 38 R_SPARC_PC_LM22 R_SPARC = 39 R_SPARC_WDISP16 R_SPARC = 40 R_SPARC_WDISP19 R_SPARC = 41 R_SPARC_GLOB_JMP R_SPARC = 42 R_SPARC_7 R_SPARC = 43 R_SPARC_5 R_SPARC = 44 R_SPARC_6 R_SPARC = 45 R_SPARC_DISP64 R_SPARC = 46 R_SPARC_PLT64 R_SPARC = 47 R_SPARC_HIX22 R_SPARC = 48 R_SPARC_LOX10 R_SPARC = 49 R_SPARC_H44 R_SPARC = 50 R_SPARC_M44 R_SPARC = 51 R_SPARC_L44 R_SPARC = 52 R_SPARC_REGISTER R_SPARC = 53 R_SPARC_UA64 R_SPARC = 54 R_SPARC_UA16 R_SPARC = 55 )
type R_X86_64 ¶
type R_X86_64 int
x86-64のための再配置タイプ。
const ( R_X86_64_NONE R_X86_64 = 0 R_X86_64_64 R_X86_64 = 1 R_X86_64_PC32 R_X86_64 = 2 R_X86_64_GOT32 R_X86_64 = 3 R_X86_64_PLT32 R_X86_64 = 4 R_X86_64_COPY R_X86_64 = 5 R_X86_64_GLOB_DAT R_X86_64 = 6 R_X86_64_JMP_SLOT R_X86_64 = 7 R_X86_64_RELATIVE R_X86_64 = 8 R_X86_64_GOTPCREL R_X86_64 = 9 R_X86_64_32 R_X86_64 = 10 R_X86_64_32S R_X86_64 = 11 R_X86_64_16 R_X86_64 = 12 R_X86_64_PC16 R_X86_64 = 13 R_X86_64_8 R_X86_64 = 14 R_X86_64_PC8 R_X86_64 = 15 R_X86_64_DTPMOD64 R_X86_64 = 16 R_X86_64_DTPOFF64 R_X86_64 = 17 R_X86_64_TPOFF64 R_X86_64 = 18 R_X86_64_TLSGD R_X86_64 = 19 R_X86_64_TLSLD R_X86_64 = 20 R_X86_64_DTPOFF32 R_X86_64 = 21 R_X86_64_GOTTPOFF R_X86_64 = 22 R_X86_64_TPOFF32 R_X86_64 = 23 R_X86_64_PC64 R_X86_64 = 24 R_X86_64_GOTOFF64 R_X86_64 = 25 R_X86_64_GOTPC32 R_X86_64 = 26 R_X86_64_GOT64 R_X86_64 = 27 R_X86_64_GOTPCREL64 R_X86_64 = 28 R_X86_64_GOTPC64 R_X86_64 = 29 R_X86_64_GOTPLT64 R_X86_64 = 30 R_X86_64_PLTOFF64 R_X86_64 = 31 R_X86_64_SIZE32 R_X86_64 = 32 R_X86_64_SIZE64 R_X86_64 = 33 R_X86_64_GOTPC32_TLSDESC R_X86_64 = 34 R_X86_64_TLSDESC_CALL R_X86_64 = 35 R_X86_64_TLSDESC R_X86_64 = 36 R_X86_64_IRELATIVE R_X86_64 = 37 R_X86_64_RELATIVE64 R_X86_64 = 38 R_X86_64_PC32_BND R_X86_64 = 39 R_X86_64_PLT32_BND R_X86_64 = 40 R_X86_64_GOTPCRELX R_X86_64 = 41 R_X86_64_REX_GOTPCRELX R_X86_64 = 42 )
type Section ¶
type Section struct {
SectionHeader
// ReadAtメソッドのためにReaderAtを埋め込みます。
// ReadとSeekを避けるために、SectionReaderを直接埋め込まないでください。
// クライアントがReadとSeekを使用したい場合は、
// 他のクライアントとのシークオフセットの競合を避けるために
// Open()を使用する必要があります。
//
// セクションがランダムアクセス形式で簡単に利用できない場合、
// ReaderAtはnilになる可能性があります。例えば、圧縮されたセクションは
// ReaderAtがnilになるかもしれません。
io.ReaderAt
// contains filtered or unexported fields
}
Sectionは、ELFファイル内の単一のセクションを表します。
func (*Section) Data ¶
DataはELFセクションの内容を読み取り、返します。 セクションがELFファイル内で圧縮されて保存されていても、 Dataは非圧縮データを返します。
SHT_NOBITS セクションの場合、Dataは常に非nilのエラーを返します。
func (*Section) Open ¶
func (s *Section) Open() io.ReadSeeker
Openは、ELFセクションを読み取る新しいReadSeekerを返します。 セクションがELFファイル内で圧縮されて保存されていても、 ReadSeekerは非圧縮データを読み取ります。
SHT_NOBITS セクションの場合、開いたリーダーへのすべての呼び出しは 非nilのエラーを返します。
type Section32 ¶
type Section32 struct {
Name uint32
Type uint32
Flags uint32
Addr uint32
Off uint32
Size uint32
Link uint32
Info uint32
Addralign uint32
Entsize uint32
}
ELF32 セクションヘッダー。
type Section64 ¶
type Section64 struct {
Name uint32
Type uint32
Flags uint64
Addr uint64
Off uint64
Size uint64
Link uint32
Info uint32
Addralign uint64
Entsize uint64
}
ELF64 セクションヘッダー。
type SectionFlag ¶
type SectionFlag uint32
セクションのフラグ。
const ( SHF_WRITE SectionFlag = 0x1 SHF_ALLOC SectionFlag = 0x2 SHF_EXECINSTR SectionFlag = 0x4 SHF_MERGE SectionFlag = 0x10 SHF_STRINGS SectionFlag = 0x20 SHF_INFO_LINK SectionFlag = 0x40 SHF_LINK_ORDER SectionFlag = 0x80 SHF_OS_NONCONFORMING SectionFlag = 0x100 SHF_GROUP SectionFlag = 0x200 SHF_TLS SectionFlag = 0x400 SHF_COMPRESSED SectionFlag = 0x800 SHF_MASKOS SectionFlag = 0x0ff00000 SHF_MASKPROC SectionFlag = 0xf0000000 )
func (SectionFlag) GoString ¶
func (i SectionFlag) GoString() string
func (SectionFlag) String ¶
func (i SectionFlag) String() string
type SectionHeader ¶
type SectionHeader struct {
Name string
Type SectionType
Flags SectionFlag
Addr uint64
Offset uint64
Size uint64
Link uint32
Info uint32
Addralign uint64
Entsize uint64
// FileSizeは、ファイル内のこのセクションのサイズをバイト単位で表します。
// セクションが圧縮されている場合、FileSizeは圧縮データのサイズであり、
// Size(上記)は非圧縮データのサイズです。
FileSize uint64
}
SectionHeaderは単一のELFセクションヘッダーを表します。
type SectionIndex ¶
type SectionIndex int
特別なセクションインデックス。
const ( SHN_UNDEF SectionIndex = 0 SHN_LORESERVE SectionIndex = 0xff00 SHN_LOPROC SectionIndex = 0xff00 SHN_HIPROC SectionIndex = 0xff1f SHN_LOOS SectionIndex = 0xff20 SHN_HIOS SectionIndex = 0xff3f SHN_ABS SectionIndex = 0xfff1 SHN_COMMON SectionIndex = 0xfff2 SHN_XINDEX SectionIndex = 0xffff SHN_HIRESERVE SectionIndex = 0xffff )
func (SectionIndex) GoString ¶
func (i SectionIndex) GoString() string
func (SectionIndex) String ¶
func (i SectionIndex) String() string
type SectionType ¶
type SectionType uint32
セクションのタイプ。
const ( SHT_NULL SectionType = 0 SHT_PROGBITS SectionType = 1 SHT_SYMTAB SectionType = 2 SHT_STRTAB SectionType = 3 SHT_RELA SectionType = 4 SHT_HASH SectionType = 5 SHT_DYNAMIC SectionType = 6 SHT_NOTE SectionType = 7 SHT_NOBITS SectionType = 8 SHT_REL SectionType = 9 SHT_SHLIB SectionType = 10 SHT_DYNSYM SectionType = 11 SHT_INIT_ARRAY SectionType = 14 SHT_FINI_ARRAY SectionType = 15 SHT_PREINIT_ARRAY SectionType = 16 SHT_GROUP SectionType = 17 SHT_SYMTAB_SHNDX SectionType = 18 SHT_LOOS SectionType = 0x60000000 SHT_GNU_ATTRIBUTES SectionType = 0x6ffffff5 SHT_GNU_HASH SectionType = 0x6ffffff6 SHT_GNU_LIBLIST SectionType = 0x6ffffff7 SHT_GNU_VERDEF SectionType = 0x6ffffffd SHT_GNU_VERNEED SectionType = 0x6ffffffe SHT_GNU_VERSYM SectionType = 0x6fffffff SHT_HIOS SectionType = 0x6fffffff SHT_LOPROC SectionType = 0x70000000 SHT_RISCV_ATTRIBUTES SectionType = 0x70000003 SHT_MIPS_ABIFLAGS SectionType = 0x7000002a SHT_HIPROC SectionType = 0x7fffffff SHT_LOUSER SectionType = 0x80000000 SHT_HIUSER SectionType = 0xffffffff )
func (SectionType) GoString ¶
func (i SectionType) GoString() string
func (SectionType) String ¶
func (i SectionType) String() string
type SymType ¶
type SymType int
Symbol type - ELFNN_ST_TYPE - st_info
const ( STT_NOTYPE SymType = 0 STT_OBJECT SymType = 1 STT_FUNC SymType = 2 STT_SECTION SymType = 3 STT_FILE SymType = 4 STT_COMMON SymType = 5 STT_TLS SymType = 6 STT_LOOS SymType = 10 STT_HIOS SymType = 12 STT_LOPROC SymType = 13 STT_HIPROC SymType = 15 /* Non-standard symbol types. */ STT_RELC SymType = 8 STT_SRELC SymType = 9 STT_GNU_IFUNC SymType = 10 )
type SymVis ¶
type SymVis int
Symbol visibility - ELFNN_ST_VISIBILITY - st_other
func ST_VISIBILITY ¶
type Symbol ¶
type Symbol struct {
Name string
Info, Other byte
// HasVersion reports whether the symbol has any version information.
// This will only be true for the dynamic symbol table.
HasVersion bool
// VersionIndex is the symbol's version index.
// Use the methods of the [VersionIndex] type to access it.
// This field is only meaningful if HasVersion is true.
VersionIndex VersionIndex
Section SectionIndex
Value, Size uint64
// これらのフィールドは動的シンボルテーブルでのみ存在します。
Version string
Library string
}
Symbolは、ELFシンボルテーブルセクションのエントリを表します。
type VersionIndex ¶ added in v1.25.0
type VersionIndex uint16
VersionIndexは Symbol のバージョンインデックスの型です。
func (VersionIndex) Index ¶ added in v1.25.0
func (vi VersionIndex) Index() uint16
Indexはバージョンインデックスを返します。 この値が0の場合、シンボルはローカルであり、 外部から見えないことを意味します。 この値が1の場合、シンボルはベースバージョンにあり、 特定のバージョンを持たないことを意味します。File.DynamicVersions によって返される スライス内の [DynamicVersion.Index] と一致する場合もしないかもしれません。 その他の値は、File.DynamicVersions によって返される スライス内の [DynamicVersion.Index]、 または File.DynamicVersionNeeds によって返される スライスの要素の Needs フィールド内の [DynamicVersionDep.Index] のいずれかと一致します。 一般的に、定義されたシンボルは DynamicVersions を参照するインデックスを持ち、 未定義のシンボルは DynamicVersionNeeds 内のいずれかのバージョンを参照する インデックスを持ちます。
func (VersionIndex) IsHidden ¶ added in v1.25.0
func (vi VersionIndex) IsHidden() bool
IsHiddenは、シンボルがバージョン内で隠されているかどうかを報告します。 これは、正確なバージョンを指定することによってのみシンボルが見えることを意味します。