[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