mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-01 15:17:25 +00:00
DebugInfoPDB: Make the symbol base case hold an IPDBSession ref.
Dumping a symbol often requires access to data that isn't inside the symbol hierarchy, but which is only accessible through the top-level session. This patch is a pure interface change to give symbols a reference to the session. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228542 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -36,11 +36,11 @@ class raw_ostream;
|
|||||||
/// https://msdn.microsoft.com/en-us/library/370hs6k4.aspx
|
/// https://msdn.microsoft.com/en-us/library/370hs6k4.aspx
|
||||||
class PDBSymbol {
|
class PDBSymbol {
|
||||||
protected:
|
protected:
|
||||||
PDBSymbol(std::unique_ptr<IPDBRawSymbol> Symbol);
|
PDBSymbol(IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static std::unique_ptr<PDBSymbol>
|
static std::unique_ptr<PDBSymbol>
|
||||||
create(std::unique_ptr<IPDBRawSymbol> Symbol);
|
create(IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol);
|
||||||
|
|
||||||
virtual ~PDBSymbol();
|
virtual ~PDBSymbol();
|
||||||
|
|
||||||
@@ -62,6 +62,7 @@ public:
|
|||||||
std::unique_ptr<IPDBEnumSymbols> findInlineFramesByRVA(uint32_t RVA) const;
|
std::unique_ptr<IPDBEnumSymbols> findInlineFramesByRVA(uint32_t RVA) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
IPDBSession &Session;
|
||||||
const std::unique_ptr<IPDBRawSymbol> RawSymbol;
|
const std::unique_ptr<IPDBRawSymbol> RawSymbol;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolAnnotation : public PDBSymbol {
|
class PDBSymbolAnnotation : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolAnnotation(std::unique_ptr<IPDBRawSymbol> AnnotationSymbol);
|
PDBSymbolAnnotation(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> Symbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolBlock : public PDBSymbol {
|
class PDBSymbolBlock : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolBlock(std::unique_ptr<IPDBRawSymbol> BlockSymbol);
|
PDBSymbolBlock(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> Symbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolCompiland : public PDBSymbol {
|
class PDBSymbolCompiland : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolCompiland(std::unique_ptr<IPDBRawSymbol> CompilandSymbol);
|
PDBSymbolCompiland(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> CompilandSymbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolCompilandDetails : public PDBSymbol {
|
class PDBSymbolCompilandDetails : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolCompilandDetails(std::unique_ptr<IPDBRawSymbol> DetailsSymbol);
|
PDBSymbolCompilandDetails(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> Symbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolCompilandEnv : public PDBSymbol {
|
class PDBSymbolCompilandEnv : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolCompilandEnv(std::unique_ptr<IPDBRawSymbol> CompilandEnvSymbol);
|
PDBSymbolCompilandEnv(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> Symbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,8 @@ class raw_ostream;
|
|||||||
/// https://msdn.microsoft.com/en-us/library/d88sf09h.aspx
|
/// https://msdn.microsoft.com/en-us/library/d88sf09h.aspx
|
||||||
class PDBSymbolCustom : public PDBSymbol {
|
class PDBSymbolCustom : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolCustom(std::unique_ptr<IPDBRawSymbol> CustomSymbol);
|
PDBSymbolCustom(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> CustomSymbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolData : public PDBSymbol {
|
class PDBSymbolData : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolData(std::unique_ptr<IPDBRawSymbol> DataSymbol);
|
PDBSymbolData(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> DataSymbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolExe : public PDBSymbol {
|
class PDBSymbolExe : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolExe(std::unique_ptr<IPDBRawSymbol> ExeSymbol);
|
PDBSymbolExe(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> ExeSymbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolFunc : public PDBSymbol {
|
class PDBSymbolFunc : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolFunc(std::unique_ptr<IPDBRawSymbol> FuncSymbol);
|
PDBSymbolFunc(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> FuncSymbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolFuncDebugEnd : public PDBSymbol {
|
class PDBSymbolFuncDebugEnd : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolFuncDebugEnd(std::unique_ptr<IPDBRawSymbol> FuncDebugEndSymbol);
|
PDBSymbolFuncDebugEnd(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> FuncDebugEndSymbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolFuncDebugStart : public PDBSymbol {
|
class PDBSymbolFuncDebugStart : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolFuncDebugStart(std::unique_ptr<IPDBRawSymbol> FuncDebugStartSymbol);
|
PDBSymbolFuncDebugStart(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> FuncDebugStartSymbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolLabel : public PDBSymbol {
|
class PDBSymbolLabel : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolLabel(std::unique_ptr<IPDBRawSymbol> LabelSymbol);
|
PDBSymbolLabel(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> LabelSymbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolPublicSymbol : public PDBSymbol {
|
class PDBSymbolPublicSymbol : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolPublicSymbol(std::unique_ptr<IPDBRawSymbol> PublicSymbol);
|
PDBSymbolPublicSymbol(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> PublicSymbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolThunk : public PDBSymbol {
|
class PDBSymbolThunk : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolThunk(std::unique_ptr<IPDBRawSymbol> ThunkSymbol);
|
PDBSymbolThunk(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> ThunkSymbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolTypeArray : public PDBSymbol {
|
class PDBSymbolTypeArray : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolTypeArray(std::unique_ptr<IPDBRawSymbol> ArrayTypeSymbol);
|
PDBSymbolTypeArray(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> ArrayTypeSymbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolTypeBaseClass : public PDBSymbol {
|
class PDBSymbolTypeBaseClass : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolTypeBaseClass(std::unique_ptr<IPDBRawSymbol> BaseClassTypeSymbol);
|
PDBSymbolTypeBaseClass(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> Symbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolTypeBuiltin : public PDBSymbol {
|
class PDBSymbolTypeBuiltin : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolTypeBuiltin(std::unique_ptr<IPDBRawSymbol> BuiltinTypeSymbol);
|
PDBSymbolTypeBuiltin(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> Symbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolTypeCustom : public PDBSymbol {
|
class PDBSymbolTypeCustom : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolTypeCustom(std::unique_ptr<IPDBRawSymbol> CustomTypeSymbol);
|
PDBSymbolTypeCustom(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> Symbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolTypeDimension : public PDBSymbol {
|
class PDBSymbolTypeDimension : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolTypeDimension(std::unique_ptr<IPDBRawSymbol> DimensionTypeSymbol);
|
PDBSymbolTypeDimension(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> Symbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolTypeEnum : public PDBSymbol {
|
class PDBSymbolTypeEnum : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolTypeEnum(std::unique_ptr<IPDBRawSymbol> EnumTypeSymbol);
|
PDBSymbolTypeEnum(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> EnumTypeSymbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolTypeFriend : public PDBSymbol {
|
class PDBSymbolTypeFriend : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolTypeFriend(std::unique_ptr<IPDBRawSymbol> FriendTypeSymbol);
|
PDBSymbolTypeFriend(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> Symbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolTypeFunctionArg : public PDBSymbol {
|
class PDBSymbolTypeFunctionArg : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolTypeFunctionArg(std::unique_ptr<IPDBRawSymbol> FuncArgTypeSymbol);
|
PDBSymbolTypeFunctionArg(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> Symbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolTypeFunctionSig : public PDBSymbol {
|
class PDBSymbolTypeFunctionSig : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolTypeFunctionSig(std::unique_ptr<IPDBRawSymbol> FuncSigTypeSymbol);
|
PDBSymbolTypeFunctionSig(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> Symbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolTypeManaged : public PDBSymbol {
|
class PDBSymbolTypeManaged : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolTypeManaged(std::unique_ptr<IPDBRawSymbol> ManagedTypeSymbol);
|
PDBSymbolTypeManaged(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> Symbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolTypePointer : public PDBSymbol {
|
class PDBSymbolTypePointer : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolTypePointer(std::unique_ptr<IPDBRawSymbol> PointerTypeSymbol);
|
PDBSymbolTypePointer(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> Symbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolTypeTypedef : public PDBSymbol {
|
class PDBSymbolTypeTypedef : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolTypeTypedef(std::unique_ptr<IPDBRawSymbol> TypedefSymbol);
|
PDBSymbolTypeTypedef(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> Symbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolTypeUDT : public PDBSymbol {
|
class PDBSymbolTypeUDT : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolTypeUDT(std::unique_ptr<IPDBRawSymbol> UDTSymbol);
|
PDBSymbolTypeUDT(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> UDTSymbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolTypeVTable : public PDBSymbol {
|
class PDBSymbolTypeVTable : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolTypeVTable(std::unique_ptr<IPDBRawSymbol> VtblSymbol);
|
PDBSymbolTypeVTable(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> VtblSymbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolTypeVTableShape : public PDBSymbol {
|
class PDBSymbolTypeVTableShape : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolTypeVTableShape(std::unique_ptr<IPDBRawSymbol> VtblShapeSymbol);
|
PDBSymbolTypeVTableShape(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> VtblShapeSymbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolUnknown : public PDBSymbol {
|
class PDBSymbolUnknown : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolUnknown(std::unique_ptr<IPDBRawSymbol> UnknownSymbol);
|
PDBSymbolUnknown(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> UnknownSymbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ class raw_ostream;
|
|||||||
|
|
||||||
class PDBSymbolUsingNamespace : public PDBSymbol {
|
class PDBSymbolUsingNamespace : public PDBSymbol {
|
||||||
public:
|
public:
|
||||||
PDBSymbolUsingNamespace(std::unique_ptr<IPDBRawSymbol> UsingSymbol);
|
PDBSymbolUsingNamespace(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> Symbol);
|
||||||
|
|
||||||
void dump(llvm::raw_ostream &OS) const override;
|
void dump(llvm::raw_ostream &OS) const override;
|
||||||
|
|
||||||
|
|||||||
@@ -48,17 +48,19 @@
|
|||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbol::PDBSymbol(std::unique_ptr<IPDBRawSymbol> Symbol)
|
PDBSymbol::PDBSymbol(IPDBSession &PDBSession,
|
||||||
: RawSymbol(std::move(Symbol)) {}
|
std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
|
: Session(PDBSession), RawSymbol(std::move(Symbol)) {}
|
||||||
|
|
||||||
PDBSymbol::~PDBSymbol() {}
|
PDBSymbol::~PDBSymbol() {}
|
||||||
|
|
||||||
#define FACTORY_SYMTAG_CASE(Tag, Type) \
|
#define FACTORY_SYMTAG_CASE(Tag, Type) \
|
||||||
case PDB_SymType::Tag: \
|
case PDB_SymType::Tag: \
|
||||||
return std::unique_ptr<PDBSymbol>(new Type(std::move(Symbol)));
|
return std::unique_ptr<PDBSymbol>(new Type(PDBSession, std::move(Symbol)));
|
||||||
|
|
||||||
std::unique_ptr<PDBSymbol>
|
std::unique_ptr<PDBSymbol>
|
||||||
PDBSymbol::create(std::unique_ptr<IPDBRawSymbol> Symbol) {
|
PDBSymbol::create(IPDBSession &PDBSession,
|
||||||
|
std::unique_ptr<IPDBRawSymbol> Symbol) {
|
||||||
switch (Symbol->getSymTag()) {
|
switch (Symbol->getSymTag()) {
|
||||||
FACTORY_SYMTAG_CASE(Exe, PDBSymbolExe)
|
FACTORY_SYMTAG_CASE(Exe, PDBSymbolExe)
|
||||||
FACTORY_SYMTAG_CASE(Compiland, PDBSymbolCompiland)
|
FACTORY_SYMTAG_CASE(Compiland, PDBSymbolCompiland)
|
||||||
@@ -91,7 +93,8 @@ PDBSymbol::create(std::unique_ptr<IPDBRawSymbol> Symbol) {
|
|||||||
FACTORY_SYMTAG_CASE(ManagedType, PDBSymbolTypeManaged)
|
FACTORY_SYMTAG_CASE(ManagedType, PDBSymbolTypeManaged)
|
||||||
FACTORY_SYMTAG_CASE(Dimension, PDBSymbolTypeDimension)
|
FACTORY_SYMTAG_CASE(Dimension, PDBSymbolTypeDimension)
|
||||||
default:
|
default:
|
||||||
return std::unique_ptr<PDBSymbol>(new PDBSymbolUnknown(std::move(Symbol)));
|
return std::unique_ptr<PDBSymbol>(
|
||||||
|
new PDBSymbolUnknown(PDBSession, std::move(Symbol)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,8 @@
|
|||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolAnnotation::PDBSymbolAnnotation(std::unique_ptr<IPDBRawSymbol> Symbol)
|
PDBSymbolAnnotation::PDBSymbolAnnotation(IPDBSession &PDBSession,
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolAnnotation::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolAnnotation::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -14,7 +14,8 @@
|
|||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolBlock::PDBSymbolBlock(std::unique_ptr<IPDBRawSymbol> Symbol)
|
PDBSymbolBlock::PDBSymbolBlock(IPDBSession &PDBSession,
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
|
: PDBSymbol(Session, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolBlock::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolBlock::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -17,8 +17,9 @@
|
|||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolCompiland::PDBSymbolCompiland(std::unique_ptr<IPDBRawSymbol> Symbol)
|
PDBSymbolCompiland::PDBSymbolCompiland(IPDBSession &PDBSession,
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolCompiland::dump(llvm::raw_ostream &OS) const {
|
void PDBSymbolCompiland::dump(llvm::raw_ostream &OS) const {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolCompilandDetails::PDBSymbolCompilandDetails(
|
PDBSymbolCompilandDetails::PDBSymbolCompilandDetails(
|
||||||
std::unique_ptr<IPDBRawSymbol> Symbol)
|
IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
: PDBSymbol(Session, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolCompilandDetails::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolCompilandDetails::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -16,8 +16,8 @@
|
|||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolCompilandEnv::PDBSymbolCompilandEnv(
|
PDBSymbolCompilandEnv::PDBSymbolCompilandEnv(
|
||||||
std::unique_ptr<IPDBRawSymbol> Symbol)
|
IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
std::string PDBSymbolCompilandEnv::getValue() const {
|
std::string PDBSymbolCompilandEnv::getValue() const {
|
||||||
// call RawSymbol->getValue() and convert the result to an std::string.
|
// call RawSymbol->getValue() and convert the result to an std::string.
|
||||||
|
|||||||
@@ -15,8 +15,9 @@
|
|||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolCustom::PDBSymbolCustom(std::unique_ptr<IPDBRawSymbol> CustomSymbol)
|
PDBSymbolCustom::PDBSymbolCustom(IPDBSession &PDBSession,
|
||||||
: PDBSymbol(std::move(CustomSymbol)) {}
|
std::unique_ptr<IPDBRawSymbol> CustomSymbol)
|
||||||
|
: PDBSymbol(PDBSession, std::move(CustomSymbol)) {}
|
||||||
|
|
||||||
void PDBSymbolCustom::getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes) {
|
void PDBSymbolCustom::getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes) {
|
||||||
RawSymbol->getDataBytes(bytes);
|
RawSymbol->getDataBytes(bytes);
|
||||||
|
|||||||
@@ -7,11 +7,13 @@
|
|||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
#include <utility>
|
||||||
#include "llvm/DebugInfo/PDB/PDBSymbolData.h"
|
#include "llvm/DebugInfo/PDB/PDBSymbolData.h"
|
||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolData::PDBSymbolData(std::unique_ptr<IPDBRawSymbol> DataSymbol)
|
PDBSymbolData::PDBSymbolData(IPDBSession &PDBSession,
|
||||||
: PDBSymbol(std::move(DataSymbol)) {}
|
std::unique_ptr<IPDBRawSymbol> DataSymbol)
|
||||||
|
: PDBSymbol(PDBSession, std::move(DataSymbol)) {}
|
||||||
|
|
||||||
void PDBSymbolData::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolData::dump(llvm::raw_ostream &OS) const {}
|
||||||
@@ -17,8 +17,9 @@
|
|||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolExe::PDBSymbolExe(std::unique_ptr<IPDBRawSymbol> Symbol)
|
PDBSymbolExe::PDBSymbolExe(IPDBSession &PDBSession,
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolExe::dump(llvm::raw_ostream &OS) const {
|
void PDBSymbolExe::dump(llvm::raw_ostream &OS) const {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,8 @@
|
|||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolFunc::PDBSymbolFunc(std::unique_ptr<IPDBRawSymbol> Symbol)
|
PDBSymbolFunc::PDBSymbolFunc(IPDBSession &PDBSession,
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolFunc::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolFunc::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolFuncDebugEnd::PDBSymbolFuncDebugEnd(
|
PDBSymbolFuncDebugEnd::PDBSymbolFuncDebugEnd(
|
||||||
std::unique_ptr<IPDBRawSymbol> Symbol)
|
IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
: PDBSymbol(Session, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolFuncDebugEnd::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolFuncDebugEnd::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolFuncDebugStart::PDBSymbolFuncDebugStart(
|
PDBSymbolFuncDebugStart::PDBSymbolFuncDebugStart(
|
||||||
std::unique_ptr<IPDBRawSymbol> Symbol)
|
IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
: PDBSymbol(Session, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolFuncDebugStart::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolFuncDebugStart::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -14,7 +14,8 @@
|
|||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolLabel::PDBSymbolLabel(std::unique_ptr<IPDBRawSymbol> Symbol)
|
PDBSymbolLabel::PDBSymbolLabel(IPDBSession &PDBSession,
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
|
: PDBSymbol(Session, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolLabel::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolLabel::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolPublicSymbol::PDBSymbolPublicSymbol(
|
PDBSymbolPublicSymbol::PDBSymbolPublicSymbol(
|
||||||
std::unique_ptr<IPDBRawSymbol> Symbol)
|
IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
: PDBSymbol(Session, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolPublicSymbol::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolPublicSymbol::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -14,7 +14,8 @@
|
|||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolThunk::PDBSymbolThunk(std::unique_ptr<IPDBRawSymbol> Symbol)
|
PDBSymbolThunk::PDBSymbolThunk(IPDBSession &PDBSession,
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
|
: PDBSymbol(Session, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolThunk::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolThunk::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -14,7 +14,8 @@
|
|||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolTypeArray::PDBSymbolTypeArray(std::unique_ptr<IPDBRawSymbol> Symbol)
|
PDBSymbolTypeArray::PDBSymbolTypeArray(IPDBSession &PDBSession,
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolTypeArray::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolTypeArray::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolTypeBaseClass::PDBSymbolTypeBaseClass(
|
PDBSymbolTypeBaseClass::PDBSymbolTypeBaseClass(
|
||||||
std::unique_ptr<IPDBRawSymbol> Symbol)
|
IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
: PDBSymbol(Session, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolTypeBaseClass::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolTypeBaseClass::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolTypeBuiltin::PDBSymbolTypeBuiltin(
|
PDBSymbolTypeBuiltin::PDBSymbolTypeBuiltin(
|
||||||
std::unique_ptr<IPDBRawSymbol> Symbol)
|
IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolTypeBuiltin::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolTypeBuiltin::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -14,7 +14,8 @@
|
|||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolTypeCustom::PDBSymbolTypeCustom(std::unique_ptr<IPDBRawSymbol> Symbol)
|
PDBSymbolTypeCustom::PDBSymbolTypeCustom(IPDBSession &PDBSession,
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolTypeCustom::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolTypeCustom::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolTypeDimension::PDBSymbolTypeDimension(
|
PDBSymbolTypeDimension::PDBSymbolTypeDimension(
|
||||||
std::unique_ptr<IPDBRawSymbol> Symbol)
|
IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolTypeDimension::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolTypeDimension::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -14,7 +14,8 @@
|
|||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolTypeEnum::PDBSymbolTypeEnum(std::unique_ptr<IPDBRawSymbol> Symbol)
|
PDBSymbolTypeEnum::PDBSymbolTypeEnum(IPDBSession &PDBSession,
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolTypeEnum::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolTypeEnum::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -14,7 +14,8 @@
|
|||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolTypeFriend::PDBSymbolTypeFriend(std::unique_ptr<IPDBRawSymbol> Symbol)
|
PDBSymbolTypeFriend::PDBSymbolTypeFriend(IPDBSession &PDBSession,
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolTypeFriend::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolTypeFriend::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolTypeFunctionArg::PDBSymbolTypeFunctionArg(
|
PDBSymbolTypeFunctionArg::PDBSymbolTypeFunctionArg(
|
||||||
std::unique_ptr<IPDBRawSymbol> Symbol)
|
IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolTypeFunctionArg::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolTypeFunctionArg::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolTypeFunctionSig::PDBSymbolTypeFunctionSig(
|
PDBSymbolTypeFunctionSig::PDBSymbolTypeFunctionSig(
|
||||||
std::unique_ptr<IPDBRawSymbol> Symbol)
|
IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolTypeFunctionSig::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolTypeFunctionSig::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolTypeManaged::PDBSymbolTypeManaged(
|
PDBSymbolTypeManaged::PDBSymbolTypeManaged(
|
||||||
std::unique_ptr<IPDBRawSymbol> Symbol)
|
IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolTypeManaged::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolTypeManaged::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolTypePointer::PDBSymbolTypePointer(
|
PDBSymbolTypePointer::PDBSymbolTypePointer(
|
||||||
std::unique_ptr<IPDBRawSymbol> Symbol)
|
IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolTypePointer::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolTypePointer::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolTypeTypedef::PDBSymbolTypeTypedef(
|
PDBSymbolTypeTypedef::PDBSymbolTypeTypedef(
|
||||||
std::unique_ptr<IPDBRawSymbol> Symbol)
|
IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolTypeTypedef::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolTypeTypedef::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -14,7 +14,8 @@
|
|||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolTypeUDT::PDBSymbolTypeUDT(std::unique_ptr<IPDBRawSymbol> Symbol)
|
PDBSymbolTypeUDT::PDBSymbolTypeUDT(IPDBSession &PDBSession,
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolTypeUDT::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolTypeUDT::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -14,7 +14,8 @@
|
|||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolTypeVTable::PDBSymbolTypeVTable(std::unique_ptr<IPDBRawSymbol> Symbol)
|
PDBSymbolTypeVTable::PDBSymbolTypeVTable(IPDBSession &PDBSession,
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolTypeVTable::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolTypeVTable::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolTypeVTableShape::PDBSymbolTypeVTableShape(
|
PDBSymbolTypeVTableShape::PDBSymbolTypeVTableShape(
|
||||||
std::unique_ptr<IPDBRawSymbol> Symbol)
|
IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolTypeVTableShape::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolTypeVTableShape::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -14,7 +14,8 @@
|
|||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolUnknown::PDBSymbolUnknown(std::unique_ptr<IPDBRawSymbol> Symbol)
|
PDBSymbolUnknown::PDBSymbolUnknown(IPDBSession &PDBSession,
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolUnknown::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolUnknown::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
PDBSymbolUsingNamespace::PDBSymbolUsingNamespace(
|
PDBSymbolUsingNamespace::PDBSymbolUsingNamespace(
|
||||||
std::unique_ptr<IPDBRawSymbol> Symbol)
|
IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
|
||||||
: PDBSymbol(std::move(Symbol)) {}
|
: PDBSymbol(PDBSession, std::move(Symbol)) {}
|
||||||
|
|
||||||
void PDBSymbolUsingNamespace::dump(llvm::raw_ostream &OS) const {}
|
void PDBSymbolUsingNamespace::dump(llvm::raw_ostream &OS) const {}
|
||||||
|
|||||||
@@ -12,6 +12,9 @@
|
|||||||
|
|
||||||
#include "llvm/DebugInfo/PDB/IPDBEnumChildren.h"
|
#include "llvm/DebugInfo/PDB/IPDBEnumChildren.h"
|
||||||
#include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
|
#include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
|
||||||
|
#include "llvm/DebugInfo/PDB/IPDBSession.h"
|
||||||
|
#include "llvm/DebugInfo/PDB/IPDBSourceFile.h"
|
||||||
|
|
||||||
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
|
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
|
||||||
#include "llvm/DebugInfo/PDB/PDBSymbolAnnotation.h"
|
#include "llvm/DebugInfo/PDB/PDBSymbolAnnotation.h"
|
||||||
#include "llvm/DebugInfo/PDB/PDBSymbolBlock.h"
|
#include "llvm/DebugInfo/PDB/PDBSymbolBlock.h"
|
||||||
@@ -66,6 +69,21 @@ namespace {
|
|||||||
return ReturnType(); \
|
return ReturnType(); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class MockSession : public IPDBSession {
|
||||||
|
uint64_t getLoadAddress() const override { return 0; }
|
||||||
|
void setLoadAddress(uint64_t Address) override {}
|
||||||
|
std::unique_ptr<PDBSymbolExe> getGlobalScope() const override {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
std::unique_ptr<PDBSymbol> getSymbolById() const override { return nullptr; }
|
||||||
|
std::unique_ptr<IPDBSourceFile> getSourceFileById() const override {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
std::unique_ptr<IPDBEnumDataStreams> getDebugStreams() const override {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
class MockRawSymbol : public IPDBRawSymbol {
|
class MockRawSymbol : public IPDBRawSymbol {
|
||||||
public:
|
public:
|
||||||
MockRawSymbol(PDB_SymType SymType) : Type(SymType) {}
|
MockRawSymbol(PDB_SymType SymType) : Type(SymType) {}
|
||||||
@@ -257,6 +275,8 @@ public:
|
|||||||
std::unordered_map<PDB_SymType, std::unique_ptr<PDBSymbol>> SymbolMap;
|
std::unordered_map<PDB_SymType, std::unique_ptr<PDBSymbol>> SymbolMap;
|
||||||
|
|
||||||
void SetUp() override {
|
void SetUp() override {
|
||||||
|
Session.reset(new MockSession());
|
||||||
|
|
||||||
InsertItemWithTag(PDB_SymType::None);
|
InsertItemWithTag(PDB_SymType::None);
|
||||||
InsertItemWithTag(PDB_SymType::Exe);
|
InsertItemWithTag(PDB_SymType::Exe);
|
||||||
InsertItemWithTag(PDB_SymType::Compiland);
|
InsertItemWithTag(PDB_SymType::Compiland);
|
||||||
@@ -291,14 +311,6 @@ public:
|
|||||||
InsertItemWithTag(PDB_SymType::Max);
|
InsertItemWithTag(PDB_SymType::Max);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
|
||||||
void InsertItemWithTag(PDB_SymType Tag) {
|
|
||||||
auto RawSymbol = std::unique_ptr<IPDBRawSymbol>(new MockRawSymbol(Tag));
|
|
||||||
auto Symbol = PDBSymbol::create(std::move(RawSymbol));
|
|
||||||
SymbolMap.insert(std::make_pair(Tag, std::move(Symbol)));
|
|
||||||
}
|
|
||||||
|
|
||||||
public:
|
|
||||||
template <class ExpectedType> void VerifyDyncast(PDB_SymType Tag) {
|
template <class ExpectedType> void VerifyDyncast(PDB_SymType Tag) {
|
||||||
for (auto item = SymbolMap.begin(); item != SymbolMap.end(); ++item) {
|
for (auto item = SymbolMap.begin(); item != SymbolMap.end(); ++item) {
|
||||||
EXPECT_EQ(item->first == Tag, llvm::isa<ExpectedType>(*item->second));
|
EXPECT_EQ(item->first == Tag, llvm::isa<ExpectedType>(*item->second));
|
||||||
@@ -314,6 +326,15 @@ public:
|
|||||||
EXPECT_EQ(should_match, llvm::isa<PDBSymbolUnknown>(*item->second));
|
EXPECT_EQ(should_match, llvm::isa<PDBSymbolUnknown>(*item->second));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::unique_ptr<IPDBSession> Session;
|
||||||
|
|
||||||
|
void InsertItemWithTag(PDB_SymType Tag) {
|
||||||
|
auto RawSymbol = std::unique_ptr<IPDBRawSymbol>(new MockRawSymbol(Tag));
|
||||||
|
auto Symbol = PDBSymbol::create(*Session, std::move(RawSymbol));
|
||||||
|
SymbolMap.insert(std::make_pair(Tag, std::move(Symbol)));
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
TEST_F(PDBApiTest, Dyncast) {
|
TEST_F(PDBApiTest, Dyncast) {
|
||||||
|
|||||||
Reference in New Issue
Block a user