class SymbolizableObjectFile

Declaration

class SymbolizableObjectFile : public SymbolizableModule { /* full declaration omitted */ };

Declared at: llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h:31

Inherits from: SymbolizableModule

Member Variables

private const object::ObjectFile* Module
private std::unique_ptr<DIContext> DebugInfoContext
private bool UntagAddresses
private std::vector<SymbolDesc> Symbols
private std::vector<std::pair<uint32_t, StringRef>> FileSymbols

Method Overview

  • private SymbolizableObjectFile(const object::ObjectFile * Obj, std::unique_ptr<DIContext> DICtx, bool UntagAddresses)
  • private llvm::Error addCoffExportSymbols(const object::COFFObjectFile * CoffObj)
  • private llvm::Error addSymbol(const object::SymbolRef & Symbol, uint64_t SymbolSize, llvm::DataExtractor * OpdExtractor = nullptr, uint64_t OpdAddress = 0)
  • public static Expected<std::unique_ptr<SymbolizableObjectFile>> create(const object::ObjectFile * Obj, std::unique_ptr<DIContext> DICtx, bool UntagAddresses)
  • public uint64_t getModulePreferredBase() const
  • private uint64_t getModuleSectionIndexForAddress(uint64_t Address) const
  • private bool getNameFromSymbolTable(uint64_t Address, std::string & Name, uint64_t & Addr, uint64_t & Size, std::string & FileName) const
  • public bool isWin32Module() const
  • private bool shouldOverrideWithSymbolTable(llvm::symbolize::FunctionNameKind FNKind, bool UseSymbolTable) const
  • public llvm::DILineInfo symbolizeCode(object::SectionedAddress ModuleOffset, llvm::DILineInfoSpecifier LineInfoSpecifier, bool UseSymbolTable) const
  • public llvm::DIGlobal symbolizeData(object::SectionedAddress ModuleOffset) const
  • public std::vector<DILocal> symbolizeFrame(object::SectionedAddress ModuleOffset) const
  • public llvm::DIInliningInfo symbolizeInlinedCode(object::SectionedAddress ModuleOffset, llvm::DILineInfoSpecifier LineInfoSpecifier, bool UseSymbolTable) const

Inherited from SymbolizableModule:

Methods

SymbolizableObjectFile(
    const object::ObjectFile* Obj,
    std::unique_ptr<DIContext> DICtx,
    bool UntagAddresses)

Declared at: llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h:94

Parameters

const object::ObjectFile* Obj
std::unique_ptr<DIContext> DICtx
bool UntagAddresses

llvm::Error addCoffExportSymbols(
    const object::COFFObjectFile* CoffObj)

Declared at: llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h:66

Parameters

const object::COFFObjectFile* CoffObj

llvm::Error addSymbol(
    const object::SymbolRef& Symbol,
    uint64_t SymbolSize,
    llvm::DataExtractor* OpdExtractor = nullptr,
    uint64_t OpdAddress = 0)

Declared at: llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h:63

Parameters

const object::SymbolRef& Symbol
uint64_t SymbolSize
llvm::DataExtractor* OpdExtractor = nullptr
uint64_t OpdAddress = 0

static Expected<
    std::unique_ptr<SymbolizableObjectFile>>
create(const object::ObjectFile* Obj,
       std::unique_ptr<DIContext> DICtx,
       bool UntagAddresses)

Declared at: llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h:34

Parameters

const object::ObjectFile* Obj
std::unique_ptr<DIContext> DICtx
bool UntagAddresses

uint64_t getModulePreferredBase() const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h:52

uint64_t getModuleSectionIndexForAddress(
    uint64_t Address) const

Description

Search for the first occurence of specified Address in ObjectFile.

Declared at: llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h:69

Parameters

uint64_t Address

bool getNameFromSymbolTable(
    uint64_t Address,
    std::string& Name,
    uint64_t& Addr,
    uint64_t& Size,
    std::string& FileName) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h:58

Parameters

uint64_t Address
std::string& Name
uint64_t& Addr
uint64_t& Size
std::string& FileName

bool isWin32Module() const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h:48

bool shouldOverrideWithSymbolTable(
    llvm::symbolize::FunctionNameKind FNKind,
    bool UseSymbolTable) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h:55

Parameters

llvm::symbolize::FunctionNameKind FNKind
bool UseSymbolTable

llvm::DILineInfo symbolizeCode(
    object::SectionedAddress ModuleOffset,
    llvm::DILineInfoSpecifier LineInfoSpecifier,
    bool UseSymbolTable) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h:37

Parameters

object::SectionedAddress ModuleOffset
llvm::DILineInfoSpecifier LineInfoSpecifier
bool UseSymbolTable

llvm::DIGlobal symbolizeData(
    object::SectionedAddress ModuleOffset) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h:43

Parameters

object::SectionedAddress ModuleOffset

std::vector<DILocal> symbolizeFrame(
    object::SectionedAddress ModuleOffset) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h:45

Parameters

object::SectionedAddress ModuleOffset

llvm::DIInliningInfo symbolizeInlinedCode(
    object::SectionedAddress ModuleOffset,
    llvm::DILineInfoSpecifier LineInfoSpecifier,
    bool UseSymbolTable) const

Declared at: llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h:40

Parameters

object::SectionedAddress ModuleOffset
llvm::DILineInfoSpecifier LineInfoSpecifier
bool UseSymbolTable