#include <memory>
#include "llvm/ADT/StringRef.h"
-#include "llvm/Support/raw_ostream.h"
#include "llvm/Support/Casting.h"
#include "IPDBRawSymbol.h"
namespace llvm {
class IPDBRawSymbol;
+class raw_ostream;
/// PDBSymbol defines the base of the inheritance hierarchy for concrete symbol
/// types (e.g. functions, executables, vtables, etc). All concrete symbol
/// https://msdn.microsoft.com/en-us/library/370hs6k4.aspx
class PDBSymbol {
protected:
- PDBSymbol(std::unique_ptr<IPDBRawSymbol> Symbol);
+ PDBSymbol(IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol);
public:
static std::unique_ptr<PDBSymbol>
- create(std::unique_ptr<IPDBRawSymbol> Symbol);
+ create(IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol);
virtual ~PDBSymbol();
std::unique_ptr<IPDBEnumSymbols> findInlineFramesByRVA(uint32_t RVA) const;
protected:
+ IPDBSession &Session;
const std::unique_ptr<IPDBRawSymbol> RawSymbol;
};