#include "MinimalSymbolDumper.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/DebugInfo/CodeView/CVRecord.h"
#include "llvm/DebugInfo/CodeView/CodeView.h"
#include "llvm/DebugInfo/CodeView/Formatters.h"
#include "llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h"
#include "llvm/DebugInfo/CodeView/SymbolRecord.h"
#include "llvm/DebugInfo/CodeView/TypeRecord.h"
#include "llvm/DebugInfo/PDB/Native/FormatUtil.h"
#include "llvm/DebugInfo/PDB/Native/InputFile.h"
#include "llvm/DebugInfo/PDB/Native/LinePrinter.h"
#include "llvm/DebugInfo/PDB/Native/NativeSession.h"
#include "llvm/DebugInfo/PDB/Native/PDBFile.h"
#include "llvm/DebugInfo/PDB/Native/PDBStringTable.h"
#include "llvm/Object/COFF.h"
#include "llvm/Support/FormatVariadic.h"
usingnamespacellvm;
usingnamespacellvm::codeview;
usingnamespacellvm::pdb;
static std::string formatLocalSymFlags(uint32_t IndentLevel,
LocalSymFlags Flags) { … }
static std::string formatExportFlags(uint32_t IndentLevel, ExportFlags Flags) { … }
static std::string formatCompileSym2Flags(uint32_t IndentLevel,
CompileSym2Flags Flags) { … }
static std::string formatCompileSym3Flags(uint32_t IndentLevel,
CompileSym3Flags Flags) { … }
static std::string formatFrameProcedureOptions(uint32_t IndentLevel,
FrameProcedureOptions FPO) { … }
static std::string formatPublicSymFlags(uint32_t IndentLevel,
PublicSymFlags Flags) { … }
static std::string formatProcSymFlags(uint32_t IndentLevel,
ProcSymFlags Flags) { … }
static std::string formatThunkOrdinal(ThunkOrdinal Ordinal) { … }
static std::string formatTrampolineType(TrampolineType Tramp) { … }
static std::string formatSourceLanguage(SourceLanguage Lang) { … }
static std::string formatMachineType(CPUType Cpu) { … }
static std::string formatCookieKind(FrameCookieKind Kind) { … }
static std::string formatRegisterId(RegisterId Id, CPUType Cpu) { … }
static std::string formatRegisterId(uint16_t Reg16, CPUType Cpu) { … }
static std::string formatRegisterId(ulittle16_t &Reg16, CPUType Cpu) { … }
static std::string formatRange(LocalVariableAddrRange Range) { … }
static std::string formatGaps(uint32_t IndentLevel,
ArrayRef<LocalVariableAddrGap> Gaps) { … }
static std::string formatJumpTableEntrySize(JumpTableEntrySize EntrySize) { … }
Error MinimalSymbolDumper::visitSymbolBegin(codeview::CVSymbol &Record) { … }
Error MinimalSymbolDumper::visitSymbolBegin(codeview::CVSymbol &Record,
uint32_t Offset) { … }
Error MinimalSymbolDumper::visitSymbolEnd(CVSymbol &Record) { … }
std::string MinimalSymbolDumper::typeOrIdIndex(codeview::TypeIndex TI,
bool IsType) const { … }
std::string MinimalSymbolDumper::idIndex(codeview::TypeIndex TI) const { … }
std::string MinimalSymbolDumper::typeIndex(TypeIndex TI) const { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, BlockSym &Block) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, Thunk32Sym &Thunk) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
TrampolineSym &Tramp) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
SectionSym &Section) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, CoffGroupSym &CG) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
BPRelativeSym &BPRel) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
BuildInfoSym &BuildInfo) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
CallSiteInfoSym &CSI) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
EnvBlockSym &EnvBlock) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, FileStaticSym &FS) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, ExportSym &Export) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
Compile2Sym &Compile2) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
Compile3Sym &Compile3) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
ConstantSym &Constant) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, DataSym &Data) { … }
Error MinimalSymbolDumper::visitKnownRecord(
CVSymbol &CVR, DefRangeFramePointerRelFullScopeSym &Def) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
DefRangeFramePointerRelSym &Def) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
DefRangeRegisterRelSym &Def) { … }
Error MinimalSymbolDumper::visitKnownRecord(
CVSymbol &CVR, DefRangeRegisterSym &DefRangeRegister) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
DefRangeSubfieldRegisterSym &Def) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
DefRangeSubfieldSym &Def) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, DefRangeSym &Def) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, FrameCookieSym &FC) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, FrameProcSym &FP) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
HeapAllocationSiteSym &HAS) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, InlineSiteSym &IS) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
RegisterSym &Register) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
PublicSym32 &Public) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, ProcRefSym &PR) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, LabelSym &Label) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, LocalSym &Local) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
ObjNameSym &ObjName) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, ProcSym &Proc) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
ScopeEndSym &ScopeEnd) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, CallerSym &Caller) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
RegRelativeSym &RegRel) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
ThreadLocalDataSym &Data) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, UDTSym &UDT) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
UsingNamespaceSym &UN) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
AnnotationSym &Annot) { … }
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
JumpTableSym &JumpTable) { … }