[llvm] r325824 - [PDB] Implement more find methods for PDB symbols
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 22 12:01:56 PST 2018
I'm getting a warning from this commit with gcc
llvm/unittests/DebugInfo/PDB/PDBApiTest.cpp:145:3: warning:
'findChildrenByAddr' overrides a member function but is not marked
'override' [-Winconsistent-missing-override]
findChildrenByAddr(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags
Flags,
^
include/llvm/DebugInfo/PDB/IPDBRawSymbol.h:45:3: note: overridden virtual
function is here
findChildrenByAddr(PDB_SymType Type, StringRef Name,
~Craig
On Thu, Feb 22, 2018 at 11:47 AM, Aaron Smith via llvm-commits <
llvm-commits at lists.llvm.org> wrote:
> Author: asmith
> Date: Thu Feb 22 11:47:43 2018
> New Revision: 325824
>
> URL: http://llvm.org/viewvc/llvm-project?rev=325824&view=rev
> Log:
> [PDB] Implement more find methods for PDB symbols
>
> Summary:
> Add additional find methods on PDB raw symbols.
>
> findChildrenByAddr()
> findChildrenByVA()
> findInlineFramesByAddr()
> findInlineFramesByVA()
> findInlineLines()
> findInlineLinesByAddr()
> findInlineLinesByRVA()
> findInlineLinesByVA()
>
>
>
>
> Reviewers: zturner, llvm-commits
>
> Reviewed By: zturner
>
> Differential Revision: https://reviews.llvm.org/D43637
>
> Modified:
> llvm/trunk/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h
> llvm/trunk/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h
> llvm/trunk/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h
> llvm/trunk/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp
> llvm/trunk/lib/DebugInfo/PDB/Native/NativeRawSymbol.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=325824&r1=
> 325823&r2=325824&view=diff
> ============================================================
> ==================
> --- llvm/trunk/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h (original)
> +++ llvm/trunk/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h Thu Feb 22
> 11:47:43 2018
> @@ -30,10 +30,31 @@ public:
> findChildren(PDB_SymType Type, StringRef Name,
> PDB_NameSearchFlags Flags) const override;
> std::unique_ptr<IPDBEnumSymbols>
> + findChildrenByAddr(PDB_SymType Type, StringRef Name,
> + PDB_NameSearchFlags Flags,
> + uint32_t Section, uint32_t Offset) const override;
> + std::unique_ptr<IPDBEnumSymbols>
> + findChildrenByVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags
> Flags,
> + uint64_t VA) const override;
> + std::unique_ptr<IPDBEnumSymbols>
> findChildrenByRVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags
> Flags,
> uint32_t RVA) const override;
> +
> + std::unique_ptr<IPDBEnumSymbols>
> + findInlineFramesByAddr(uint32_t Section, uint32_t Offset) const
> override;
> std::unique_ptr<IPDBEnumSymbols>
> findInlineFramesByRVA(uint32_t RVA) const override;
> + std::unique_ptr<IPDBEnumSymbols>
> + findInlineFramesByVA(uint64_t VA) const override;
> +
> + std::unique_ptr<IPDBEnumLineNumbers> findInlineeLines() const override;
> + std::unique_ptr<IPDBEnumLineNumbers>
> + findInlineeLinesByAddr(uint32_t Section, uint32_t Offset,
> + uint32_t Length) const override;
> + std::unique_ptr<IPDBEnumLineNumbers>
> + findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const override;
> + std::unique_ptr<IPDBEnumLineNumbers>
> + findInlineeLinesByVA(uint64_t VA, uint32_t Length) const override;
>
> void getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes) const
> override;
> void getFrontEndVersion(VersionInfo &Version) 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=325824&r1=
> 325823&r2=325824&view=diff
> ============================================================
> ==================
> --- llvm/trunk/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h (original)
> +++ llvm/trunk/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h Thu Feb 22
> 11:47:43 2018
> @@ -42,10 +42,31 @@ public:
> findChildren(PDB_SymType Type, StringRef Name,
> PDB_NameSearchFlags Flags) const = 0;
> virtual std::unique_ptr<IPDBEnumSymbols>
> + findChildrenByAddr(PDB_SymType Type, StringRef Name,
> + PDB_NameSearchFlags Flags,
> + uint32_t Section, uint32_t Offset) const = 0;
> + virtual std::unique_ptr<IPDBEnumSymbols>
> + findChildrenByVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags
> Flags,
> + uint64_t VA) const = 0;
> + virtual std::unique_ptr<IPDBEnumSymbols>
> findChildrenByRVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags
> Flags,
> uint32_t RVA) const = 0;
> +
> + virtual std::unique_ptr<IPDBEnumSymbols>
> + findInlineFramesByAddr(uint32_t Section, uint32_t Offset) const = 0;
> virtual std::unique_ptr<IPDBEnumSymbols>
> findInlineFramesByRVA(uint32_t RVA) const = 0;
> + virtual std::unique_ptr<IPDBEnumSymbols>
> + findInlineFramesByVA(uint64_t VA) const = 0;
> +
> + virtual std::unique_ptr<IPDBEnumLineNumbers> findInlineeLines() const
> = 0;
> + virtual std::unique_ptr<IPDBEnumLineNumbers>
> + findInlineeLinesByAddr(uint32_t Section, uint32_t Offset,
> + uint32_t Length) const = 0;
> + virtual std::unique_ptr<IPDBEnumLineNumbers>
> + findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const = 0;
> + virtual std::unique_ptr<IPDBEnumLineNumbers>
> + findInlineeLinesByVA(uint64_t VA, uint32_t Length) const = 0;
>
> virtual void getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes) const
> = 0;
> virtual void getBackEndVersion(VersionInfo &Version) const = 0;
>
> Modified: llvm/trunk/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/
> llvm/DebugInfo/PDB/Native/NativeRawSymbol.h?rev=325824&
> r1=325823&r2=325824&view=diff
> ============================================================
> ==================
> --- llvm/trunk/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h
> (original)
> +++ llvm/trunk/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h Thu
> Feb 22 11:47:43 2018
> @@ -35,10 +35,31 @@ public:
> findChildren(PDB_SymType Type, StringRef Name,
> PDB_NameSearchFlags Flags) const override;
> std::unique_ptr<IPDBEnumSymbols>
> + findChildrenByAddr(PDB_SymType Type, StringRef Name,
> + PDB_NameSearchFlags Flags,
> + uint32_t Section, uint32_t Offset) const override;
> + std::unique_ptr<IPDBEnumSymbols>
> + findChildrenByVA(PDB_SymType Type, StringRef Name,
> PDB_NameSearchFlags Flags,
> + uint64_t VA) const override;
> + std::unique_ptr<IPDBEnumSymbols>
> findChildrenByRVA(PDB_SymType Type, StringRef Name,
> PDB_NameSearchFlags Flags,
> uint32_t RVA) const override;
> +
> + std::unique_ptr<IPDBEnumSymbols>
> + findInlineFramesByAddr(uint32_t Section, uint32_t Offset) const
> override;
> std::unique_ptr<IPDBEnumSymbols>
> findInlineFramesByRVA(uint32_t RVA) const override;
> + std::unique_ptr<IPDBEnumSymbols>
> + findInlineFramesByVA(uint64_t VA) const override;
> +
> + std::unique_ptr<IPDBEnumLineNumbers> findInlineeLines() const override;
> + std::unique_ptr<IPDBEnumLineNumbers>
> + findInlineeLinesByAddr(uint32_t Section, uint32_t Offset,
> + uint32_t Length) const override;
> + std::unique_ptr<IPDBEnumLineNumbers>
> + findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const override;
> + std::unique_ptr<IPDBEnumLineNumbers>
> + findInlineeLinesByVA(uint64_t VA, uint32_t Length) const override;
>
> void getDataBytes(SmallVector<uint8_t, 32> &Bytes) const override;
> void getFrontEndVersion(VersionInfo &Version) const override;
>
> 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=325824&r1=325823&r2=325824&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp (original)
> +++ llvm/trunk/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp Thu Feb 22 11:47:43
> 2018
> @@ -400,6 +400,47 @@ DIARawSymbol::findChildren(PDB_SymType T
> }
>
> std::unique_ptr<IPDBEnumSymbols>
> +DIARawSymbol::findChildrenByAddr(PDB_SymType Type, StringRef Name,
> + PDB_NameSearchFlags Flags, uint32_t
> Section,
> + uint32_t Offset) const {
> + llvm::SmallVector<UTF16, 32> Name16;
> + llvm::convertUTF8ToUTF16String(Name, Name16);
> +
> + enum SymTagEnum EnumVal = static_cast<enum SymTagEnum>(Type);
> +
> + DWORD CompareFlags = static_cast<DWORD>(Flags);
> + wchar_t *Name16Str = reinterpret_cast<wchar_t *>(Name16.data());
> +
> + CComPtr<IDiaEnumSymbols> DiaEnumerator;
> + if (S_OK !=
> + Symbol->findChildrenExByAddr(EnumVal, Name16Str, CompareFlags,
> Section,
> + Offset, &DiaEnumerator))
> + return nullptr;
> +
> + return llvm::make_unique<DIAEnumSymbols>(Session, DiaEnumerator);
> +}
> +
> +std::unique_ptr<IPDBEnumSymbols>
> +DIARawSymbol::findChildrenByVA(PDB_SymType Type, StringRef Name,
> + PDB_NameSearchFlags Flags, uint64_t VA)
> const {
> + llvm::SmallVector<UTF16, 32> Name16;
> + llvm::convertUTF8ToUTF16String(Name, Name16);
> +
> + enum SymTagEnum EnumVal = static_cast<enum SymTagEnum>(Type);
> +
> + DWORD CompareFlags = static_cast<DWORD>(Flags);
> + wchar_t *Name16Str = reinterpret_cast<wchar_t *>(Name16.data());
> +
> + CComPtr<IDiaEnumSymbols> DiaEnumerator;
> + if (S_OK !=
> + Symbol->findChildrenExByVA(EnumVal, Name16Str, CompareFlags, VA,
> + &DiaEnumerator))
> + return nullptr;
> +
> + return llvm::make_unique<DIAEnumSymbols>(Session, DiaEnumerator);
> +}
> +
> +std::unique_ptr<IPDBEnumSymbols>
> DIARawSymbol::findChildrenByRVA(PDB_SymType Type, StringRef Name,
> PDB_NameSearchFlags Flags, uint32_t RVA)
> const {
> llvm::SmallVector<UTF16, 32> Name16;
> @@ -419,6 +460,15 @@ DIARawSymbol::findChildrenByRVA(PDB_SymT
> }
>
> std::unique_ptr<IPDBEnumSymbols>
> +DIARawSymbol::findInlineFramesByAddr(uint32_t Section, uint32_t Offset)
> const {
> + CComPtr<IDiaEnumSymbols> DiaEnumerator;
> + if (S_OK != Symbol->findInlineFramesByAddr(Section, Offset,
> &DiaEnumerator))
> + return nullptr;
> +
> + return llvm::make_unique<DIAEnumSymbols>(Session, DiaEnumerator);
> +}
> +
> +std::unique_ptr<IPDBEnumSymbols>
> DIARawSymbol::findInlineFramesByRVA(uint32_t RVA) const {
> CComPtr<IDiaEnumSymbols> DiaEnumerator;
> if (S_OK != Symbol->findInlineFramesByRVA(RVA, &DiaEnumerator))
> @@ -427,6 +477,51 @@ DIARawSymbol::findInlineFramesByRVA(uint
> return llvm::make_unique<DIAEnumSymbols>(Session, DiaEnumerator);
> }
>
> +std::unique_ptr<IPDBEnumSymbols>
> +DIARawSymbol::findInlineFramesByVA(uint64_t VA) const {
> + CComPtr<IDiaEnumSymbols> DiaEnumerator;
> + if (S_OK != Symbol->findInlineFramesByVA(VA, &DiaEnumerator))
> + return nullptr;
> +
> + return llvm::make_unique<DIAEnumSymbols>(Session, DiaEnumerator);
> +}
> +
> +std::unique_ptr<IPDBEnumLineNumbers> DIARawSymbol::findInlineeLines()
> const {
> + CComPtr<IDiaEnumLineNumbers> DiaEnumerator;
> + if (S_OK != Symbol->findInlineeLines(&DiaEnumerator))
> + return nullptr;
> +
> + return llvm::make_unique<DIAEnumLineNumbers>(DiaEnumerator);
> +}
> +
> +std::unique_ptr<IPDBEnumLineNumbers>
> +DIARawSymbol::findInlineeLinesByAddr(uint32_t Section, uint32_t Offset,
> + uint32_t Length) const {
> + CComPtr<IDiaEnumLineNumbers> DiaEnumerator;
> + if (S_OK != Symbol->findInlineeLinesByAddr(Section, Offset, Length,
> &DiaEnumerator))
> + return nullptr;
> +
> + return llvm::make_unique<DIAEnumLineNumbers>(DiaEnumerator);
> +}
> +
> +std::unique_ptr<IPDBEnumLineNumbers>
> +DIARawSymbol::findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const
> {
> + CComPtr<IDiaEnumLineNumbers> DiaEnumerator;
> + if (S_OK != Symbol->findInlineeLinesByRVA(RVA, Length, &DiaEnumerator))
> + return nullptr;
> +
> + return llvm::make_unique<DIAEnumLineNumbers>(DiaEnumerator);
> +}
> +
> +std::unique_ptr<IPDBEnumLineNumbers>
> +DIARawSymbol::findInlineeLinesByVA(uint64_t VA, uint32_t Length) const {
> + CComPtr<IDiaEnumLineNumbers> DiaEnumerator;
> + if (S_OK != Symbol->findInlineeLinesByVA(VA, Length, &DiaEnumerator))
> + return nullptr;
> +
> + return llvm::make_unique<DIAEnumLineNumbers>(DiaEnumerator);
> +}
> +
> void DIARawSymbol::getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes)
> const {
> bytes.clear();
>
>
> Modified: llvm/trunk/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/
> DebugInfo/PDB/Native/NativeRawSymbol.cpp?rev=325824&r1=325823&r2=325824&
> view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp (original)
> +++ llvm/trunk/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp Thu Feb 22
> 11:47:43 2018
> @@ -30,16 +30,60 @@ NativeRawSymbol::findChildren(PDB_SymTyp
> }
>
> std::unique_ptr<IPDBEnumSymbols>
> +NativeRawSymbol::findChildrenByAddr(PDB_SymType Type, StringRef Name,
> + PDB_NameSearchFlags Flags, uint32_t Section, uint32_t Offset) const {
> + return nullptr;
> +}
> +
> +std::unique_ptr<IPDBEnumSymbols>
> +NativeRawSymbol::findChildrenByVA(PDB_SymType Type, StringRef Name,
> + PDB_NameSearchFlags Flags, uint64_t VA) const {
> + return nullptr;
> +}
> +
> +std::unique_ptr<IPDBEnumSymbols>
> NativeRawSymbol::findChildrenByRVA(PDB_SymType Type, StringRef Name,
> PDB_NameSearchFlags Flags, uint32_t RVA) const {
> return nullptr;
> }
>
> std::unique_ptr<IPDBEnumSymbols>
> +NativeRawSymbol::findInlineFramesByAddr(uint32_t Section,
> + uint32_t Offset) const {
> + return nullptr;
> +}
> +
> +std::unique_ptr<IPDBEnumSymbols>
> NativeRawSymbol::findInlineFramesByRVA(uint32_t RVA) const {
> return nullptr;
> }
>
> +std::unique_ptr<IPDBEnumSymbols>
> +NativeRawSymbol::findInlineFramesByVA(uint64_t VA) const {
> + return nullptr;
> +}
> +
> +std::unique_ptr<IPDBEnumLineNumbers>
> +NativeRawSymbol::findInlineeLines() const {
> + return nullptr;
> +}
> +
> +std::unique_ptr<IPDBEnumLineNumbers>
> +NativeRawSymbol::findInlineeLinesByAddr(uint32_t Section, uint32_t
> Offset,
> + uint32_t Length) const {
> + return nullptr;
> +}
> +
> +std::unique_ptr<IPDBEnumLineNumbers>
> +NativeRawSymbol::findInlineeLinesByRVA(uint32_t RVA, uint32_t Length)
> const {
> + return nullptr;
> +}
> +
> +std::unique_ptr<IPDBEnumLineNumbers>
> +NativeRawSymbol::findInlineeLinesByVA(uint64_t VA, uint32_t Length)
> const {
> + return nullptr;
> +}
> +
> void NativeRawSymbol::getDataBytes(SmallVector<uint8_t, 32> &bytes)
> const {
> bytes.clear();
> }
>
> Modified: llvm/trunk/unittests/DebugInfo/PDB/PDBApiTest.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/
> DebugInfo/PDB/PDBApiTest.cpp?rev=325824&r1=325823&r2=325824&view=diff
> ============================================================
> ==================
> --- llvm/trunk/unittests/DebugInfo/PDB/PDBApiTest.cpp (original)
> +++ llvm/trunk/unittests/DebugInfo/PDB/PDBApiTest.cpp Thu Feb 22 11:47:43
> 2018
> @@ -142,14 +142,48 @@ public:
> return nullptr;
> }
> std::unique_ptr<IPDBEnumSymbols>
> + findChildrenByAddr(PDB_SymType Type, StringRef Name,
> PDB_NameSearchFlags Flags,
> + uint32_t Section, uint32_t Offset) const {
> + return nullptr;
> + }
> + std::unique_ptr<IPDBEnumSymbols>
> + findChildrenByVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags
> Flags,
> + uint64_t VA) const override {
> + return nullptr;
> + }
> + std::unique_ptr<IPDBEnumSymbols>
> findChildrenByRVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags
> Flags,
> uint32_t RVA) const override {
> return nullptr;
> }
> std::unique_ptr<IPDBEnumSymbols>
> + findInlineFramesByAddr(uint32_t Section, uint32_t Offset) const
> override {
> + return nullptr;
> + }
> + std::unique_ptr<IPDBEnumSymbols>
> findInlineFramesByRVA(uint32_t RVA) const override {
> return nullptr;
> }
> + std::unique_ptr<IPDBEnumSymbols>
> + findInlineFramesByVA(uint64_t VA) const override {
> + return nullptr;
> + }
> + std::unique_ptr<IPDBEnumLineNumbers> findInlineeLines() const override
> {
> + return nullptr;
> + }
> + std::unique_ptr<IPDBEnumLineNumbers>
> + findInlineeLinesByAddr(uint32_t Section, uint32_t Offset,
> + uint32_t Length) const override {
> + return nullptr;
> + }
> + std::unique_ptr<IPDBEnumLineNumbers>
> + findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const override {
> + return nullptr;
> + }
> + std::unique_ptr<IPDBEnumLineNumbers>
> + findInlineeLinesByVA(uint64_t VA, uint32_t Length) const override {
> + return nullptr;
> + }
>
> void getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes) const
> override {}
> void getFrontEndVersion(VersionInfo &Version) const override {}
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180222/c882a364/attachment.html>
More information about the llvm-commits
mailing list