147 lines · cpp
1//===- PDBSymDumper.cpp - ---------------------------------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "llvm/DebugInfo/PDB/PDBSymDumper.h"10#include "llvm/Support/ErrorHandling.h"11 12using namespace llvm;13using namespace llvm::pdb;14 15#define PDB_SYMDUMP_UNREACHABLE(Type) \16 if (RequireImpl) \17 llvm_unreachable("Attempt to dump " #Type " with no dump implementation");18 19PDBSymDumper::PDBSymDumper(bool ShouldRequireImpl)20 : RequireImpl(ShouldRequireImpl) {}21 22PDBSymDumper::~PDBSymDumper() = default;23 24void PDBSymDumper::dump(const PDBSymbolAnnotation &Symbol) {25 PDB_SYMDUMP_UNREACHABLE(PDBSymbolAnnotation)26}27 28void PDBSymDumper::dump(const PDBSymbolBlock &Symbol) {29 PDB_SYMDUMP_UNREACHABLE(PDBSymbolBlock)30}31 32void PDBSymDumper::dump(const PDBSymbolCompiland &Symbol) {33 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompiland)34}35 36void PDBSymDumper::dump(const PDBSymbolCompilandDetails &Symbol) {37 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandDetails)38}39 40void PDBSymDumper::dump(const PDBSymbolCompilandEnv &Symbol) {41 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandEnv)42}43 44void PDBSymDumper::dump(const PDBSymbolCustom &Symbol) {45 PDB_SYMDUMP_UNREACHABLE(PDBSymbolCustom)46}47 48void PDBSymDumper::dump(const PDBSymbolData &Symbol) {49 PDB_SYMDUMP_UNREACHABLE(PDBSymbolData)50}51 52void PDBSymDumper::dump(const PDBSymbolExe &Symbol) {53 PDB_SYMDUMP_UNREACHABLE(PDBSymbolExe)54}55 56void PDBSymDumper::dump(const PDBSymbolFunc &Symbol) {57 PDB_SYMDUMP_UNREACHABLE(PDBSymbolFunc)58}59 60void PDBSymDumper::dump(const PDBSymbolFuncDebugEnd &Symbol) {61 PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugEnd)62}63 64void PDBSymDumper::dump(const PDBSymbolFuncDebugStart &Symbol) {65 PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugStart)66}67 68void PDBSymDumper::dump(const PDBSymbolLabel &Symbol) {69 PDB_SYMDUMP_UNREACHABLE(PDBSymbolLabel)70}71 72void PDBSymDumper::dump(const PDBSymbolPublicSymbol &Symbol) {73 PDB_SYMDUMP_UNREACHABLE(PDBSymbolPublicSymbol)74}75 76void PDBSymDumper::dump(const PDBSymbolThunk &Symbol) {77 PDB_SYMDUMP_UNREACHABLE(PDBSymbolThunk)78}79 80void PDBSymDumper::dump(const PDBSymbolTypeArray &Symbol) {81 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeArray)82}83 84void PDBSymDumper::dump(const PDBSymbolTypeBaseClass &Symbol) {85 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBaseClass)86}87 88void PDBSymDumper::dump(const PDBSymbolTypeBuiltin &Symbol) {89 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBuiltin)90}91 92void PDBSymDumper::dump(const PDBSymbolTypeCustom &Symbol) {93 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeCustom)94}95 96void PDBSymDumper::dump(const PDBSymbolTypeDimension &Symbol) {97 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeDimension)98}99 100void PDBSymDumper::dump(const PDBSymbolTypeEnum &Symbol) {101 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeEnum)102}103 104void PDBSymDumper::dump(const PDBSymbolTypeFriend &Symbol) {105 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFriend)106}107 108void PDBSymDumper::dump(const PDBSymbolTypeFunctionArg &Symbol) {109 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionArg)110}111 112void PDBSymDumper::dump(const PDBSymbolTypeFunctionSig &Symbol) {113 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionSig)114}115 116void PDBSymDumper::dump(const PDBSymbolTypeManaged &Symbol) {117 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeManaged)118}119 120void PDBSymDumper::dump(const PDBSymbolTypePointer &Symbol) {121 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypePointer)122}123 124void PDBSymDumper::dump(const PDBSymbolTypeTypedef &Symbol) {125 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeTypedef)126}127 128void PDBSymDumper::dump(const PDBSymbolTypeUDT &Symbol) {129 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeUDT)130}131 132void PDBSymDumper::dump(const PDBSymbolTypeVTable &Symbol) {133 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTable)134}135 136void PDBSymDumper::dump(const PDBSymbolTypeVTableShape &Symbol) {137 PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTableShape)138}139 140void PDBSymDumper::dump(const PDBSymbolUnknown &Symbol) {141 PDB_SYMDUMP_UNREACHABLE(PDBSymbolUnknown)142}143 144void PDBSymDumper::dump(const PDBSymbolUsingNamespace &Symbol) {145 PDB_SYMDUMP_UNREACHABLE(PDBSymbolUsingNamespace)146}147