[llvm] r228755 - Rewrite llvm-pdbdump in terms of LLVMDebugInfoPDB.
Zachary Turner
zturner at google.com
Wed Feb 11 09:21:43 PST 2015
This should have been fixed yesterday, are you at tot?
On Wed, Feb 11, 2015 at 9:20 AM Adrian Prantl <aprantl at apple.com> wrote:
> Hi, I’m getting these warnings now from -Wcovered-switch-default:
>
> [5/53] Building CXX object lib/DebugInfo/PDB/CMakeFiles/
> LLVMDebugInfoPDB.dir/PDBExtras.cpp.o
> ../lib/DebugInfo/PDB/PDBExtras.cpp:110:3: warning: default label in
> switch which covers all enumeration values [-Wcovered-switch-default]
> default:
> ^
> ../lib/DebugInfo/PDB/PDBExtras.cpp:121:3: warning: default label in
> switch which covers all enumeration values [-Wcovered-switch-default]
> default:
> ^
> ../lib/DebugInfo/PDB/PDBExtras.cpp:146:3: warning: default label in
> switch which covers all enumeration values [-Wcovered-switch-default]
> default:
> ^
>
> -- adrian
>
>
> > On Feb 10, 2015, at 2:43 PM, Zachary Turner <zturner at google.com> wrote:
> >
> > Author: zturner
> > Date: Tue Feb 10 16:43:25 2015
> > New Revision: 228755
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=228755&view=rev
> > Log:
> > Rewrite llvm-pdbdump in terms of LLVMDebugInfoPDB.
> >
> > This makes llvm-pdbdump available on all platforms, although it
> > will currently fail to create a dumper if there is no PDB reader
> > implementation for the current platform.
> >
> > It implements dumping of compilands and children, which is less
> > information than was previously available, but it has to be
> > rewritten from scratch using the new set of interfaces, so the
> > rest of the functionality will be added back in subsequent commits.
> >
> > Added:
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBExtras.h
> > llvm/trunk/lib/DebugInfo/PDB/IPDBSourceFile.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBExtras.cpp
> > llvm/trunk/tools/llvm-pdbdump/Makefile
> > Removed:
> > llvm/trunk/tools/llvm-pdbdump/COMExtras.h
> > llvm/trunk/tools/llvm-pdbdump/DIAExtras.cpp
> > llvm/trunk/tools/llvm-pdbdump/DIAExtras.h
> > llvm/trunk/tools/llvm-pdbdump/DIASymbol.cpp
> > llvm/trunk/tools/llvm-pdbdump/DIASymbol.h
> > llvm/trunk/tools/llvm-pdbdump/llvm-pdbdump.h
> > Modified:
> > llvm/trunk/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/DIA/DIASession.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/IPDBSession.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/IPDBSourceFile.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbol.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolData.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolExe.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h
> > llvm/trunk/include/llvm/DebugInfo/PDB/PDBTypes.h
> > llvm/trunk/lib/DebugInfo/PDB/CMakeLists.txt
> > llvm/trunk/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp
> > llvm/trunk/lib/DebugInfo/PDB/DIA/DIASession.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBInterfaceAnchors.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbol.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolAnnotation.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolBlock.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCompilandDetails.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCompilandEnv.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCustom.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolData.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolExe.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolFunc.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolFuncDebugEnd.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolFuncDebugStart.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolLabel.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolPublicSymbol.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolThunk.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeArray.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeBuiltin.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeCustom.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeDimension.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeEnum.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeFriend.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeFunctionArg.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeFunctionSig.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeManaged.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypePointer.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeTypedef.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeUDT.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeVTable.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeVTableShape.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolUnknown.cpp
> > llvm/trunk/lib/DebugInfo/PDB/PDBSymbolUsingNamespace.cpp
> > llvm/trunk/tools/CMakeLists.txt
> > llvm/trunk/tools/Makefile
> > llvm/trunk/tools/llvm-pdbdump/CMakeLists.txt
> > llvm/trunk/tools/llvm-pdbdump/LLVMBuild.txt
> > llvm/trunk/tools/llvm-pdbdump/llvm-pdbdump.cpp
> > llvm/trunk/unittests/DebugInfo/PDB/PDBApiTest.cpp
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/DIA/DIARawSymbol.h?rev=228755&r1=
> 228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h Tue Feb 10
> 16:43:25 2015
> > @@ -19,8 +19,12 @@ class DIARawSymbol : public IPDBRawSymbo
> > public:
> > DIARawSymbol(const DIASession &PDBSession, CComPtr<IDiaSymbol>
> DiaSymbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > + CComPtr<IDiaSymbol> getDiaSymbol() const { return Symbol; }
> > +
> > + std::unique_ptr<IPDBEnumSymbols>
> > + DIARawSymbol::findChildren(PDB_SymType Type) const override;
> > std::unique_ptr<IPDBEnumSymbols>
> > findChildren(PDB_SymType Type, StringRef Name,
> > PDB_NameSearchFlags Flags) const override;
> > @@ -54,7 +58,7 @@ public:
> > uint32_t getLiveRangeStartAddressOffset() const override;
> > uint32_t getLiveRangeStartAddressSection() const override;
> > uint32_t getLiveRangeStartRelativeVirtualAddress() const override;
> > - uint32_t getLocalBasePointerRegisterId() const override;
> > + PDB_RegisterId getLocalBasePointerRegisterId() const override;
> > uint32_t getLowerBoundId() const override;
> > uint32_t getMemorySpaceKind() const override;
> > std::string getName() const override;
> > @@ -69,7 +73,7 @@ public:
> > uint32_t getOffsetInUdt() const override;
> > PDB_Cpu getPlatform() const override;
> > uint32_t getRank() const override;
> > - uint32_t getRegisterId() const override;
> > + PDB_RegisterId getRegisterId() const override;
> > uint32_t getRegisterType() const override;
> > uint32_t getRelativeVirtualAddress() const override;
> > uint32_t getSamplerSlot() const override;
> > @@ -129,6 +133,7 @@ public:
> > bool hasInlAsm() const override;
> > bool hasInlineAttribute() const override;
> > bool hasInterruptReturn() const override;
> > + bool hasFramePointer() const override;
> > bool hasLongJump() const override;
> > bool hasManagedCode() const override;
> > bool hasNestedTypes() const override;
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/DIA/DIASession.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/DIA/DIASession.h?rev=228755&r1=
> 228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/DIA/DIASession.h (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/DIA/DIASession.h Tue Feb 10
> 16:43:25 2015
> > @@ -25,6 +25,10 @@ public:
> > void setLoadAddress(uint64_t Address) override;
> > std::unique_ptr<PDBSymbolExe> getGlobalScope() const override;
> > std::unique_ptr<PDBSymbol> getSymbolById(uint32_t SymbolId) const
> override;
> > +
> > + std::unique_ptr<IPDBEnumSourceFiles> getAllSourceFiles() const
> override;
> > + std::unique_ptr<IPDBEnumSourceFiles> getSourceFilesForCompiland(
> > + const PDBSymbolCompiland &Compiland) const override;
> > std::unique_ptr<IPDBSourceFile>
> > getSourceFileById(uint32_t FileId) const override;
> >
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/IPDBRawSymbol.h?rev=228755&r1=
> 228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h Tue Feb 10
> 16:43:25 2015
> > @@ -29,7 +29,10 @@ class IPDBRawSymbol {
> > public:
> > virtual ~IPDBRawSymbol();
> >
> > - virtual void dump(llvm::raw_ostream &OS) const = 0;
> > + virtual void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level)
> const = 0;
> > +
> > + virtual std::unique_ptr<IPDBEnumSymbols>
> > + findChildren(PDB_SymType Type) const = 0;
> >
> > virtual std::unique_ptr<IPDBEnumSymbols>
> > findChildren(PDB_SymType Type, StringRef Name,
> > @@ -64,7 +67,7 @@ public:
> > virtual uint32_t getLiveRangeStartAddressOffset() const = 0;
> > virtual uint32_t getLiveRangeStartAddressSection() const = 0;
> > virtual uint32_t getLiveRangeStartRelativeVirtualAddress() const = 0;
> > - virtual uint32_t getLocalBasePointerRegisterId() const = 0;
> > + virtual PDB_RegisterId getLocalBasePointerRegisterId() const = 0;
> > virtual uint32_t getLowerBoundId() const = 0;
> > virtual uint32_t getMemorySpaceKind() const = 0;
> > virtual std::string getName() const = 0;
> > @@ -79,7 +82,7 @@ public:
> > virtual uint32_t getOffsetInUdt() const = 0;
> > virtual PDB_Cpu getPlatform() const = 0;
> > virtual uint32_t getRank() const = 0;
> > - virtual uint32_t getRegisterId() const = 0;
> > + virtual PDB_RegisterId getRegisterId() const = 0;
> > virtual uint32_t getRegisterType() const = 0;
> > virtual uint32_t getRelativeVirtualAddress() const = 0;
> > virtual uint32_t getSamplerSlot() const = 0;
> > @@ -136,6 +139,7 @@ public:
> > virtual bool hasDebugInfo() const = 0;
> > virtual bool hasEH() const = 0;
> > virtual bool hasEHa() const = 0;
> > + virtual bool hasFramePointer() const = 0;
> > virtual bool hasInlAsm() const = 0;
> > virtual bool hasInlineAttribute() const = 0;
> > virtual bool hasInterruptReturn() const = 0;
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/IPDBSession.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/IPDBSession.h?rev=228755&r1=228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/IPDBSession.h (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/IPDBSession.h Tue Feb 10
> 16:43:25 2015
> > @@ -16,6 +16,7 @@
> >
> > namespace llvm {
> >
> > +class PDBSymbolCompiland;
> > class PDBSymbolExe;
> >
> > /// IPDBSession defines an interface used to provide a context for
> querying
> > @@ -28,6 +29,10 @@ public:
> > virtual void setLoadAddress(uint64_t Address) = 0;
> > virtual std::unique_ptr<PDBSymbolExe> getGlobalScope() const = 0;
> > virtual std::unique_ptr<PDBSymbol> getSymbolById(uint32_t SymbolId)
> const = 0;
> > +
> > + virtual std::unique_ptr<IPDBEnumSourceFiles> getAllSourceFiles()
> const = 0;
> > + virtual std::unique_ptr<IPDBEnumSourceFiles>
> > + getSourceFilesForCompiland(const PDBSymbolCompiland &Compiland)
> const = 0;
> > virtual std::unique_ptr<IPDBSourceFile>
> > getSourceFileById(uint32_t FileId) const = 0;
> >
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/IPDBSourceFile.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/IPDBSourceFile.h?rev=228755&
> r1=228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/IPDBSourceFile.h (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/IPDBSourceFile.h Tue Feb 10
> 16:43:25 2015
> > @@ -17,12 +17,16 @@
> >
> > namespace llvm {
> >
> > +class raw_ostream;
> > +
> > /// IPDBSourceFile defines an interface used to represent source files
> whose
> > /// information are stored in the PDB.
> > class IPDBSourceFile {
> > public:
> > virtual ~IPDBSourceFile();
> >
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const;
> > +
> > virtual std::string getFileName() const = 0;
> > virtual uint32_t getUniqueId() const = 0;
> > virtual std::string getChecksum() const = 0;
> >
> > Added: llvm/trunk/include/llvm/DebugInfo/PDB/PDBExtras.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBExtras.h?rev=228755&view=auto
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBExtras.h (added)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBExtras.h Tue Feb 10
> 16:43:25 2015
> > @@ -0,0 +1,39 @@
> > +//===- PDBExtras.h - helper functions and classes for PDBs -------*-
> C++-*-===//
> > +//
> > +// The LLVM Compiler Infrastructure
> > +//
> > +// This file is distributed under the University of Illinois Open Source
> > +// License. See LICENSE.TXT for details.
> > +//
> > +//===------------------------------------------------------
> ----------------===//
> > +
> > +#ifndef LLVM_DEBUGINFO_PDB_PDBEXTRAS_H
> > +#define LLVM_DEBUGINFO_PDB_PDBEXTRAS_H
> > +
> > +#include <unordered_map>
> > +
> > +#include "PDBTypes.h"
> > +
> > +#include "llvm/Support/raw_ostream.h"
> > +
> > +namespace llvm {
> > +typedef std::unordered_map<PDB_SymType, int> TagStats;
> > +
> > +struct stream_indent {
> > + stream_indent(int IndentWidth) : Width(IndentWidth) {}
> > + int Width;
> > +};
> > +raw_ostream &operator<<(raw_ostream &OS, const stream_indent &Indent);
> > +
> > +raw_ostream &operator<<(raw_ostream &OS, const PDB_RegisterId &Reg);
> > +raw_ostream &operator<<(raw_ostream &OS, const PDB_LocType &Loc);
> > +raw_ostream &operator<<(raw_ostream &OS, const PDB_ThunkOrdinal &Thunk);
> > +raw_ostream &operator<<(raw_ostream &OS, const PDB_Checksum &Checksum);
> > +raw_ostream &operator<<(raw_ostream &OS, const PDB_Lang &Lang);
> > +raw_ostream &operator<<(raw_ostream &OS, const PDB_SymType &Tag);
> > +raw_ostream &operator<<(raw_ostream &OS, const PDB_UniqueId &Id);
> > +raw_ostream &operator<<(raw_ostream &OS, const VersionInfo &Version);
> > +raw_ostream &operator<<(raw_ostream &OS, const TagStats &Stats);
> > +}
> > +
> > +#endif
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbol.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbol.h?rev=228755&r1=228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbol.h (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbol.h Tue Feb 10
> 16:43:25 2015
> > @@ -11,11 +11,13 @@
> > #define LLVM_DEBUGINFO_PDB_IPDBSYMBOL_H
> >
> > #include <memory>
> > +#include <unordered_map>
> >
> > #include "llvm/ADT/StringRef.h"
> > #include "llvm/Support/Casting.h"
> >
> > #include "IPDBRawSymbol.h"
> > +#include "PDBExtras.h"
> > #include "PDBTypes.h"
> >
> > #define FORWARD_SYMBOL_METHOD(MethodName)
> \
> > @@ -48,10 +50,12 @@ public:
> > /// call dump() on the underlying RawSymbol, which allows us to
> discover
> > /// unknown properties, but individual implementations of PDBSymbol may
> > /// override the behavior to only dump known fields.
> > - virtual void dump(llvm::raw_ostream &OS) const;
> > + virtual void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level)
> const = 0;
> > + void defaultDump(raw_ostream &OS, int Indent, PDB_DumpLevel Level)
> const;
> >
> > PDB_SymType getSymTag() const;
> >
> > + std::unique_ptr<IPDBEnumSymbols> findChildren(PDB_SymType Type)
> const;
> > std::unique_ptr<IPDBEnumSymbols>
> > findChildren(PDB_SymType Type, StringRef Name,
> > PDB_NameSearchFlags Flags) const;
> > @@ -61,7 +65,12 @@ public:
> > uint32_t RVA) const;
> > std::unique_ptr<IPDBEnumSymbols> findInlineFramesByRVA(uint32_t RVA)
> const;
> >
> > + const IPDBRawSymbol &getRawSymbol() const { return *RawSymbol; }
> > + IPDBRawSymbol &getRawSymbol() { return *RawSymbol; }
> > +
> > protected:
> > + std::unique_ptr<IPDBEnumSymbols> getChildStats(TagStats &Stats)
> const;
> > +
> > const IPDBSession &Session;
> > const std::unique_ptr<IPDBRawSymbol> RawSymbol;
> > };
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolAnnotation.h?rev=228755&r1=228754&r2=228755&
> view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h Tue Feb
> 10 16:43:25 2015
> > @@ -23,7 +23,7 @@ public:
> > PDBSymbolAnnotation(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> Symbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getAddressOffset)
> > FORWARD_SYMBOL_METHOD(getAddressSection)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolBlock.h?rev=228755&
> r1=228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h Tue Feb 10
> 16:43:25 2015
> > @@ -23,7 +23,7 @@ public:
> > PDBSymbolBlock(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> Symbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getAddressOffset)
> > FORWARD_SYMBOL_METHOD(getAddressSection)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolCompiland.h?rev=228755&r1=228754&r2=228755&
> view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h Tue Feb
> 10 16:43:25 2015
> > @@ -23,7 +23,7 @@ public:
> > PDBSymbolCompiland(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> CompilandSymbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(isEditAndContinueEnabled)
> > FORWARD_SYMBOL_METHOD(getLexicalParentId)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/
> PDBSymbolCompilandDetails.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h?rev=228755&r1=228754&r2=
> 228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h
> Tue Feb 10 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolCompilandDetails(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> Symbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > void getFrontEndVersion(VersionInfo &Version) const {
> > RawSymbol->getFrontEndVersion(Version);
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h?rev=228755&r1=228754&r2=228755&
> view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h Tue
> Feb 10 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolCompilandEnv(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> Symbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getLexicalParentId)
> > FORWARD_SYMBOL_METHOD(getName)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolCustom.h?rev=228755&
> r1=228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h Tue Feb 10
> 16:43:25 2015
> > @@ -27,7 +27,7 @@ public:
> > PDBSymbolCustom(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> CustomSymbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > void getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes);
> > FORWARD_SYMBOL_METHOD(getSymIndexId)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolData.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolData.h?rev=228755&r1=
> 228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolData.h (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolData.h Tue Feb 10
> 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolData(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> DataSymbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getAccess)
> > FORWARD_SYMBOL_METHOD(getAddressOffset)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolExe.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolExe.h?rev=228755&r1=228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolExe.h (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolExe.h Tue Feb 10
> 16:43:25 2015
> > @@ -24,7 +24,7 @@ public:
> > PDBSymbolExe(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> ExeSymbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getAge)
> > FORWARD_SYMBOL_METHOD(getGuid)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolFunc.h?rev=228755&r1=
> 228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h Tue Feb 10
> 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolFunc(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> FuncSymbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getAccess)
> > FORWARD_SYMBOL_METHOD(getAddressOffset)
> > @@ -46,8 +46,10 @@ public:
> > FORWARD_SYMBOL_METHOD(isStatic)
> > FORWARD_SYMBOL_METHOD(getLength)
> > FORWARD_SYMBOL_METHOD(getLexicalParentId)
> > + FORWARD_SYMBOL_METHOD(getLocalBasePointerRegisterId)
> > FORWARD_SYMBOL_METHOD(getLocationType)
> > FORWARD_SYMBOL_METHOD(getName)
> > + FORWARD_SYMBOL_METHOD(hasFramePointer)
> > FORWARD_SYMBOL_METHOD(hasNoInlineAttribute)
> > FORWARD_SYMBOL_METHOD(hasNoReturnAttribute)
> > FORWARD_SYMBOL_METHOD(isUnreached)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h?rev=228755&r1=228754&r2=228755&
> view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h Tue
> Feb 10 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolFuncDebugEnd(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol>
> FuncDebugEndSymbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getAddressOffset)
> > FORWARD_SYMBOL_METHOD(getAddressSection)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/
> PDBSymbolFuncDebugStart.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h?rev=
> 228755&r1=228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h Tue
> Feb 10 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolFuncDebugStart(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol>
> FuncDebugStartSymbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getAddressOffset)
> > FORWARD_SYMBOL_METHOD(getAddressSection)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolLabel.h?rev=228755&
> r1=228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h Tue Feb 10
> 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolLabel(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> LabelSymbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getAddressOffset)
> > FORWARD_SYMBOL_METHOD(getAddressSection)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h?rev=228755&r1=228754&r2=228755&
> view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h Tue
> Feb 10 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolPublicSymbol(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> PublicSymbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getAddressOffset)
> > FORWARD_SYMBOL_METHOD(getAddressSection)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolThunk.h?rev=228755&
> r1=228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h Tue Feb 10
> 16:43:25 2015
> > @@ -24,7 +24,7 @@ public:
> > PDBSymbolThunk(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> ThunkSymbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getAccess)
> > FORWARD_SYMBOL_METHOD(getAddressOffset)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolTypeArray.h?rev=228755&r1=228754&r2=228755&
> view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h Tue Feb
> 10 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolTypeArray(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> ArrayTypeSymbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getArrayIndexTypeId)
> > FORWARD_SYMBOL_METHOD(isConstType)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h?rev=
> 228755&r1=228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h Tue
> Feb 10 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolTypeBaseClass(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> Symbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getAccess)
> > FORWARD_SYMBOL_METHOD(getClassParentId)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h?rev=228755&r1=228754&r2=228755&
> view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h Tue
> Feb 10 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolTypeBuiltin(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> Symbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getBuiltinType)
> > FORWARD_SYMBOL_METHOD(isConstType)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h?rev=228755&r1=228754&r2=228755&
> view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h Tue Feb
> 10 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolTypeCustom(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> Symbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getOemId)
> > FORWARD_SYMBOL_METHOD(getOemSymbolId)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h?rev=
> 228755&r1=228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h Tue
> Feb 10 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolTypeDimension(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> Symbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getLowerBoundId)
> > FORWARD_SYMBOL_METHOD(getUpperBoundId)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h?rev=228755&r1=228754&r2=228755&
> view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h Tue Feb
> 10 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolTypeEnum(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> EnumTypeSymbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getBuiltinType)
> > FORWARD_SYMBOL_METHOD(getClassParentId)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h?rev=228755&r1=228754&r2=228755&
> view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h Tue Feb
> 10 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolTypeFriend(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> Symbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getClassParentId)
> > FORWARD_SYMBOL_METHOD(getName)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/
> PDBSymbolTypeFunctionArg.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h?rev=228755&r1=228754&r2=
> 228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h
> Tue Feb 10 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolTypeFunctionArg(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> Symbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getClassParentId)
> > FORWARD_SYMBOL_METHOD(getLexicalParentId)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/
> PDBSymbolTypeFunctionSig.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h?rev=228755&r1=228754&r2=
> 228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h
> Tue Feb 10 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolTypeFunctionSig(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> Symbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getCallingConvention)
> > FORWARD_SYMBOL_METHOD(getClassParentId)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h?rev=228755&r1=228754&r2=228755&
> view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h Tue
> Feb 10 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolTypeManaged(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> Symbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getName)
> > FORWARD_SYMBOL_METHOD(getSymIndexId)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolTypePointer.h?rev=228755&r1=228754&r2=228755&
> view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h Tue
> Feb 10 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolTypePointer(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> Symbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(isConstType)
> > FORWARD_SYMBOL_METHOD(getLength)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h?rev=228755&r1=228754&r2=228755&
> view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h Tue
> Feb 10 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolTypeTypedef(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> Symbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getBuiltinType)
> > FORWARD_SYMBOL_METHOD(getClassParentId)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h?rev=228755&
> r1=228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h Tue Feb 10
> 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolTypeUDT(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> UDTSymbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getClassParentId)
> > FORWARD_SYMBOL_METHOD(hasConstructor)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h?rev=228755&r1=228754&r2=228755&
> view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h Tue Feb
> 10 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolTypeVTable(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> VtblSymbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getClassParentId)
> > FORWARD_SYMBOL_METHOD(isConstType)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/
> PDBSymbolTypeVTableShape.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h?rev=228755&r1=228754&r2=
> 228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h
> Tue Feb 10 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolTypeVTableShape(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol>
> VtblShapeSymbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(isConstType)
> > FORWARD_SYMBOL_METHOD(getCount)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolUnknown.h?rev=228755&
> r1=228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h Tue Feb 10
> 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolUnknown(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> UnknownSymbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > static bool classof(const PDBSymbol *S) {
> > return (S->getSymTag() == PDB_SymType::None ||
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/
> PDBSymbolUsingNamespace.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h?rev=
> 228755&r1=228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h
> (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h Tue
> Feb 10 16:43:25 2015
> > @@ -22,7 +22,7 @@ public:
> > PDBSymbolUsingNamespace(const IPDBSession &PDBSession,
> > std::unique_ptr<IPDBRawSymbol> Symbol);
> >
> > - void dump(llvm::raw_ostream &OS) const override;
> > + void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const
> override;
> >
> > FORWARD_SYMBOL_METHOD(getLexicalParentId)
> > FORWARD_SYMBOL_METHOD(getName)
> >
> > Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBTypes.h
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/PDBTypes.h?rev=228755&r1=228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/include/llvm/DebugInfo/PDB/PDBTypes.h (original)
> > +++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBTypes.h Tue Feb 10
> 16:43:25 2015
> > @@ -11,6 +11,7 @@
> > #define LLVM_DEBUGINFO_PDB_PDBTYPES_H
> >
> > #include <stdint.h>
> > +#include <functional>
> > #include "llvm/Config/llvm-config.h"
> >
> > namespace llvm {
> > @@ -68,6 +69,12 @@ enum class PDB_ReaderType {
> > DIA = 0,
> > };
> >
> > +enum class PDB_DumpLevel {
> > + Compact,
> > + Normal,
> > + Detailed,
> > +};
> > +
> > /// Defines a 128-bit unique identifier. This maps to a GUID on
> Windows, but
> > /// is abstracted here for the purposes of non-Windows platforms that
> don't have
> > /// the GUID structure defined.
> > @@ -365,6 +372,58 @@ enum class PDB_BuiltinType {
> > HResult = 31
> > };
> >
> > +enum class PDB_RegisterId {
> > + Unknown = 0,
> > + VFrame = 30006,
> > + AL = 1,
> > + CL = 2,
> > + DL = 3,
> > + BL = 4,
> > + AH = 5,
> > + CH = 6,
> > + DH = 7,
> > + BH = 8,
> > + AX = 9,
> > + CX = 10,
> > + DX = 11,
> > + BX = 12,
> > + SP = 13,
> > + BP = 14,
> > + SI = 15,
> > + DI = 16,
> > + EAX = 17,
> > + ECX = 18,
> > + EDX = 19,
> > + EBX = 20,
> > + ESP = 21,
> > + EBP = 22,
> > + ESI = 23,
> > + EDI = 24,
> > + ES = 25,
> > + CS = 26,
> > + SS = 27,
> > + DS = 28,
> > + FS = 29,
> > + GS = 30,
> > + IP = 31,
> > + RAX = 328,
> > + RBX = 329,
> > + RCX = 330,
> > + RDX = 331,
> > + RSI = 332,
> > + RDI = 333,
> > + RBP = 334,
> > + RSP = 335,
> > + R8 = 336,
> > + R9 = 337,
> > + R10 = 338,
> > + R11 = 339,
> > + R12 = 340,
> > + R13 = 341,
> > + R14 = 342,
> > + R15 = 343,
> > +};
> > +
> > enum class PDB_MemberAccess { Private = 1, Protected = 2, Public = 3 };
> >
> > struct VersionInfo {
> > @@ -376,4 +435,15 @@ struct VersionInfo {
> >
> > } // namespace llvm
> >
> > +namespace std {
> > +template <> struct hash<llvm::PDB_SymType> {
> > + typedef llvm::PDB_SymType argument_type;
> > + typedef std::size_t result_type;
> > +
> > + result_type operator()(const argument_type &Arg) const {
> > + return std::hash<int>()(static_cast<int>(Arg));
> > + }
> > +};
> > +}
> > +
> > #endif
> >
> > Modified: llvm/trunk/lib/DebugInfo/PDB/CMakeLists.txt
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/
> DebugInfo/PDB/CMakeLists.txt?rev=228755&r1=228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/lib/DebugInfo/PDB/CMakeLists.txt (original)
> > +++ llvm/trunk/lib/DebugInfo/PDB/CMakeLists.txt Tue Feb 10 16:43:25 2015
> > @@ -30,7 +30,9 @@ endif()
> > list(APPEND LIBPDB_ADDITIONAL_HEADER_DIRS "../../../include/llvm/
> DebugInfo/PDB")
> >
> > add_llvm_library(LLVMDebugInfoPDB
> > + IPDBSourceFile.cpp
> > PDB.cpp
> > + PDBExtras.cpp
> > PDBInterfaceAnchors.cpp
> > PDBSymbol.cpp
> > PDBSymbolAnnotation.cpp
> >
> > Modified: llvm/trunk/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/
> DebugInfo/PDB/DIA/DIARawSymbol.cpp?rev=228755&
> r1=228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp (original)
> > +++ llvm/trunk/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp Tue Feb 10
> 16:43:25 2015
> > @@ -7,6 +7,7 @@
> > //
> > //===-------------------------------------------------------
> ---------------===//
> >
> > +#include "llvm/DebugInfo/PDB/PDBExtras.h"
> > #include "llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h"
> > #include "llvm/DebugInfo/PDB/DIA/DIARawSymbol.h"
> > #include "llvm/DebugInfo/PDB/DIA/DIASession.h"
> > @@ -54,13 +55,228 @@ PrivateGetDIAValue(IDiaSymbol *Symbol,
> > ::memcpy(&IdResult, &Result, sizeof(GUID));
> > return IdResult;
> > }
> > +
> > +template <typename ArgType>
> > +void DumpDIAValue(llvm::raw_ostream &OS, int Indent, StringRef Name,
> > + IDiaSymbol *Symbol,
> > + HRESULT (__stdcall IDiaSymbol::*Method)(ArgType *)) {
> > + ArgType Value;
> > + if (S_OK == (Symbol->*Method)(&Value)) {
> > + OS.indent(Indent);
> > + OS << Name << ": " << Value << "\n";
> > + }
> > +}
> > +
> > +void DumpDIAValue(llvm::raw_ostream &OS, int Indent, StringRef Name,
> > + IDiaSymbol *Symbol,
> > + HRESULT (__stdcall IDiaSymbol::*Method)(BSTR *)) {
> > + BSTR Value = nullptr;
> > + if (S_OK != (Symbol->*Method)(&Value))
> > + return;
> > + const char *Bytes = reinterpret_cast<const char *>(Value);
> > + ArrayRef<char> ByteArray(Bytes, ::SysStringByteLen(Value));
> > + std::string Result;
> > + if (llvm::convertUTF16ToUTF8String(ByteArray, Result)) {
> > + OS.indent(Indent);
> > + OS << Name << ": " << Result << "\n";
> > + }
> > + ::SysFreeString(Value);
> > +}
> > +}
> > +
> > +namespace llvm {
> > +raw_ostream &operator<<(raw_ostream &OS, const GUID &Guid) {
> > + const PDB_UniqueId *Id = reinterpret_cast<const PDB_UniqueId
> *>(&Guid);
> > + OS << *Id;
> > + return OS;
> > +}
> > }
> >
> > DIARawSymbol::DIARawSymbol(const DIASession &PDBSession,
> > CComPtr<IDiaSymbol> DiaSymbol)
> > : Session(PDBSession), Symbol(DiaSymbol) {}
> >
> > -void DIARawSymbol::dump(llvm::raw_ostream &OS) const {}
> > +#define RAW_METHOD_DUMP(Stream, Method)
> \
> > + DumpDIAValue(Stream, Indent, StringRef(#Method), Symbol,
> &IDiaSymbol::Method);
> > +
> > +void DIARawSymbol::dump(raw_ostream &OS, int Indent,
> > + PDB_DumpLevel Level) const {
> > + RAW_METHOD_DUMP(OS, get_access)
> > + RAW_METHOD_DUMP(OS, get_addressOffset)
> > + RAW_METHOD_DUMP(OS, get_addressSection)
> > + RAW_METHOD_DUMP(OS, get_age)
> > + RAW_METHOD_DUMP(OS, get_arrayIndexTypeId)
> > + RAW_METHOD_DUMP(OS, get_backEndMajor)
> > + RAW_METHOD_DUMP(OS, get_backEndMinor)
> > + RAW_METHOD_DUMP(OS, get_backEndBuild)
> > + RAW_METHOD_DUMP(OS, get_backEndQFE)
> > + RAW_METHOD_DUMP(OS, get_baseDataOffset)
> > + RAW_METHOD_DUMP(OS, get_baseDataSlot)
> > + RAW_METHOD_DUMP(OS, get_baseSymbolId)
> > + RAW_METHOD_DUMP(OS, get_builtInKind)
> > + RAW_METHOD_DUMP(OS, get_bitPosition)
> > + RAW_METHOD_DUMP(OS, get_callingConvention)
> > + RAW_METHOD_DUMP(OS, get_classParentId)
> > + RAW_METHOD_DUMP(OS, get_compilerName)
> > + RAW_METHOD_DUMP(OS, get_count)
> > + RAW_METHOD_DUMP(OS, get_countLiveRanges)
> > + RAW_METHOD_DUMP(OS, get_frontEndMajor)
> > + RAW_METHOD_DUMP(OS, get_frontEndMinor)
> > + RAW_METHOD_DUMP(OS, get_frontEndBuild)
> > + RAW_METHOD_DUMP(OS, get_frontEndQFE)
> > + RAW_METHOD_DUMP(OS, get_count)
> > + RAW_METHOD_DUMP(OS, get_lexicalParentId)
> > + RAW_METHOD_DUMP(OS, get_libraryName)
> > + RAW_METHOD_DUMP(OS, get_liveRangeStartAddressOffset)
> > + RAW_METHOD_DUMP(OS, get_liveRangeStartAddressSection)
> > + RAW_METHOD_DUMP(OS, get_liveRangeStartRelativeVirtualAddress)
> > + RAW_METHOD_DUMP(OS, get_localBasePointerRegisterId)
> > + RAW_METHOD_DUMP(OS, get_lowerBoundId)
> > + RAW_METHOD_DUMP(OS, get_memorySpaceKind)
> > + RAW_METHOD_DUMP(OS, get_name)
> > + RAW_METHOD_DUMP(OS, get_numberOfAcceleratorPointerTags)
> > + RAW_METHOD_DUMP(OS, get_numberOfColumns)
> > + RAW_METHOD_DUMP(OS, get_numberOfModifiers)
> > + RAW_METHOD_DUMP(OS, get_numberOfRegisterIndices)
> > + RAW_METHOD_DUMP(OS, get_numberOfRows)
> > + RAW_METHOD_DUMP(OS, get_objectFileName)
> > + RAW_METHOD_DUMP(OS, get_oemId)
> > + RAW_METHOD_DUMP(OS, get_oemSymbolId)
> > + RAW_METHOD_DUMP(OS, get_offsetInUdt)
> > + RAW_METHOD_DUMP(OS, get_platform)
> > + RAW_METHOD_DUMP(OS, get_rank)
> > + RAW_METHOD_DUMP(OS, get_registerId)
> > + RAW_METHOD_DUMP(OS, get_registerType)
> > + RAW_METHOD_DUMP(OS, get_relativeVirtualAddress)
> > + RAW_METHOD_DUMP(OS, get_samplerSlot)
> > + RAW_METHOD_DUMP(OS, get_signature)
> > + RAW_METHOD_DUMP(OS, get_sizeInUdt)
> > + RAW_METHOD_DUMP(OS, get_slot)
> > + RAW_METHOD_DUMP(OS, get_sourceFileName)
> > + RAW_METHOD_DUMP(OS, get_stride)
> > + RAW_METHOD_DUMP(OS, get_subTypeId)
> > + RAW_METHOD_DUMP(OS, get_symbolsFileName)
> > + RAW_METHOD_DUMP(OS, get_symIndexId)
> > + RAW_METHOD_DUMP(OS, get_targetOffset)
> > + RAW_METHOD_DUMP(OS, get_targetRelativeVirtualAddress)
> > + RAW_METHOD_DUMP(OS, get_targetVirtualAddress)
> > + RAW_METHOD_DUMP(OS, get_targetSection)
> > + RAW_METHOD_DUMP(OS, get_textureSlot)
> > + RAW_METHOD_DUMP(OS, get_timeStamp)
> > + RAW_METHOD_DUMP(OS, get_token)
> > + RAW_METHOD_DUMP(OS, get_typeId)
> > + RAW_METHOD_DUMP(OS, get_uavSlot)
> > + RAW_METHOD_DUMP(OS, get_undecoratedName)
> > + RAW_METHOD_DUMP(OS, get_unmodifiedTypeId)
> > + RAW_METHOD_DUMP(OS, get_upperBoundId)
> > + RAW_METHOD_DUMP(OS, get_virtualBaseDispIndex)
> > + RAW_METHOD_DUMP(OS, get_virtualBaseOffset)
> > + RAW_METHOD_DUMP(OS, get_virtualTableShapeId)
> > + RAW_METHOD_DUMP(OS, get_dataKind)
> > + RAW_METHOD_DUMP(OS, get_symTag)
> > + RAW_METHOD_DUMP(OS, get_guid)
> > + RAW_METHOD_DUMP(OS, get_offset)
> > + RAW_METHOD_DUMP(OS, get_thisAdjust)
> > + RAW_METHOD_DUMP(OS, get_virtualBasePointerOffset)
> > + RAW_METHOD_DUMP(OS, get_locationType)
> > + RAW_METHOD_DUMP(OS, get_machineType)
> > + RAW_METHOD_DUMP(OS, get_thunkOrdinal)
> > + RAW_METHOD_DUMP(OS, get_length)
> > + RAW_METHOD_DUMP(OS, get_liveRangeLength)
> > + RAW_METHOD_DUMP(OS, get_virtualAddress)
> > + RAW_METHOD_DUMP(OS, get_udtKind)
> > + RAW_METHOD_DUMP(OS, get_constructor)
> > + RAW_METHOD_DUMP(OS, get_customCallingConvention)
> > + RAW_METHOD_DUMP(OS, get_farReturn)
> > + RAW_METHOD_DUMP(OS, get_code)
> > + RAW_METHOD_DUMP(OS, get_compilerGenerated)
> > + RAW_METHOD_DUMP(OS, get_constType)
> > + RAW_METHOD_DUMP(OS, get_editAndContinueEnabled)
> > + RAW_METHOD_DUMP(OS, get_function)
> > + RAW_METHOD_DUMP(OS, get_stride)
> > + RAW_METHOD_DUMP(OS, get_noStackOrdering)
> > + RAW_METHOD_DUMP(OS, get_hasAlloca)
> > + RAW_METHOD_DUMP(OS, get_hasAssignmentOperator)
> > + RAW_METHOD_DUMP(OS, get_isCTypes)
> > + RAW_METHOD_DUMP(OS, get_hasCastOperator)
> > + RAW_METHOD_DUMP(OS, get_hasDebugInfo)
> > + RAW_METHOD_DUMP(OS, get_hasEH)
> > + RAW_METHOD_DUMP(OS, get_hasEHa)
> > + RAW_METHOD_DUMP(OS, get_hasInlAsm)
> > + RAW_METHOD_DUMP(OS, get_framePointerPresent)
> > + RAW_METHOD_DUMP(OS, get_inlSpec)
> > + RAW_METHOD_DUMP(OS, get_interruptReturn)
> > + RAW_METHOD_DUMP(OS, get_hasLongJump)
> > + RAW_METHOD_DUMP(OS, get_hasManagedCode)
> > + RAW_METHOD_DUMP(OS, get_hasNestedTypes)
> > + RAW_METHOD_DUMP(OS, get_noInline)
> > + RAW_METHOD_DUMP(OS, get_noReturn)
> > + RAW_METHOD_DUMP(OS, get_optimizedCodeDebugInfo)
> > + RAW_METHOD_DUMP(OS, get_overloadedOperator)
> > + RAW_METHOD_DUMP(OS, get_hasSEH)
> > + RAW_METHOD_DUMP(OS, get_hasSecurityChecks)
> > + RAW_METHOD_DUMP(OS, get_hasSetJump)
> > + RAW_METHOD_DUMP(OS, get_strictGSCheck)
> > + RAW_METHOD_DUMP(OS, get_isAcceleratorGroupSharedLocal)
> > + RAW_METHOD_DUMP(OS, get_isAcceleratorPointerTagLiveRange)
> > + RAW_METHOD_DUMP(OS, get_isAcceleratorStubFunction)
> > + RAW_METHOD_DUMP(OS, get_isAggregated)
> > + RAW_METHOD_DUMP(OS, get_intro)
> > + RAW_METHOD_DUMP(OS, get_isCVTCIL)
> > + RAW_METHOD_DUMP(OS, get_isConstructorVirtualBase)
> > + RAW_METHOD_DUMP(OS, get_isCxxReturnUdt)
> > + RAW_METHOD_DUMP(OS, get_isDataAligned)
> > + RAW_METHOD_DUMP(OS, get_isHLSLData)
> > + RAW_METHOD_DUMP(OS, get_isHotpatchable)
> > + RAW_METHOD_DUMP(OS, get_indirectVirtualBaseClass)
> > + RAW_METHOD_DUMP(OS, get_isInterfaceUdt)
> > + RAW_METHOD_DUMP(OS, get_intrinsic)
> > + RAW_METHOD_DUMP(OS, get_isLTCG)
> > + RAW_METHOD_DUMP(OS, get_isLocationControlFlowDependent)
> > + RAW_METHOD_DUMP(OS, get_isMSILNetmodule)
> > + RAW_METHOD_DUMP(OS, get_isMatrixRowMajor)
> > + RAW_METHOD_DUMP(OS, get_managed)
> > + RAW_METHOD_DUMP(OS, get_msil)
> > + RAW_METHOD_DUMP(OS, get_isMultipleInheritance)
> > + RAW_METHOD_DUMP(OS, get_isNaked)
> > + RAW_METHOD_DUMP(OS, get_nested)
> > + RAW_METHOD_DUMP(OS, get_isOptimizedAway)
> > + RAW_METHOD_DUMP(OS, get_packed)
> > + RAW_METHOD_DUMP(OS, get_isPointerBasedOnSymbolValue)
> > + RAW_METHOD_DUMP(OS, get_isPointerToDataMember)
> > + RAW_METHOD_DUMP(OS, get_isPointerToMemberFunction)
> > + RAW_METHOD_DUMP(OS, get_pure)
> > + RAW_METHOD_DUMP(OS, get_RValueReference)
> > + RAW_METHOD_DUMP(OS, get_isRefUdt)
> > + RAW_METHOD_DUMP(OS, get_reference)
> > + RAW_METHOD_DUMP(OS, get_restrictedType)
> > + RAW_METHOD_DUMP(OS, get_isReturnValue)
> > + RAW_METHOD_DUMP(OS, get_isSafeBuffers)
> > + RAW_METHOD_DUMP(OS, get_scoped)
> > + RAW_METHOD_DUMP(OS, get_isSdl)
> > + RAW_METHOD_DUMP(OS, get_isSingleInheritance)
> > + RAW_METHOD_DUMP(OS, get_isSplitted)
> > + RAW_METHOD_DUMP(OS, get_isStatic)
> > + RAW_METHOD_DUMP(OS, get_isStripped)
> > + RAW_METHOD_DUMP(OS, get_unalignedType)
> > + RAW_METHOD_DUMP(OS, get_notReached)
> > + RAW_METHOD_DUMP(OS, get_isValueUdt)
> > + RAW_METHOD_DUMP(OS, get_virtual)
> > + RAW_METHOD_DUMP(OS, get_virtualBaseClass)
> > + RAW_METHOD_DUMP(OS, get_isVirtualInheritance)
> > + RAW_METHOD_DUMP(OS, get_volatileType)
> > +}
> > +
> > +std::unique_ptr<IPDBEnumSymbols>
> > +DIARawSymbol::findChildren(PDB_SymType Type) const {
> > + enum SymTagEnum EnumVal = static_cast<enum SymTagEnum>(Type);
> > +
> > + CComPtr<IDiaEnumSymbols> DiaEnumerator;
> > + if (S_OK != Symbol->findChildren(EnumVal, nullptr, nsNone,
> &DiaEnumerator))
> > + return nullptr;
> > +
> > + return std::make_unique<DIAEnumSymbols>(Session, DiaEnumerator);
> > +}
> >
> > std::unique_ptr<IPDBEnumSymbols>
> > DIARawSymbol::findChildren(PDB_SymType Type, StringRef Name,
> > @@ -198,7 +414,7 @@ void DIARawSymbol::getFrontEndVersion(Ve
> > }
> >
> > PDB_Lang DIARawSymbol::getLanguage() const {
> > - return PrivateGetDIAValue<DWORD, PDB_Lang>(Symbol,
> &IDiaSymbol::get_count);
> > + return PrivateGetDIAValue<DWORD, PDB_Lang>(Symbol,
> &IDiaSymbol::get_language);
> > }
> >
> > uint32_t DIARawSymbol::getLexicalParentId() const {
> > @@ -224,9 +440,9 @@ uint32_t DIARawSymbol::getLiveRangeStart
> > Symbol, &IDiaSymbol::get_liveRangeStartRelativeVirtualAddress);
> > }
> >
> > -uint32_t DIARawSymbol::getLocalBasePointerRegisterId() const {
> > - return PrivateGetDIAValue(Symbol,
> > - &IDiaSymbol::get_
> localBasePointerRegisterId);
> > +PDB_RegisterId DIARawSymbol::getLocalBasePointerRegisterId() const {
> > + return PrivateGetDIAValue<DWORD, PDB_RegisterId>(
> > + Symbol, &IDiaSymbol::get_localBasePointerRegisterId);
> > }
> >
> > uint32_t DIARawSymbol::getLowerBoundId() const {
> > @@ -286,8 +502,9 @@ uint32_t DIARawSymbol::getRank() const {
> > return PrivateGetDIAValue(Symbol, &IDiaSymbol::get_rank);
> > }
> >
> > -uint32_t DIARawSymbol::getRegisterId() const {
> > - return PrivateGetDIAValue(Symbol, &IDiaSymbol::get_registerId);
> > +PDB_RegisterId DIARawSymbol::getRegisterId() const {
> > + return PrivateGetDIAValue<DWORD, PDB_RegisterId>(Symbol,
> > +
> &IDiaSymbol::get_registerId);
> > }
> >
> > uint32_t DIARawSymbol::getRegisterType() const {
> > @@ -486,7 +703,7 @@ bool DIARawSymbol::isFunction() const {
> > }
> >
> > bool DIARawSymbol::getAddressTaken() const {
> > - return PrivateGetDIAValue(Symbol, &IDiaSymbol::get_stride);
> > + return PrivateGetDIAValue(Symbol, &IDiaSymbol::get_addressTaken);
> > }
> >
> > bool DIARawSymbol::getNoStackOrdering() const {
> > @@ -533,6 +750,10 @@ bool DIARawSymbol::hasInterruptReturn()
> > return PrivateGetDIAValue(Symbol, &IDiaSymbol::get_interruptReturn);
> > }
> >
> > +bool DIARawSymbol::hasFramePointer() const {
> > + return PrivateGetDIAValue(Symbol, &IDiaSymbol::get_
> framePointerPresent);
> > +}
> > +
> > bool DIARawSymbol::hasLongJump() const {
> > return PrivateGetDIAValue(Symbol, &IDiaSymbol::get_hasLongJump);
> > }
> >
> > Modified: llvm/trunk/lib/DebugInfo/PDB/DIA/DIASession.cpp
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/
> DebugInfo/PDB/DIA/DIASession.cpp?rev=228755&r1=228754&r2=228755&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/lib/DebugInfo/PDB/DIA/DIASession.cpp (original)
> > +++ llvm/trunk/lib/DebugInfo/PDB/DIA/DIASession.cpp Tue Feb 10 16:43:25
> 2015
> > @@ -7,11 +7,14 @@
> > //
> > //===-------------------------------------------------------
> ---------------===//
> >
> > +#include "llvm/DebugInfo/PDB/PDBSymbolCompiland.h"
> > +#include "llvm/DebugInfo/PDB/PDBSymbolExe.h"
> > +
> > #include "llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h"
> > +#include "llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h"
> > #include "llvm/DebugInfo/PDB/DIA/DIARawSymbol.h"
> > #include "llvm/DebugInfo/PDB/DIA/DIASession.h"
> > #include "llvm/DebugInfo/PDB/DIA/DIASourceFile.h"
> > -#include "llvm/DebugInfo/PDB/PDBSymbolExe.h"
> > #include "llvm/Support/ConvertUTF.h"
> >
> > using namespace llvm;
> > @@ -75,6 +78,27 @@ std::unique_ptr<PDBSymbol> DIASession::g
> > return PDBSymbol::create(*this, std::move(RawSymbol));
> > }
> >
> > +std::unique_ptr<IPDBEnumSourceFiles> DIASession::getAllSourceFiles()
> const {
> > + CComPtr<IDiaEnumSourceFiles> Files;
> > + if (S_OK != Session->findFile(nullptr, nullptr, nsNone, &Files))
> > + return nullptr;
> > +
> > + return std::make_unique<DIAEnumSourceFiles>(*this, Files);
> > +}
> > +
> > +std::unique_ptr<IPDBEnumSourceFiles> DIASession::
> getSourceFilesForCompiland(
> > + const PDBSymbolCompiland &Compiland) const {
> > + CComPtr<IDiaEnumSourceFiles> Files;
> > +
> > + const DIARawSymbol &RawSymbol =
> > + static_cast<const DIARawSymbol &>(Compiland.getRawSymbol());
> > + if (S_OK !=
> > + Session->findFile(RawSymbol.getDiaSymbol(), nullptr, nsNone,
> &Files))
> > + return nullptr;
> > +
> > + return std::make_unique<DIAEnumSourceFiles>(*this, Files);
> > +}
> > +
> > std::unique_ptr<IPDBSourceFile>
> > DIASession::getSourceFileById(uint32_t FileId) const {
> > CComPtr<IDiaSourceFile> LocatedFile;
> >
> > Added: llvm/trunk/lib/DebugInfo/PDB/IPDBSourceFile.cpp
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/
> DebugInfo/PDB/IPDBSourceFile.cpp?rev=228755&view=auto
> > ============================================================
> ==================
> > --- llvm/trunk/lib/DebugInfo/PDB/IPDBSourceFile.cpp (added)
> > +++ llvm/trunk/lib/DebugInfo/PDB/IPDBSourceFile.cpp Tue Feb 10 16:43:25
> 2015
> > @@ -0,0 +1,34 @@
> > +//===- IPDBSourceFile.cpp - base interface for a PDB source file *- C++
> -*-===//
> > +//
> > +// The LLVM Compiler Infrastructure
> > +//
> > +// This file is distributed under the University of Illinois Open Source
> > +// License. See LICENSE.TXT for details.
> > +//
> > +//===------------------------------------------------------
> ----------------===//
> > +
> > +#include "llvm/DebugInfo/PDB/IPDBSourceFile.h"
> > +#include "llvm/DebugInfo/PDB/PDBExtras.h"
> > +#include "llvm/Support/Format.h"
> > +#include "llvm/Support/raw_ostream.h"
> > +
> > +using namespace llvm;
> > +
> > +IPDBSourceFile::~IPDBSourceFile() {}
> > +
> > +void IPDBSourceFile::dump(raw_ostream &OS, int Indent,
> > + PDB_DumpLevel Level) const {
> > + if (Level == PDB_DumpLevel::Compact) {
> > + OS.indent(Indent);
> > + PDB_Checksum ChecksumType = getChecksumType();
> > + OS << "[";
> > + if (ChecksumType != PDB_Checksum::None) {
> > + OS << ChecksumType << ": ";
> > + std::string Checksum = getChecksum();
> > + for (uint8_t c : Checksum)
> > + OS << format_hex_no_prefix(c, 2, true);
> > + } else
> > + OS << "No checksum";
> > + OS << "] " << getFileName() << "\n";
> > + }
> > +}
> >
> > Added: llvm/trunk/lib/DebugInfo/PDB/PDBExtras.cpp
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/
> DebugInfo/PDB/PDBExtras.cpp?rev=228755&view=auto
> > ============================================================
> ==================
> > --- llvm/trunk/lib/DebugInfo/PDB/PDBExtras.cpp (added)
> > +++ llvm/trunk/lib/DebugInfo/PDB/PDBExtras.cpp Tue Feb 10 16:43:25 2015
> > @@ -0,0 +1,219 @@
> > +//===- PDBExtras.cpp - helper functions and classes for PDBs -----*-
> C++-*-===//
> > +//
> > +// The LLVM Compiler Infrastructure
> > +//
> > +// This file is distributed under the University of Illinois Open Source
> > +// License. See LICENSE.TXT for details.
> > +//
> > +//===------------------------------------------------------
> ----------------===//
> > +
> > +#include "llvm/DebugInfo/PDB/PDBExtras.h"
> > +#include "llvm/ADT/ArrayRef.h"
> > +
> > +using namespace llvm;
> > +
> > +#define CASE_OUTPUT_ENUM_CLASS_STR(Class, Value, Str, Stream)
> \
> > + case Class::Value:
> \
> > + Stream << Str;
> \
> > + break;
> > +
> > +#define CASE_OUTPUT_ENUM_CLASS_NAME(Class, Value, Stream)
> \
> > + CASE_OUTPUT_ENUM_CLASS_STR(Class, Value, #Value, Stream)
> > +
> > +raw_ostream &llvm::operator<<(raw_ostream &OS, const stream_indent
> &Indent) {
> > + OS.indent(Indent.Width);
> > + return OS;
> > +}
> > +
> > +raw_ostream &llvm::operator<<(raw_ostream &OS, const PDB_RegisterId
> &Reg) {
> > + switch (Reg) {
> > + CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, AL, OS)
> > + CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, CL, OS)
> > + CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, DL, OS)
> > + CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, BL, OS)
> > + CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, AH, OS)
> > + CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, CH, OS)
> > + CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, DH, OS)
> > + CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, BH, OS)
> > + CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, AX, OS)
> > + CASE_OUTPUT_ENUM_CLASS_NAME(PDB_RegisterId, CX, OS)
> > + CASE
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150211/daed26dd/attachment.html>
More information about the llvm-commits
mailing list