Imports #
"internal/buildcfg"
"bytes"
"encoding/binary"
"internal/abi"
"cmd/internal/bio"
"encoding/binary"
"errors"
"fmt"
"unsafe"
"internal/buildcfg"
"bytes"
"encoding/binary"
"internal/abi"
"cmd/internal/bio"
"encoding/binary"
"errors"
"fmt"
"unsafe"
Aux Type
const AuxDwarfInfoAux Type
const AuxDwarfLinesAux Type
const AuxDwarfLocAux Type
const AuxDwarfRangesAux Type
const AuxFuncInfoAux Type
const AuxFuncdataAux Type
const AuxGotype = iotaAux Type
const AuxPcdataAux Type
const AuxPcfileAux Type
const AuxPcinlineAux Type
const AuxPclineAux Type
const AuxPcspAux Type
const AuxSehUnwindInfoconst AuxSize = *ast.BinaryExprAux Type
const AuxWasmImportAux Type
const AuxWasmTypeBlocks
const BlkAutolib = iotaBlocks
const BlkAuxBlocks
const BlkAuxIdxBlocks
const BlkDataBlocks
const BlkDataIdxBlocks
const BlkEndBlocks
const BlkFileBlocks
const BlkHashBlocks
const BlkHash64Blocks
const BlkHashed64defBlocks
const BlkHasheddefBlocks
const BlkNonpkgdefBlocks
const BlkNonpkgrefBlocks
const BlkPkgIdxBlocks
const BlkRefFlagsBlocks
const BlkRefNameBlocks
const BlkRelocBlocks
const BlkRelocIdxBlocks
const BlkSymdefconst Hash64Size = 8const HashSize = 16const Magic = "\x00go120ld"Blocks
const NBlkconst ObjFlagFromAssemblyconst ObjFlagShared = *ast.BinaryExprconst ObjFlagStdconst ObjFlagUnlinkablePackage Index.
const PkgIdxBuiltinPackage Index.
const PkgIdxHashedPackage Index.
const PkgIdxHashed64Package Index.
const PkgIdxInvalid = 0Package Index.
const PkgIdxNone = *ast.BinaryExprPackage Index.
const PkgIdxSelfPackage Index.
const PkgIdxSpecial = PkgIdxSelfconst RefFlagsSize = *ast.BinaryExprconst RefNameSize = *ast.BinaryExprconst RelocSize = *ast.BinaryExprconst SymABIstatic = *ast.UnaryExprSym.Flag2
const SymFlagABIWrapperSym.Flag2
const SymFlagDictSym.Flag
const SymFlagDupok = *ast.BinaryExprSym.Flag
const SymFlagGoTypeSym.Flag2
const SymFlagItabSym.Flag
const SymFlagLeafSym.Flag2
const SymFlagLinknameSym.Flag
const SymFlagLocalSym.Flag
const SymFlagNoSplitSym.Flag2
const SymFlagPkgInitSym.Flag
const SymFlagReflectMethodSym.Flag
const SymFlagTypelinkSym.Flag2
const SymFlagUsedInIface = *ast.BinaryExprSym.Flag2
const SymFlagWasmExportconst SymSize = *ast.BinaryExprconst _var builtinMap map[string]intvar builtins = [...]struct{...}{...}Used to construct an artificially large array type when reading an item from the object file relocs section or aux sym section (needs to work on 32-bit as well as 64-bit). See issue 41621.
const huge = *ast.BinaryExprconst importedPkgSize = *ast.BinaryExprconst stringRefSize = 8Aux symbol info. Serialized format: Aux struct { Type uint8 Sym SymRef }
type Aux [AuxSize]byteCUFileIndex is used to index the filenames that are stored in the per-package/per-CU FileList.
type CUFileIndex uint32type FingerprintType [8]byteHash64
type Hash64Type [Hash64Size]byteHash
type HashType [HashSize]byteReferenced symbol flags. Serialized format: RefFlags struct { Sym symRef Flag uint8 Flag2 uint8 }
type RefFlags [RefFlagsSize]byteReferenced symbol name. Serialized format: RefName struct { Sym symRef Name string }
type RefName [RefNameSize]byteRelocation. Serialized format: Reloc struct { Off int32 Siz uint8 Type uint16 Add int64 Sym SymRef }
type Reloc [RelocSize]byteSymbol definition. Serialized format: Sym struct { Name string ABI uint16 Type uint8 Flag uint8 Flag2 uint8 Siz uint32 Align uint32 }
type Sym [SymSize]byteFuncInfo is serialized as a symbol (aux symbol). The symbol data is the binary encoding of the struct below.
type FuncInfo struct {
Args uint32
Locals uint32
FuncID abi.FuncID
FuncFlag abi.FuncFlag
StartLine int32
File []CUFileIndex
InlTree []InlTreeNode
}FuncInfoLengths is a cache containing a roadmap of offsets and lengths for things within a serialized FuncInfo. Each length field stores the number of items (e.g. files, inltree nodes, etc), and the corresponding "off" field stores the byte offset of the start of the items in question.
type FuncInfoLengths struct {
NumFile uint32
FileOff uint32
NumInlTree uint32
InlTreeOff uint32
Initialized bool
}File header. TODO: probably no need to export this.
type Header struct {
Magic string
Fingerprint FingerprintType
Flags uint32
Offsets [NBlk]uint32
}Autolib
type ImportedPkg struct {
Pkg string
Fingerprint FingerprintType
}InlTreeNode is the serialized form of FileInfo.InlTree.
type InlTreeNode struct {
Parent int32
File CUFileIndex
Line int32
Func SymRef
ParentPC int32
}type Reader struct {
b []byte
readonly bool
start uint32
h Header
}Symbol reference.
type SymRef struct {
PkgIdx uint32
SymIdx uint32
}type Writer struct {
wr *bio.Writer
stringMap map[string]uint32
off uint32
b [8]byte
}func (s *Sym) ABI() uint16func (s *Sym) ABIWrapper() boolfunc (r *Reloc) Add() int64func (w *Writer) AddString(s string)func (s *Sym) Align() uint32func (r *Reader) Autolib() []ImportedPkgAux returns a pointer to the j-th aux symbol of the i-th symbol.
func (r *Reader) Aux(i uint32, j int) *AuxAuxOff returns the offset of the j-th aux symbol of the i-th symbol.
func (r *Reader) AuxOff(i uint32, j int) uint32Auxs returns the aux symbols of the i-th symbol.
func (r *Reader) Auxs(i uint32) []AuxBuiltinIdx returns the index of the builtin with the given name and abi, or -1 if it is not a builtin.
func BuiltinIdx(name string, abi int) intBuiltinName returns the name and ABI of the i-th builtin symbol.
func BuiltinName(i int) (string, int)func (w *Writer) Bytes(s []byte)func (r *Reader) BytesAt(off uint32, len int) []byteData returns the i-th symbol's data.
func (r *Reader) Data(i uint32) []byteDataOff returns the offset of the i-th symbol's data.
func (r *Reader) DataOff(i uint32) uint32DataSize returns the size of the i-th symbol's data.
func (r *Reader) DataSize(i uint32) intDataString returns the i-th symbol's data as a string.
func (r *Reader) DataString(i uint32) stringfunc (s *Sym) Dupok() boolfunc (r *Reader) File(i int) stringfunc (r *Reader) Fingerprint() FingerprintTypefunc (r *RefFlags) Flag() uint8func (s *Sym) Flag() uint8func (r *RefFlags) Flag2() uint8func (s *Sym) Flag2() uint8Flags returns the flag bits read from the object file header.
func (r *Reader) Flags() uint32func (r *Reader) FromAssembly() boolHash returns a pointer to the i-th hashed symbol's hash. Note: here i is the index of hashed symbols, not all symbols (unlike other accessors).
func (r *Reader) Hash(i uint32) *HashTypeHash64 returns the i-th short hashed symbol's hash. Note: here i is the index of short hashed symbols, not all symbols (unlike other accessors).
func (r *Reader) Hash64(i uint32) uint64func (s *Sym) IsDict() boolfunc (s *Sym) IsGoType() boolfunc (s *Sym) IsItab() boolfunc (s *Sym) IsLinkname() boolfunc (s *Sym) IsPkgInit() boolfunc (s SymRef) IsZero() boolfunc (fp FingerprintType) IsZero() boolfunc (s *Sym) Leaf() boolfunc (s *Sym) Local() boolNAux returns the number of aux symbols of the i-th symbol.
func (r *Reader) NAux(i uint32) intNBuiltin returns the number of listed builtin symbols.
func NBuiltin() intfunc (r *Reader) NFile() intfunc (r *Reader) NHashed64def() intfunc (r *Reader) NHasheddef() intfunc (r *Reader) NNonpkgdef() intfunc (r *Reader) NNonpkgref() intfunc (r *Reader) NPkg() intNRefFlags returns the number of referenced symbol flags.
func (r *Reader) NRefFlags() intNRefName returns the number of referenced symbol names.
func (r *Reader) NRefName() intNReloc returns the number of relocations of the i-th symbol.
func (r *Reader) NReloc(i uint32) intfunc (r *Reader) NSym() intfunc (s *Sym) Name(r *Reader) stringfunc (n *RefName) Name(r *Reader) stringReturns the length of the name of the symbol.
func (s *Sym) NameLen(r *Reader) intfunc NewReaderFromBytes(b []byte, readonly bool) *Readerfunc NewWriter(wr *bio.Writer) *Writerfunc (s *Sym) NoSplit() boolfunc (r *Reloc) Off() int32func (w *Writer) Offset() uint32func (r *Reader) Pkg(i int) stringfunc (r *Reader) Pkglist() []stringfunc (w *Writer) RawString(s string)func (h *Header) Read(r *Reader) errorRead an InlTreeNode from b, return the remaining bytes.
func (inl *InlTreeNode) Read(b []byte) []bytefunc (*FuncInfo) ReadArgs(b []byte) uint32func (*FuncInfo) ReadFile(b []byte, filesoff uint32, k uint32) CUFileIndexfunc (*FuncInfo) ReadFuncFlag(b []byte) abi.FuncFlagfunc (*FuncInfo) ReadFuncID(b []byte) abi.FuncIDfunc (*FuncInfo) ReadFuncInfoLengths(b []byte) FuncInfoLengthsfunc (*FuncInfo) ReadInlTree(b []byte, inltreeoff uint32, k uint32) InlTreeNodefunc (*FuncInfo) ReadLocals(b []byte) uint32ReadOnly returns whether r.BytesAt returns read-only bytes.
func (r *Reader) ReadOnly() boolfunc (*FuncInfo) ReadStartLine(b []byte) int32RefFlags returns a pointer to the i-th referenced symbol flags. Note: here i is not a local symbol index, just a counter.
func (r *Reader) RefFlags(i int) *RefFlagsRefName returns a pointer to the i-th referenced symbol name. Note: here i is not a local symbol index, just a counter.
func (r *Reader) RefName(i int) *RefNamefunc (s *Sym) ReflectMethod() boolReloc returns a pointer to the j-th relocation of the i-th symbol.
func (r *Reader) Reloc(i uint32, j int) *RelocRelocOff returns the offset of the j-th relocation of the i-th symbol.
func (r *Reader) RelocOff(i uint32, j int) uint32Relocs returns a pointer to the relocations of the i-th symbol.
func (r *Reader) Relocs(i uint32) []Relocfunc (r *Reloc) Set(off int32, size uint8, typ uint16, add int64, sym SymRef)func (s *Sym) SetABI(x uint16)func (r *Reloc) SetAdd(x int64)func (s *Sym) SetAlign(x uint32)func (s *Sym) SetFlag(x uint8)func (r *RefFlags) SetFlag(x uint8)func (s *Sym) SetFlag2(x uint8)func (r *RefFlags) SetFlag2(x uint8)func (n *RefName) SetName(x string, w *Writer)func (s *Sym) SetName(x string, w *Writer)func (r *Reloc) SetOff(x int32)func (r *Reloc) SetSiz(x uint8)func (s *Sym) SetSiz(x uint32)func (r *RefFlags) SetSym(x SymRef)func (a *Aux) SetSym(x SymRef)func (r *Reloc) SetSym(x SymRef)func (n *RefName) SetSym(x SymRef)func (s *Sym) SetType(x uint8)func (a *Aux) SetType(x uint8)func (r *Reloc) SetType(x uint16)func (r *Reader) Shared() boolfunc (r *Reloc) Siz() uint8func (s *Sym) Siz() uint32func (h *Header) Size() intfunc (r *Reader) Std() boolfunc (r *Reader) StringAt(off uint32, len uint32) stringfunc (w *Writer) StringRef(s string)func (r *Reader) StringRef(off uint32) stringSym returns a pointer to the i-th symbol.
func (r *Reader) Sym(i uint32) *Symfunc (a *Aux) Sym() SymReffunc (r *Reloc) Sym() SymReffunc (n *RefName) Sym() SymReffunc (r *RefFlags) Sym() SymRefSymOff returns the offset of the i-th symbol.
func (r *Reader) SymOff(i uint32) uint32func (s *Sym) Type() uint8func (a *Aux) Type() uint8func (r *Reloc) Type() uint16func (s *Sym) Typelink() boolfunc (w *Writer) Uint16(x uint16)func (w *Writer) Uint32(x uint32)func (w *Writer) Uint64(x uint64)func (w *Writer) Uint8(x uint8)func (r *Reader) Unlinkable() boolfunc (s *Sym) UsedInIface() boolfunc (s *Sym) WasmExport() boolfunc (r *RefFlags) Write(w *Writer)func (p *ImportedPkg) Write(w *Writer)func (a *FuncInfo) Write(w *bytes.Buffer)func (a *Aux) Write(w *Writer)func (n *RefName) Write(w *Writer)func (r *Reloc) Write(w *Writer)func (inl *InlTreeNode) Write(w *bytes.Buffer)func (h *Header) Write(w *Writer)func (s *Sym) Write(w *Writer)for testing
func (s *Sym) fromBytes(b []byte)for testing
func (r *Reloc) fromBytes(b []byte)for testing
func (a *Aux) fromBytes(b []byte)func init()func (r *Reader) int32At(off uint32) int32func (r *Reader) int64At(off uint32) int64func (w *Writer) stringOff(s string) uint32func toString(b []byte) stringfunc (r *Reader) uint16At(off uint32) uint16func (r *Reader) uint32At(off uint32) uint32func (r *Reader) uint64At(off uint32) uint64func (r *Reader) uint8At(off uint32) uint8Generated with Arrow