Documentation ¶
Index ¶
- func CopyFromProcessMemory(pid int, addr uintptr, buf []byte) error
- func FindSymbol(ef *elf.File, symbol string) (*elf.Symbol, error)
- func FindSymbolRegex(ef *elf.File, rawRegexSymbolMatcher string) (*elf.Symbol, error)
- func HasSymbols(ef *elf.File, matches [][]byte) (bool, error)
- func IsSymbolNameInDynamicSymbols(f *elf.File, matches [][]byte) (bool, error)
- func IsSymbolNameInSymbols(f *elf.File, matches [][]byte) (bool, error)
- func ReadStringAtAddress(rs io.ReadSeeker, address, size uint64) (string, error)
- func ScanPathForVersion(path string, rgx *regexp.Regexp) (string, error)
- func ScanReaderForVersion(r io.ReadSeeker, rgx *regexp.Regexp) (string, error)
- func ScanRodataForVersion(r io.ReaderAt, rgx *regexp.Regexp) (string, error)
- type Compiler
- type CompilerInfoManager
- type IOVec
- type Interpreter
- type InterpreterType
- type ProcessMappedFile
- type Runtime
- type RuntimeName
- type VersionSource
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CopyFromProcessMemory ¶ added in v0.30.0
func FindSymbol ¶ added in v0.24.0
FindSymbol finds symbol by name in the given elf file.
func FindSymbolRegex ¶ added in v0.30.0
FindSymbolRegex finds symbol by name in the given elf file using regex.
func IsSymbolNameInDynamicSymbols ¶ added in v0.23.3
ForEachElfSymbolNameInSymbols iterates over the symbols in the dynamic symbol table of the given elf file. It calls the given function for each symbol name. The value is only valid for the iteration, it must not be saved unless copied.
func IsSymbolNameInSymbols ¶ added in v0.23.3
ForEachElfSymbolNameInSymbols iterates over the symbols in the symbol table of the given elf file. It calls the given function for each symbol name. The value is only valid for the iteration, it must not be saved unless copied.
func ReadStringAtAddress ¶ added in v0.24.0
func ReadStringAtAddress(rs io.ReadSeeker, address, size uint64) (string, error)
ReadStringAtAddress reads a null-terminated string from the given address in the given elf file.
func ScanPathForVersion ¶ added in v0.30.0
func ScanReaderForVersion ¶ added in v0.30.0
Types ¶
type CompilerInfoManager ¶ added in v0.28.0
type CompilerInfoManager struct {
// contains filtered or unexported fields
}
CompilerInfoManager is a cache for compiler information. Fetching this information is expensive, so we cache it. The cache is safe for concurrent use. It also controls throughput of fetches.
func NewCompilerInfoManager ¶ added in v0.28.0
func NewCompilerInfoManager(logger log.Logger, reg prometheus.Registerer, objFilePool *objectfile.Pool) *CompilerInfoManager
type Interpreter ¶ added in v0.24.0
type InterpreterType ¶ added in v0.24.0
type InterpreterType uint64
const ( InterpreterNone InterpreterType = iota InterpreterRuby InterpreterPython )
func (InterpreterType) String ¶ added in v0.24.0
func (it InterpreterType) String() string
type ProcessMappedFile ¶ added in v0.30.0
func NewProcessMappedFile ¶ added in v0.30.0
func (ProcessMappedFile) Close ¶ added in v0.30.0
func (pmf ProcessMappedFile) Close() error
func (ProcessMappedFile) FindAddressOf ¶ added in v0.30.0
func (pmf ProcessMappedFile) FindAddressOf(s string) (uint64, error)
func (ProcessMappedFile) VersionFromBSS ¶ added in v0.30.0
func (pmf ProcessMappedFile) VersionFromBSS(rgx *regexp.Regexp) (string, error)
func (ProcessMappedFile) VersionFromRodata ¶ added in v0.30.0
func (pmf ProcessMappedFile) VersionFromRodata(rgx *regexp.Regexp) (string, error)
type Runtime ¶ added in v0.28.0
type Runtime struct { Name RuntimeName Version string VersionSource VersionSource }
type RuntimeName ¶ added in v0.28.0
type RuntimeName string
type VersionSource ¶ added in v0.30.0
type VersionSource string
const ( VersionSourcePath VersionSource = "path" VersionSourceMemory VersionSource = "memory" )