class TypeDumpVisitor

Declaration

class TypeDumpVisitor : public TypeVisitorCallbacks { /* full declaration omitted */ };

Description

Dumper for CodeView type streams found in COFF object files and PDB files.

Declared at: llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h:28

Inherits from: TypeVisitorCallbacks

Member Variables

private llvm::ScopedPrinter* W
private bool PrintRecordBytes = false
private llvm::codeview::TypeCollection& TpiTypes
private llvm::codeview::TypeCollection* IpiTypes = nullptr

Method Overview

  • public TypeDumpVisitor(llvm::codeview::TypeCollection & TpiTypes, llvm::ScopedPrinter * W, bool PrintRecordBytes)
  • private llvm::codeview::TypeCollection & getSourceTypes() const
  • public void printItemIndex(llvm::StringRef FieldName, llvm::codeview::TypeIndex TI) const
  • private void printMemberAttributes(llvm::codeview::MemberAttributes Attrs)
  • private void printMemberAttributes(llvm::codeview::MemberAccess Access, llvm::codeview::MethodKind Kind, llvm::codeview::MethodOptions Options)
  • public void printTypeIndex(llvm::StringRef FieldName, llvm::codeview::TypeIndex TI) const
  • public void setIpiTypes(llvm::codeview::TypeCollection & Types)
  • public llvm::Error visitMemberBegin(llvm::codeview::CVMemberRecord & Record)
  • public llvm::Error visitMemberEnd(llvm::codeview::CVMemberRecord & Record)
  • public llvm::Error visitTypeBegin(llvm::codeview::CVType & Record)
  • public llvm::Error visitTypeBegin(llvm::codeview::CVType & Record, llvm::codeview::TypeIndex Index)
  • public llvm::Error visitTypeEnd(llvm::codeview::CVType & Record)
  • public llvm::Error visitUnknownMember(llvm::codeview::CVMemberRecord & Record)
  • public llvm::Error visitUnknownType(llvm::codeview::CVType & Record)

Inherited from TypeVisitorCallbacks:

Methods

TypeDumpVisitor(
    llvm::codeview::TypeCollection& TpiTypes,
    llvm::ScopedPrinter* W,
    bool PrintRecordBytes)

Declared at: llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h:30

Parameters

llvm::codeview::TypeCollection& TpiTypes
llvm::ScopedPrinter* W
bool PrintRecordBytes

llvm::codeview::TypeCollection& getSourceTypes()
    const

Description

Get the database of indices for the stream that we are dumping. If ItemDB is set, then we must be dumping an item (IPI) stream. This will also always get the appropriate DB for printing item names.

Declared at: llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h:72

void printItemIndex(
    llvm::StringRef FieldName,
    llvm::codeview::TypeIndex TI) const

Declared at: llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h:42

Parameters

llvm::StringRef FieldName
llvm::codeview::TypeIndex TI

void printMemberAttributes(
    llvm::codeview::MemberAttributes Attrs)

Declared at: llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h:65

Parameters

llvm::codeview::MemberAttributes Attrs

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

Declared at: llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h:66

Parameters

llvm::codeview::MemberAccess Access
llvm::codeview::MethodKind Kind
llvm::codeview::MethodOptions Options

void printTypeIndex(
    llvm::StringRef FieldName,
    llvm::codeview::TypeIndex TI) const

Declared at: llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h:40

Parameters

llvm::StringRef FieldName
llvm::codeview::TypeIndex TI

void setIpiTypes(
    llvm::codeview::TypeCollection& Types)

Description

When dumping types from an IPI stream in a PDB, a type index may refer to a type or an item ID. The dumper will lookup the "name" of the index in the item database if appropriate. If ItemDB is null, it will use TypeDB, which is correct when dumping types from an object file (/Z7).

Declared at: llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h:38

Parameters

llvm::codeview::TypeCollection& Types

llvm::Error visitMemberBegin(
    llvm::codeview::CVMemberRecord& Record)

Declared at: llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h:53

Parameters

llvm::codeview::CVMemberRecord& Record

llvm::Error visitMemberEnd(
    llvm::codeview::CVMemberRecord& Record)

Declared at: llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h:54

Parameters

llvm::codeview::CVMemberRecord& Record

llvm::Error visitTypeBegin(
    llvm::codeview::CVType& Record)

Description

Paired begin/end actions for all types. Receives all record data, including the fixed-length record prefix.

Declared at: llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h:50

Parameters

llvm::codeview::CVType& Record

llvm::Error visitTypeBegin(
    llvm::codeview::CVType& Record,
    llvm::codeview::TypeIndex Index)

Declared at: llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h:51

Parameters

llvm::codeview::CVType& Record
llvm::codeview::TypeIndex Index

llvm::Error visitTypeEnd(
    llvm::codeview::CVType& Record)

Declared at: llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h:52

Parameters

llvm::codeview::CVType& Record

llvm::Error visitUnknownMember(
    llvm::codeview::CVMemberRecord& Record)

Declared at: llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h:46

Parameters

llvm::codeview::CVMemberRecord& Record

llvm::Error visitUnknownType(
    llvm::codeview::CVType& Record)

Description

Action to take on unknown types. By default, they are ignored.

Declared at: llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h:45

Parameters

llvm::codeview::CVType& Record