LLVM 22.0.0git
llvm::logicalview::LVLogicalVisitor Class Referencefinal

#include "llvm/DebugInfo/LogicalView/Readers/LVCodeViewVisitor.h"

Public Member Functions

 LVLogicalVisitor (LVCodeViewReader *Reader, ScopedPrinter &W, llvm::pdb::InputFile &Input)
void setInput (std::shared_ptr< llvm::pdb::InputFile > TypeServer)
void setInput (std::shared_ptr< LazyRandomTypeCollection > PrecompHeader)
void addInlineeInfo (TypeIndex TI, uint32_t LineNumber, StringRef Filename)
void printTypeIndex (StringRef FieldName, TypeIndex TI, uint32_t StreamIdx)
void printMemberAttributes (MemberAttributes Attrs)
void printMemberAttributes (MemberAccess Access, MethodKind Kind, MethodOptions Options)
LVElementcreateElement (TypeLeafKind Kind)
LVElementcreateElement (SymbolKind Kind)
LVElementcreateElement (TypeIndex TI, TypeLeafKind Kind)
Error inlineSiteAnnotation (LVScope *AbstractFunction, LVScope *InlinedFunction, InlineSiteSym &InlineSite)
void pushScope (LVScope *Scope)
void popScope ()
void closeScope ()
void setRoot (LVScope *Root)
void addElement (LVScope *Scope, bool IsCompileUnit)
void addElement (LVSymbol *Symbol)
void addElement (LVType *Type)
std::string getCompileUnitName ()
void setCompileUnitName (std::string Name)
LVElementgetElement (uint32_t StreamIdx, TypeIndex TI, LVScope *Parent=nullptr)
LVSharedgetShared ()
LVScopegetReaderScope () const
void printTypeBegin (CVType &Record, TypeIndex TI, LVElement *Element, uint32_t StreamIdx)
void printTypeEnd (CVType &Record)
void printMemberBegin (CVMemberRecord &Record, TypeIndex TI, LVElement *Element, uint32_t StreamIdx)
void printMemberEnd (CVMemberRecord &Record)
void startProcessArgumentList ()
void stopProcessArgumentList ()
void processFiles ()
void processLines ()
void processNamespaces ()
void printRecords (raw_ostream &OS) const
Error visitUnknownType (CVType &Record, TypeIndex TI)
Error visitKnownRecord (CVType &Record, ArgListRecord &Args, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, ArrayRecord &AT, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, BitFieldRecord &BF, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, BuildInfoRecord &BI, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, ClassRecord &Class, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, EnumRecord &Enum, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, FieldListRecord &FieldList, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, FuncIdRecord &Func, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, LabelRecord &LR, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, ModifierRecord &Mod, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, MemberFuncIdRecord &Id, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, MemberFunctionRecord &MF, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, MethodOverloadListRecord &Overloads, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, PointerRecord &Ptr, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, ProcedureRecord &Proc, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, UnionRecord &Union, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, TypeServer2Record &TS, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, VFTableRecord &VFT, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, VFTableShapeRecord &Shape, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, StringListRecord &Strings, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, StringIdRecord &String, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, UdtSourceLineRecord &SourceLine, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, UdtModSourceLineRecord &ModSourceLine, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, PrecompRecord &Precomp, TypeIndex TI, LVElement *Element)
Error visitKnownRecord (CVType &Record, EndPrecompRecord &EndPrecomp, TypeIndex TI, LVElement *Element)
Error visitUnknownMember (CVMemberRecord &Record, TypeIndex TI)
Error visitKnownMember (CVMemberRecord &Record, BaseClassRecord &Base, TypeIndex TI, LVElement *Element)
Error visitKnownMember (CVMemberRecord &Record, DataMemberRecord &Field, TypeIndex TI, LVElement *Element)
Error visitKnownMember (CVMemberRecord &Record, EnumeratorRecord &Enum, TypeIndex TI, LVElement *Element)
Error visitKnownMember (CVMemberRecord &Record, ListContinuationRecord &Cont, TypeIndex TI, LVElement *Element)
Error visitKnownMember (CVMemberRecord &Record, NestedTypeRecord &Nested, TypeIndex TI, LVElement *Element)
Error visitKnownMember (CVMemberRecord &Record, OneMethodRecord &Method, TypeIndex TI, LVElement *Element)
Error visitKnownMember (CVMemberRecord &Record, OverloadedMethodRecord &Method, TypeIndex TI, LVElement *Element)
Error visitKnownMember (CVMemberRecord &Record, StaticDataMemberRecord &Field, TypeIndex TI, LVElement *Element)
Error visitKnownMember (CVMemberRecord &Record, VFPtrRecord &VFTable, TypeIndex TI, LVElement *Element)
Error visitKnownMember (CVMemberRecord &Record, VirtualBaseClassRecord &Base, TypeIndex TI, LVElement *Element)
template<typename T>
Error visitKnownMember (CVMemberRecord &Record, TypeVisitorCallbacks &Callbacks, TypeIndex TI, LVElement *Element)
template<typename T>
Error visitKnownRecord (CVType &Record, TypeIndex TI, LVElement *Element)
Error visitMemberRecord (CVMemberRecord &Record, TypeVisitorCallbacks &Callbacks, TypeIndex TI, LVElement *Element)
Error finishVisitation (CVType &Record, TypeIndex TI, LVElement *Element)

Public Attributes

LVElementCurrentElement = nullptr
LVScopeCurrentScope = nullptr
LVSymbolCurrentSymbol = nullptr
LVTypeCurrentType = nullptr

Detailed Description

Definition at line 232 of file LVCodeViewVisitor.h.

Constructor & Destructor Documentation

◆ LVLogicalVisitor()

LVLogicalVisitor::LVLogicalVisitor ( LVCodeViewReader * Reader,
ScopedPrinter & W,
llvm::pdb::InputFile & Input )

Definition at line 1729 of file LVCodeViewVisitor.cpp.

Member Function Documentation

◆ addElement() [1/3]

void LVLogicalVisitor::addElement ( LVScope * Scope,
bool IsCompileUnit )

◆ addElement() [2/3]

void LVLogicalVisitor::addElement ( LVSymbol * Symbol)

Definition at line 2969 of file LVCodeViewVisitor.cpp.

◆ addElement() [3/3]

void LVLogicalVisitor::addElement ( LVType * Type)

Definition at line 2973 of file LVCodeViewVisitor.cpp.

◆ addInlineeInfo()

void llvm::logicalview::LVLogicalVisitor::addInlineeInfo ( TypeIndex TI,
uint32_t LineNumber,
StringRef Filename )
inline

Definition at line 302 of file LVCodeViewVisitor.h.

References llvm::logicalview::Filename.

◆ closeScope()

void llvm::logicalview::LVLogicalVisitor::closeScope ( )
inline

Definition at line 331 of file LVCodeViewVisitor.h.

References popScope().

◆ createElement() [1/3]

LVElement * LVLogicalVisitor::createElement ( SymbolKind Kind)

◆ createElement() [2/3]

◆ createElement() [3/3]

◆ finishVisitation()

◆ getCompileUnitName()

std::string llvm::logicalview::LVLogicalVisitor::getCompileUnitName ( )
inline

Definition at line 343 of file LVCodeViewVisitor.h.

◆ getElement()

◆ getReaderScope()

LVScope * llvm::logicalview::LVLogicalVisitor::getReaderScope ( ) const
inline

Definition at line 352 of file LVCodeViewVisitor.h.

◆ getShared()

LVShared * llvm::logicalview::LVLogicalVisitor::getShared ( )
inline

Definition at line 350 of file LVCodeViewVisitor.h.

◆ inlineSiteAnnotation()

◆ popScope()

void llvm::logicalview::LVLogicalVisitor::popScope ( )
inline

Definition at line 326 of file LVCodeViewVisitor.h.

Referenced by addElement(), and closeScope().

◆ printMemberAttributes() [1/2]

void llvm::logicalview::LVLogicalVisitor::printMemberAttributes ( MemberAccess Access,
MethodKind Kind,
MethodOptions Options )

◆ printMemberAttributes() [2/2]

void llvm::logicalview::LVLogicalVisitor::printMemberAttributes ( MemberAttributes Attrs)

◆ printMemberBegin()

◆ printMemberEnd()

◆ printRecords()

◆ printTypeBegin()

◆ printTypeEnd()

◆ printTypeIndex()

◆ processFiles()

void LVLogicalVisitor::processFiles ( )

Definition at line 3390 of file LVCodeViewVisitor.cpp.

◆ processLines()

◆ processNamespaces()

void LVLogicalVisitor::processNamespaces ( )

Definition at line 3385 of file LVCodeViewVisitor.cpp.

◆ pushScope()

void llvm::logicalview::LVLogicalVisitor::pushScope ( LVScope * Scope)
inline

Definition at line 321 of file LVCodeViewVisitor.h.

Referenced by addElement().

◆ setCompileUnitName()

void llvm::logicalview::LVLogicalVisitor::setCompileUnitName ( std::string Name)
inline

Definition at line 344 of file LVCodeViewVisitor.h.

References llvm::logicalview::Name.

◆ setInput() [1/2]

void llvm::logicalview::LVLogicalVisitor::setInput ( std::shared_ptr< LazyRandomTypeCollection > PrecompHeader)
inline

Definition at line 298 of file LVCodeViewVisitor.h.

◆ setInput() [2/2]

void llvm::logicalview::LVLogicalVisitor::setInput ( std::shared_ptr< llvm::pdb::InputFile > TypeServer)
inline

Definition at line 295 of file LVCodeViewVisitor.h.

◆ setRoot()

void llvm::logicalview::LVLogicalVisitor::setRoot ( LVScope * Root)
inline

Definition at line 337 of file LVCodeViewVisitor.h.

◆ startProcessArgumentList()

void llvm::logicalview::LVLogicalVisitor::startProcessArgumentList ( )
inline

Definition at line 361 of file LVCodeViewVisitor.h.

◆ stopProcessArgumentList()

void llvm::logicalview::LVLogicalVisitor::stopProcessArgumentList ( )
inline

Definition at line 362 of file LVCodeViewVisitor.h.

◆ visitKnownMember() [1/11]

◆ visitKnownMember() [2/11]

Error LVLogicalVisitor::visitKnownMember ( CVMemberRecord & Record,
DataMemberRecord & Field,
TypeIndex TI,
LVElement * Element )

◆ visitKnownMember() [3/11]

◆ visitKnownMember() [4/11]

◆ visitKnownMember() [5/11]

◆ visitKnownMember() [6/11]

◆ visitKnownMember() [7/11]

◆ visitKnownMember() [8/11]

Error LVLogicalVisitor::visitKnownMember ( CVMemberRecord & Record,
StaticDataMemberRecord & Field,
TypeIndex TI,
LVElement * Element )

◆ visitKnownMember() [9/11]

template<typename T>
Error llvm::logicalview::LVLogicalVisitor::visitKnownMember ( CVMemberRecord & Record,
TypeVisitorCallbacks & Callbacks,
TypeIndex TI,
LVElement * Element )
inline

Definition at line 445 of file LVCodeViewVisitor.h.

References llvm::Error::success(), T, and visitKnownMember().

◆ visitKnownMember() [10/11]

◆ visitKnownMember() [11/11]

◆ visitKnownRecord() [1/26]

◆ visitKnownRecord() [2/26]

◆ visitKnownRecord() [3/26]

◆ visitKnownRecord() [4/26]

◆ visitKnownRecord() [5/26]

◆ visitKnownRecord() [6/26]

Error LVLogicalVisitor::visitKnownRecord ( CVType & Record,
EndPrecompRecord & EndPrecomp,
TypeIndex TI,
LVElement * Element )

◆ visitKnownRecord() [7/26]

◆ visitKnownRecord() [8/26]

Error LVLogicalVisitor::visitKnownRecord ( CVType & Record,
FieldListRecord & FieldList,
TypeIndex TI,
LVElement * Element )

◆ visitKnownRecord() [9/26]

◆ visitKnownRecord() [10/26]

Error LVLogicalVisitor::visitKnownRecord ( CVType & Record,
LabelRecord & LR,
TypeIndex TI,
LVElement * Element )

◆ visitKnownRecord() [11/26]

◆ visitKnownRecord() [12/26]

◆ visitKnownRecord() [13/26]

◆ visitKnownRecord() [14/26]

◆ visitKnownRecord() [15/26]

◆ visitKnownRecord() [16/26]

◆ visitKnownRecord() [17/26]

◆ visitKnownRecord() [18/26]

Error LVLogicalVisitor::visitKnownRecord ( CVType & Record,
StringIdRecord & String,
TypeIndex TI,
LVElement * Element )

◆ visitKnownRecord() [19/26]

◆ visitKnownRecord() [20/26]

template<typename T>
Error llvm::logicalview::LVLogicalVisitor::visitKnownRecord ( CVType & Record,
TypeIndex TI,
LVElement * Element )
inline

◆ visitKnownRecord() [21/26]

◆ visitKnownRecord() [22/26]

◆ visitKnownRecord() [23/26]

◆ visitKnownRecord() [24/26]

◆ visitKnownRecord() [25/26]

◆ visitKnownRecord() [26/26]

◆ visitMemberRecord()

◆ visitUnknownMember()

Error LVLogicalVisitor::visitUnknownMember ( CVMemberRecord & Record,
TypeIndex TI )

Definition at line 2626 of file LVCodeViewVisitor.cpp.

References LLVM_DEBUG, and llvm::Error::success().

◆ visitUnknownType()

Error LVLogicalVisitor::visitUnknownType ( CVType & Record,
TypeIndex TI )

Member Data Documentation

◆ CurrentElement

LVElement* llvm::logicalview::LVLogicalVisitor::CurrentElement = nullptr

Definition at line 289 of file LVCodeViewVisitor.h.

◆ CurrentScope

LVScope* llvm::logicalview::LVLogicalVisitor::CurrentScope = nullptr

Definition at line 290 of file LVCodeViewVisitor.h.

Referenced by createElement(), and createElement().

◆ CurrentSymbol

LVSymbol* llvm::logicalview::LVLogicalVisitor::CurrentSymbol = nullptr

◆ CurrentType

LVType* llvm::logicalview::LVLogicalVisitor::CurrentType = nullptr

Definition at line 292 of file LVCodeViewVisitor.h.

Referenced by createElement(), createElement(), and visitKnownMember().


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