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:
- public getModulePreferredBase
- public isWin32Module
- public symbolizeCode
- public symbolizeData
- public symbolizeFrame
- public symbolizeInlinedCode
Methods
¶SymbolizableObjectFile(
const object::ObjectFile* Obj,
std::unique_ptr<DIContext> DICtx,
bool UntagAddresses)
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)
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)
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)
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
uint64_t getModulePreferredBase() const
Declared at: llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h:52
¶uint64_t getModuleSectionIndexForAddress(
uint64_t Address) const
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
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
bool isWin32Module() const
Declared at: llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h:48
¶bool shouldOverrideWithSymbolTable(
llvm::symbolize::FunctionNameKind FNKind,
bool UseSymbolTable) const
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
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
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
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
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