/// https://msdn.microsoft.com/en-us/library/370hs6k4.aspx
class PDBSymbol {
protected:
- PDBSymbol(IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol);
+ PDBSymbol(const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol);
public:
static std::unique_ptr<PDBSymbol>
- create(IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol);
+ create(const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol);
virtual ~PDBSymbol();
std::unique_ptr<IPDBEnumSymbols> findInlineFramesByRVA(uint32_t RVA) const;
protected:
- IPDBSession &Session;
+ const IPDBSession &Session;
const std::unique_ptr<IPDBRawSymbol> RawSymbol;
};
class PDBSymbolAnnotation : public PDBSymbol {
public:
- PDBSymbolAnnotation(IPDBSession &PDBSession,
+ PDBSymbolAnnotation(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolBlock : public PDBSymbol {
public:
- PDBSymbolBlock(IPDBSession &PDBSession,
+ PDBSymbolBlock(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolCompiland : public PDBSymbol {
public:
- PDBSymbolCompiland(IPDBSession &PDBSession,
+ PDBSymbolCompiland(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> CompilandSymbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolCompilandDetails : public PDBSymbol {
public:
- PDBSymbolCompilandDetails(IPDBSession &PDBSession,
+ PDBSymbolCompilandDetails(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolCompilandEnv : public PDBSymbol {
public:
- PDBSymbolCompilandEnv(IPDBSession &PDBSession,
+ PDBSymbolCompilandEnv(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol);
void dump(llvm::raw_ostream &OS) const override;
/// https://msdn.microsoft.com/en-us/library/d88sf09h.aspx
class PDBSymbolCustom : public PDBSymbol {
public:
- PDBSymbolCustom(IPDBSession &PDBSession,
+ PDBSymbolCustom(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> CustomSymbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolData : public PDBSymbol {
public:
- PDBSymbolData(IPDBSession &PDBSession,
+ PDBSymbolData(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> DataSymbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolExe : public PDBSymbol {
public:
- PDBSymbolExe(IPDBSession &PDBSession,
+ PDBSymbolExe(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> ExeSymbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolFunc : public PDBSymbol {
public:
- PDBSymbolFunc(IPDBSession &PDBSession,
+ PDBSymbolFunc(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> FuncSymbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolFuncDebugEnd : public PDBSymbol {
public:
- PDBSymbolFuncDebugEnd(IPDBSession &PDBSession,
+ PDBSymbolFuncDebugEnd(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> FuncDebugEndSymbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolFuncDebugStart : public PDBSymbol {
public:
- PDBSymbolFuncDebugStart(IPDBSession &PDBSession,
+ PDBSymbolFuncDebugStart(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> FuncDebugStartSymbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolLabel : public PDBSymbol {
public:
- PDBSymbolLabel(IPDBSession &PDBSession,
+ PDBSymbolLabel(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> LabelSymbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolPublicSymbol : public PDBSymbol {
public:
- PDBSymbolPublicSymbol(IPDBSession &PDBSession,
+ PDBSymbolPublicSymbol(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> PublicSymbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolThunk : public PDBSymbol {
public:
- PDBSymbolThunk(IPDBSession &PDBSession,
+ PDBSymbolThunk(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> ThunkSymbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolTypeArray : public PDBSymbol {
public:
- PDBSymbolTypeArray(IPDBSession &PDBSession,
+ PDBSymbolTypeArray(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> ArrayTypeSymbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolTypeBaseClass : public PDBSymbol {
public:
- PDBSymbolTypeBaseClass(IPDBSession &PDBSession,
+ PDBSymbolTypeBaseClass(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolTypeBuiltin : public PDBSymbol {
public:
- PDBSymbolTypeBuiltin(IPDBSession &PDBSession,
+ PDBSymbolTypeBuiltin(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolTypeCustom : public PDBSymbol {
public:
- PDBSymbolTypeCustom(IPDBSession &PDBSession,
+ PDBSymbolTypeCustom(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolTypeDimension : public PDBSymbol {
public:
- PDBSymbolTypeDimension(IPDBSession &PDBSession,
+ PDBSymbolTypeDimension(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolTypeEnum : public PDBSymbol {
public:
- PDBSymbolTypeEnum(IPDBSession &PDBSession,
+ PDBSymbolTypeEnum(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> EnumTypeSymbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolTypeFriend : public PDBSymbol {
public:
- PDBSymbolTypeFriend(IPDBSession &PDBSession,
+ PDBSymbolTypeFriend(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolTypeFunctionArg : public PDBSymbol {
public:
- PDBSymbolTypeFunctionArg(IPDBSession &PDBSession,
+ PDBSymbolTypeFunctionArg(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolTypeFunctionSig : public PDBSymbol {
public:
- PDBSymbolTypeFunctionSig(IPDBSession &PDBSession,
+ PDBSymbolTypeFunctionSig(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolTypeManaged : public PDBSymbol {
public:
- PDBSymbolTypeManaged(IPDBSession &PDBSession,
+ PDBSymbolTypeManaged(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolTypePointer : public PDBSymbol {
public:
- PDBSymbolTypePointer(IPDBSession &PDBSession,
+ PDBSymbolTypePointer(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolTypeTypedef : public PDBSymbol {
public:
- PDBSymbolTypeTypedef(IPDBSession &PDBSession,
+ PDBSymbolTypeTypedef(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolTypeUDT : public PDBSymbol {
public:
- PDBSymbolTypeUDT(IPDBSession &PDBSession,
+ PDBSymbolTypeUDT(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> UDTSymbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolTypeVTable : public PDBSymbol {
public:
- PDBSymbolTypeVTable(IPDBSession &PDBSession,
+ PDBSymbolTypeVTable(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> VtblSymbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolTypeVTableShape : public PDBSymbol {
public:
- PDBSymbolTypeVTableShape(IPDBSession &PDBSession,
+ PDBSymbolTypeVTableShape(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> VtblShapeSymbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolUnknown : public PDBSymbol {
public:
- PDBSymbolUnknown(IPDBSession &PDBSession,
+ PDBSymbolUnknown(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> UnknownSymbol);
void dump(llvm::raw_ostream &OS) const override;
class PDBSymbolUsingNamespace : public PDBSymbol {
public:
- PDBSymbolUsingNamespace(IPDBSession &PDBSession,
+ PDBSymbolUsingNamespace(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol);
void dump(llvm::raw_ostream &OS) const override;
using namespace llvm;
-PDBSymbol::PDBSymbol(IPDBSession &PDBSession,
+PDBSymbol::PDBSymbol(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol)
: Session(PDBSession), RawSymbol(std::move(Symbol)) {}
return std::unique_ptr<PDBSymbol>(new Type(PDBSession, std::move(Symbol)));
std::unique_ptr<PDBSymbol>
-PDBSymbol::create(IPDBSession &PDBSession,
+PDBSymbol::create(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol) {
switch (Symbol->getSymTag()) {
FACTORY_SYMTAG_CASE(Exe, PDBSymbolExe)
using namespace llvm;
-PDBSymbolAnnotation::PDBSymbolAnnotation(IPDBSession &PDBSession,
+PDBSymbolAnnotation::PDBSymbolAnnotation(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
using namespace llvm;
-PDBSymbolBlock::PDBSymbolBlock(IPDBSession &PDBSession,
+PDBSymbolBlock::PDBSymbolBlock(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(Session, std::move(Symbol)) {}
using namespace llvm;
-PDBSymbolCompiland::PDBSymbolCompiland(IPDBSession &PDBSession,
+PDBSymbolCompiland::PDBSymbolCompiland(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
using namespace llvm;
PDBSymbolCompilandDetails::PDBSymbolCompilandDetails(
- IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+ const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(Session, std::move(Symbol)) {}
void PDBSymbolCompilandDetails::dump(llvm::raw_ostream &OS) const {}
using namespace llvm;
PDBSymbolCompilandEnv::PDBSymbolCompilandEnv(
- IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+ const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
std::string PDBSymbolCompilandEnv::getValue() const {
using namespace llvm;
-PDBSymbolCustom::PDBSymbolCustom(IPDBSession &PDBSession,
+PDBSymbolCustom::PDBSymbolCustom(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> CustomSymbol)
: PDBSymbol(PDBSession, std::move(CustomSymbol)) {}
using namespace llvm;
-PDBSymbolData::PDBSymbolData(IPDBSession &PDBSession,
+PDBSymbolData::PDBSymbolData(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> DataSymbol)
: PDBSymbol(PDBSession, std::move(DataSymbol)) {}
using namespace llvm;
-PDBSymbolExe::PDBSymbolExe(IPDBSession &PDBSession,
+PDBSymbolExe::PDBSymbolExe(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
using namespace llvm;
-PDBSymbolFunc::PDBSymbolFunc(IPDBSession &PDBSession,
+PDBSymbolFunc::PDBSymbolFunc(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
using namespace llvm;
PDBSymbolFuncDebugEnd::PDBSymbolFuncDebugEnd(
- IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+ const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(Session, std::move(Symbol)) {}
void PDBSymbolFuncDebugEnd::dump(llvm::raw_ostream &OS) const {}
using namespace llvm;
PDBSymbolFuncDebugStart::PDBSymbolFuncDebugStart(
- IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+ const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(Session, std::move(Symbol)) {}
void PDBSymbolFuncDebugStart::dump(llvm::raw_ostream &OS) const {}
using namespace llvm;
-PDBSymbolLabel::PDBSymbolLabel(IPDBSession &PDBSession,
+PDBSymbolLabel::PDBSymbolLabel(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(Session, std::move(Symbol)) {}
using namespace llvm;
PDBSymbolPublicSymbol::PDBSymbolPublicSymbol(
- IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+ const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(Session, std::move(Symbol)) {}
void PDBSymbolPublicSymbol::dump(llvm::raw_ostream &OS) const {}
using namespace llvm;
-PDBSymbolThunk::PDBSymbolThunk(IPDBSession &PDBSession,
+PDBSymbolThunk::PDBSymbolThunk(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(Session, std::move(Symbol)) {}
using namespace llvm;
-PDBSymbolTypeArray::PDBSymbolTypeArray(IPDBSession &PDBSession,
+PDBSymbolTypeArray::PDBSymbolTypeArray(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
using namespace llvm;
PDBSymbolTypeBaseClass::PDBSymbolTypeBaseClass(
- IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+ const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(Session, std::move(Symbol)) {}
void PDBSymbolTypeBaseClass::dump(llvm::raw_ostream &OS) const {}
using namespace llvm;
PDBSymbolTypeBuiltin::PDBSymbolTypeBuiltin(
- IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+ const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
void PDBSymbolTypeBuiltin::dump(llvm::raw_ostream &OS) const {}
using namespace llvm;
-PDBSymbolTypeCustom::PDBSymbolTypeCustom(IPDBSession &PDBSession,
+PDBSymbolTypeCustom::PDBSymbolTypeCustom(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
using namespace llvm;
PDBSymbolTypeDimension::PDBSymbolTypeDimension(
- IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+ const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
void PDBSymbolTypeDimension::dump(llvm::raw_ostream &OS) const {}
using namespace llvm;
-PDBSymbolTypeEnum::PDBSymbolTypeEnum(IPDBSession &PDBSession,
+PDBSymbolTypeEnum::PDBSymbolTypeEnum(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
using namespace llvm;
-PDBSymbolTypeFriend::PDBSymbolTypeFriend(IPDBSession &PDBSession,
+PDBSymbolTypeFriend::PDBSymbolTypeFriend(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
using namespace llvm;
PDBSymbolTypeFunctionArg::PDBSymbolTypeFunctionArg(
- IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+ const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
void PDBSymbolTypeFunctionArg::dump(llvm::raw_ostream &OS) const {}
using namespace llvm;
PDBSymbolTypeFunctionSig::PDBSymbolTypeFunctionSig(
- IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+ const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
void PDBSymbolTypeFunctionSig::dump(llvm::raw_ostream &OS) const {}
using namespace llvm;
PDBSymbolTypeManaged::PDBSymbolTypeManaged(
- IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+ const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
void PDBSymbolTypeManaged::dump(llvm::raw_ostream &OS) const {}
using namespace llvm;
PDBSymbolTypePointer::PDBSymbolTypePointer(
- IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+ const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
void PDBSymbolTypePointer::dump(llvm::raw_ostream &OS) const {}
using namespace llvm;
PDBSymbolTypeTypedef::PDBSymbolTypeTypedef(
- IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+ const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
void PDBSymbolTypeTypedef::dump(llvm::raw_ostream &OS) const {}
using namespace llvm;
-PDBSymbolTypeUDT::PDBSymbolTypeUDT(IPDBSession &PDBSession,
+PDBSymbolTypeUDT::PDBSymbolTypeUDT(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
using namespace llvm;
-PDBSymbolTypeVTable::PDBSymbolTypeVTable(IPDBSession &PDBSession,
+PDBSymbolTypeVTable::PDBSymbolTypeVTable(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
using namespace llvm;
PDBSymbolTypeVTableShape::PDBSymbolTypeVTableShape(
- IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+ const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
void PDBSymbolTypeVTableShape::dump(llvm::raw_ostream &OS) const {}
using namespace llvm;
-PDBSymbolUnknown::PDBSymbolUnknown(IPDBSession &PDBSession,
+PDBSymbolUnknown::PDBSymbolUnknown(const IPDBSession &PDBSession,
std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
using namespace llvm;
PDBSymbolUsingNamespace::PDBSymbolUsingNamespace(
- IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+ const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
: PDBSymbol(PDBSession, std::move(Symbol)) {}
void PDBSymbolUsingNamespace::dump(llvm::raw_ostream &OS) const {}