class RuntimeDyldCheckerImpl

Declaration

class RuntimeDyldCheckerImpl { /* full declaration omitted */ };

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h:16

Member Variables

private llvm::RuntimeDyldCheckerImpl:: IsSymbolValidFunction IsSymbolValid
private llvm::RuntimeDyldCheckerImpl:: GetSymbolInfoFunction GetSymbolInfo
private llvm::RuntimeDyldCheckerImpl:: GetSectionInfoFunction GetSectionInfo
private llvm::RuntimeDyldCheckerImpl::GetStubInfoFunction GetStubInfo
private llvm::RuntimeDyldCheckerImpl::GetGOTInfoFunction GetGOTInfo
private support::endianness Endianness
private llvm::MCDisassembler* Disassembler
private llvm::MCInstPrinter* InstPrinter
private llvm::raw_ostream& ErrStream

Method Overview

  • public RuntimeDyldCheckerImpl(llvm::RuntimeDyldCheckerImpl::IsSymbolValidFunction IsSymbolValid, llvm::RuntimeDyldCheckerImpl::GetSymbolInfoFunction GetSymbolInfo, llvm::RuntimeDyldCheckerImpl::GetSectionInfoFunction GetSectionInfo, llvm::RuntimeDyldCheckerImpl::GetStubInfoFunction GetStubInfo, llvm::RuntimeDyldCheckerImpl::GetGOTInfoFunction GetGOTInfo, support::endianness Endianness, llvm::MCDisassembler * Disassembler, llvm::MCInstPrinter * InstPrinter, llvm::raw_ostream & ErrStream)
  • public bool check(llvm::StringRef CheckExpr) const
  • public bool checkAllRulesInBuffer(llvm::StringRef RulePrefix, llvm::MemoryBuffer * MemBuf) const
  • private std::pair<uint64_t, std::string> getSectionAddr(llvm::StringRef FileName, llvm::StringRef SectionName, bool IsInsideLoad) const
  • private Optional<uint64_t> getSectionLoadAddress(void * LocalAddr) const
  • private std::pair<uint64_t, std::string> getStubOrGOTAddrFor(llvm::StringRef StubContainerName, llvm::StringRef Symbol, bool IsInsideLoad, bool IsStubAddr) const
  • private llvm::StringRef getSymbolContent(llvm::StringRef Symbol) const
  • private uint64_t getSymbolLocalAddr(llvm::StringRef Symbol) const
  • private uint64_t getSymbolRemoteAddr(llvm::StringRef Symbol) const
  • private bool isSymbolValid(llvm::StringRef Symbol) const
  • private Expected<JITSymbolResolver::LookupResult> lookup(const JITSymbolResolver::LookupSet & Symbols) const
  • private uint64_t readMemoryAtAddr(uint64_t Addr, unsigned int Size) const

Methods

RuntimeDyldCheckerImpl(
    llvm::RuntimeDyldCheckerImpl::
        IsSymbolValidFunction IsSymbolValid,
    llvm::RuntimeDyldCheckerImpl::
        GetSymbolInfoFunction GetSymbolInfo,
    llvm::RuntimeDyldCheckerImpl::
        GetSectionInfoFunction GetSectionInfo,
    llvm::RuntimeDyldCheckerImpl::
        GetStubInfoFunction GetStubInfo,
    llvm::RuntimeDyldCheckerImpl::
        GetGOTInfoFunction GetGOTInfo,
    support::endianness Endianness,
    llvm::MCDisassembler* Disassembler,
    llvm::MCInstPrinter* InstPrinter,
    llvm::raw_ostream& ErrStream)

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h:28

Parameters

llvm::RuntimeDyldCheckerImpl:: IsSymbolValidFunction IsSymbolValid
llvm::RuntimeDyldCheckerImpl:: GetSymbolInfoFunction GetSymbolInfo
llvm::RuntimeDyldCheckerImpl:: GetSectionInfoFunction GetSectionInfo
llvm::RuntimeDyldCheckerImpl::GetStubInfoFunction GetStubInfo
llvm::RuntimeDyldCheckerImpl::GetGOTInfoFunction GetGOTInfo
support::endianness Endianness
llvm::MCDisassembler* Disassembler
llvm::MCInstPrinter* InstPrinter
llvm::raw_ostream& ErrStream

bool check(llvm::StringRef CheckExpr) const

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h:35

Parameters

llvm::StringRef CheckExpr

bool checkAllRulesInBuffer(
    llvm::StringRef RulePrefix,
    llvm::MemoryBuffer* MemBuf) const

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h:36

Parameters

llvm::StringRef RulePrefix
llvm::MemoryBuffer* MemBuf

std::pair<uint64_t, std::string> getSectionAddr(
    llvm::StringRef FileName,
    llvm::StringRef SectionName,
    bool IsInsideLoad) const

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h:52

Parameters

llvm::StringRef FileName
llvm::StringRef SectionName
bool IsInsideLoad

Optional<uint64_t> getSectionLoadAddress(
    void* LocalAddr) const

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h:60

Parameters

void* LocalAddr

std::pair<uint64_t, std::string>
getStubOrGOTAddrFor(
    llvm::StringRef StubContainerName,
    llvm::StringRef Symbol,
    bool IsInsideLoad,
    bool IsStubAddr) const

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h:57

Parameters

llvm::StringRef StubContainerName
llvm::StringRef Symbol
bool IsInsideLoad
bool IsStubAddr

llvm::StringRef getSymbolContent(
    llvm::StringRef Symbol) const

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h:50

Parameters

llvm::StringRef Symbol

uint64_t getSymbolLocalAddr(
    llvm::StringRef Symbol) const

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h:46

Parameters

llvm::StringRef Symbol

uint64_t getSymbolRemoteAddr(
    llvm::StringRef Symbol) const

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h:47

Parameters

llvm::StringRef Symbol

bool isSymbolValid(llvm::StringRef Symbol) const

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h:45

Parameters

llvm::StringRef Symbol

Expected<JITSymbolResolver::LookupResult> lookup(
    const JITSymbolResolver::LookupSet& Symbols)
    const

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h:43

Parameters

const JITSymbolResolver::LookupSet& Symbols

uint64_t readMemoryAtAddr(uint64_t Addr,
                          unsigned int Size) const

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h:48

Parameters

uint64_t Addr
unsigned int Size