LLVM: llvm::logicalview::LVBinaryReader Class Reference (original) (raw)

#include "[llvm/DebugInfo/LogicalView/Readers/LVBinaryReader.h](LVBinaryReader%5F8h%5Fsource.html)"

Public Member Functions
LVBinaryReader ()=delete
LVBinaryReader (StringRef Filename, StringRef FileFormatName, ScopedPrinter &W, LVBinaryType BinaryType)
LVBinaryReader (const LVBinaryReader &)=delete
LVBinaryReader & operator= (const LVBinaryReader &)=delete
~LVBinaryReader () override=default
void addInlineeLines (LVScope *Scope, LVLines &Lines)
LVAddress linearAddress (uint16_t Segment, uint32_t Offset, LVAddress Addendum=0)
void addToSymbolTable (StringRef Name, LVScope *Function, LVSectionIndex SectionIndex=0)
void addToSymbolTable (StringRef Name, LVAddress Address, LVSectionIndex SectionIndex, bool IsComdat)
LVSectionIndex updateSymbolTable (LVScope *Function)
const LVSymbolTableEntry & getSymbolTableEntry (StringRef Name)
LVAddress getSymbolTableAddress (StringRef Name)
LVSectionIndex getSymbolTableIndex (StringRef Name)
bool getSymbolTableIsComdat (StringRef Name)
LVSectionIndex getSectionIndex (LVScope *Scope) override
void print (raw_ostream &OS) const
void dump () const
Public Member Functions inherited from llvm::logicalview::LVReader
LVReader ()=delete
LVReader (StringRef InputFilename, StringRef FileFormatName, ScopedPrinter &W, LVBinaryType BinaryType=LVBinaryType::NONE)
LVReader (const LVReader &)=delete
LVReader & operator= (const LVReader &)=delete
virtual ~LVReader ()=default
LVOperation * createOperation (LVSmall OpCode, ArrayRef< LVUnsigned > Operands)
StringRef getFilename (LVObject *Object, size_t Index) const
StringRef getFilename () const
void setFilename (std::string Name)
StringRef getFileFormatName () const
raw_ostream & outputStream ()
bool isBinaryTypeNone () const
bool isBinaryTypeELF () const
bool isBinaryTypeCOFF () const
LVScopeCompileUnit * getCompileUnit () const
void setCompileUnit (LVScope *Scope)
void setCompileUnitCPUType (codeview::CPUType Type)
codeview::CPUType getCompileUnitCPUType ()
LVScopeRoot * getScopesRoot () const
Error doPrint ()
Error doLoad ()
virtual std::string getRegisterName (LVSmall Opcode, ArrayRef< uint64_t > Operands)
LVSectionIndex getDotTextSectionIndex () const
virtual bool isSystemEntry (LVElement *Element, StringRef Name={}) const
LVSplitContext & getSplitContext ()
void notifyAddedElement (LVLine *Line)
void notifyAddedElement (LVScope *Scope)
void notifyAddedElement (LVSymbol *Symbol)
void notifyAddedElement (LVType *Type)
const LVLines & getLines () const
const LVScopes & getScopes () const
const LVSymbols & getSymbols () const
const LVTypes & getTypes () const
bool doPrintLine (const LVLine *Line) const
bool doPrintLocation (const LVLocation *Location) const
bool doPrintScope (const LVScope *Scope) const
bool doPrintSymbol (const LVSymbol *Symbol) const
bool doPrintType (const LVType *Type) const
void print (raw_ostream &OS) const
virtual void printRecords (raw_ostream &OS) const
void dump () const
Protected Member Functions
Error loadGenericTargetInfo (StringRef TheTriple, StringRef TheFeatures, StringRef TheCPU)
virtual void mapRangeAddress (const object::ObjectFile &Obj)
virtual void mapRangeAddress (const object::ObjectFile &Obj, const object::SectionRef &Section, bool IsComdat)
void mapVirtualAddress (const object::ObjectFile &Obj)
void mapVirtualAddress (const object::COFFObjectFile &COFFObj)
Expected< std::pair< LVSectionIndex, object::SectionRef > > getSection (LVScope *Scope, LVAddress Address, LVSectionIndex SectionIndex)
void includeInlineeLines (LVSectionIndex SectionIndex, LVScope *Function)
Error createInstructions ()
Error createInstructions (LVScope *Function, LVSectionIndex SectionIndex)
Error createInstructions (LVScope *Function, LVSectionIndex SectionIndex, const LVNameInfo &NameInfo)
void processLines (LVLines *DebugLines, LVSectionIndex SectionIndex)
void processLines (LVLines *DebugLines, LVSectionIndex SectionIndex, LVScope *Function)
Protected Member Functions inherited from llvm::logicalview::LVReader
void addSectionRange (LVSectionIndex SectionIndex, LVScope *Scope)
void addSectionRange (LVSectionIndex SectionIndex, LVScope *Scope, LVAddress LowerAddress, LVAddress UpperAddress)
LVRange * getSectionRanges (LVSectionIndex SectionIndex)
void addCompileUnitOffset (LVOffset Offset, LVScopeCompileUnit *CompileUnit)
LVElement * createElement (dwarf::Tag Tag)
virtual Error createScopes ()
std::string createAlternativePath (StringRef From)
virtual Error printScopes ()
virtual Error printMatchedElements (bool UseMatchedElements)
virtual void sortScopes ()
Protected Attributes
LVLines CULines
std::unique_ptr< const MCRegisterInfo > MRI
std::unique_ptr< const MCAsmInfo > MAI
std::unique_ptr< const MCSubtargetInfo > STI
std::unique_ptr< const MCInstrInfo > MII
std::unique_ptr< const MCDisassembler > MD
std::unique_ptr< MCContext > MC
std::unique_ptr< MCInstPrinter > MIP
LVAddress WasmCodeSectionOffset = 0
Protected Attributes inherited from llvm::logicalview::LVReader
LVElement * CurrentElement = nullptr
LVScope * CurrentScope = nullptr
LVSymbol * CurrentSymbol = nullptr
LVType * CurrentType = nullptr
LVLine * CurrentLine = nullptr
LVOffset CurrentOffset = 0
std::vector< LVAddressRange > CurrentRanges
LVScopeRoot * Root = nullptr
std::string InputFilename
std::string FileFormatName
ScopedPrinter & W
raw_ostream & OS
LVScopeCompileUnit * CompileUnit = nullptr
LVSectionIndex DotTextSectionIndex = UndefinedSectionIndex

Definition at line 69 of file LVBinaryReader.h.

llvm::logicalview::LVBinaryReader::LVBinaryReader ( ) delete

LVBinaryReader() [2/3]

LVBinaryReader() [3/3]

References LVBinaryReader().

~LVBinaryReader()

llvm::logicalview::LVBinaryReader::~LVBinaryReader ( ) overridedefault

addInlineeLines()

void llvm::logicalview::LVBinaryReader::addInlineeLines ( LVScope * Scope, LVLines & Lines ) inline

addToSymbolTable() [1/2]

addToSymbolTable() [2/2]

createInstructions() [1/3]

Error LVBinaryReader::createInstructions ( ) protected

Definition at line 527 of file LVBinaryReader.cpp.

References llvm::Address, llvm::logicalview::LVReader::CompileUnit, createInstructions(), llvm::dbgs(), llvm::format_decimal(), getSymbolTableIndex(), llvm::logicalview::hexValue(), LLVM_DEBUG, llvm::logicalview::Name, llvm::logicalview::options(), llvm::logicalview::Size, and llvm::Error::success().

Referenced by createInstructions(), createInstructions(), and llvm::logicalview::LVDWARFReader::createScopes().

createInstructions() [2/3]

createInstructions() [3/3]

Definition at line 371 of file LVBinaryReader.cpp.

References llvm::Address, llvm::arrayRefFromStringRef(), assert(), llvm::bad_address, llvm::consumeError(), llvm::createStringError(), llvm::ArrayRef< T >::data(), llvm::dbgs(), llvm::MCDisassembler::Fail, llvm::fmt_align(), llvm::format(), llvm::format_bytes(), llvm::format_decimal(), llvm::formatv(), getSection(), llvm::logicalview::hexValue(), llvm::logicalview::Instructions, llvm::Left, LLVM_DEBUG, MD, MIP, llvm::logicalview::Offset, llvm::outs(), llvm::logicalview::Size, llvm::ArrayRef< T >::size(), llvm::MCDisassembler::SoftFail, STI, llvm::raw_string_ostream::str(), llvm::MCDisassembler::Success, llvm::Error::success(), llvm::Expected< T >::takeError(), and llvm::StringRef::trim().

dump()

void llvm::logicalview::LVBinaryReader::dump ( ) const inline

getSection()

getSectionIndex()

LVSectionIndex llvm::logicalview::LVBinaryReader::getSectionIndex ( LVScope * Scope) inlineoverridevirtual

getSymbolTableAddress()

getSymbolTableEntry()

getSymbolTableIndex()

getSymbolTableIsComdat()

includeInlineeLines()

Definition at line 878 of file LVBinaryReader.cpp.

References addToSymbolTable(), CULines, llvm::dbgs(), llvm::find_if(), llvm::format(), llvm::codeview::Function, llvm::logicalview::LVLine::getAddress(), llvm::logicalview::LVScope::getScopes(), llvm::logicalview::hexValue(), llvm::codeview::InlineeLines, LLVM_DEBUG, and llvm::SmallVectorTemplateBase< T, bool >::push_back().

linearAddress()

loadGenericTargetInfo()

Definition at line 277 of file LVBinaryReader.cpp.

References llvm::Target::createMCAsmInfo(), llvm::Target::createMCDisassembler(), llvm::Target::createMCInstPrinter(), llvm::Target::createMCInstrInfo(), llvm::Target::createMCRegInfo(), llvm::Target::createMCSubtargetInfo(), llvm::createStringError(), llvm::MCAsmInfo::getAssemblerDialect(), llvm::invalid_argument, llvm::TargetRegistry::lookupTarget(), MAI, MC, MD, MII, MIP, MRI, llvm::MCInstPrinter::setPrintImmHex(), STI, and llvm::Error::success().

mapRangeAddress() [1/2]

virtual void llvm::logicalview::LVBinaryReader::mapRangeAddress ( const object::ObjectFile & Obj) inlineprotectedvirtual

mapRangeAddress() [2/2]

mapVirtualAddress() [1/2]

Definition at line 222 of file LVBinaryReader.cpp.

References llvm::consumeError(), llvm::dbgs(), llvm::format_decimal(), llvm::ErrorOr< T >::get(), llvm::object::COFFObjectFile::getCOFFSection(), llvm::object::COFFObjectFile::getImageBase(), llvm::logicalview::hexValue(), llvm::COFF::IMAGE_SCN_CNT_CODE, llvm::COFF::IMAGE_SCN_LNK_COMDAT, LLVM_DEBUG, mapRangeAddress(), llvm::object::ObjectFile::sections(), llvm::Expected< T >::takeError(), and llvm::object::coff_section::VirtualAddress.

mapVirtualAddress() [2/2]

operator=()

References LVBinaryReader().

print()

processLines() [1/2]

Definition at line 775 of file LVBinaryReader.cpp.

References llvm::Address, assert(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::logicalview::LVReader::CompileUnit, llvm::dbgs(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::find_if(), llvm::format_decimal(), llvm::logicalview::hexValue(), LLVM_DEBUG, processLines(), llvm::logicalview::Size, and llvm::SmallVectorTemplateCommon< T, typename >::size().

Referenced by llvm::logicalview::LVDWARFReader::createScopes(), and processLines().

processLines() [2/2]

Definition at line 570 of file LVBinaryReader.cpp.

References llvm::logicalview::LVScope::addElement(), llvm::SmallVectorImpl< T >::append(), assert(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::logicalview::LVReader::CompileUnit, llvm::dbgs(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::logicalview::LVRange::endSearch(), llvm::format(), llvm::format_decimal(), llvm::codeview::Function, llvm::logicalview::LVRange::getEntry(), llvm::logicalview::LVReader::getSectionRanges(), llvm::logicalview::hexValue(), llvm::SmallVectorImpl< T >::insert(), LLVM_DEBUG, llvm::logicalview::options(), llvm::logicalview::patterns(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::logicalview::LVPatterns::resolvePatternMatch(), llvm::SmallVectorTemplateCommon< T, typename >::size(), and llvm::logicalview::LVRange::startSearch().

updateSymbolTable()

CULines

LVLines llvm::logicalview::LVBinaryReader::CULines protected

MAI

std::unique_ptr<const MCAsmInfo> llvm::logicalview::LVBinaryReader::MAI protected

MC

std::unique_ptr<MCContext> llvm::logicalview::LVBinaryReader::MC protected

MD

MII

MIP

std::unique_ptr<MCInstPrinter> llvm::logicalview::LVBinaryReader::MIP protected

MRI

STI

WasmCodeSectionOffset

LVAddress llvm::logicalview::LVBinaryReader::WasmCodeSectionOffset = 0 protected

The documentation for this class was generated from the following files: