Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. //===- DIARawSymbol.h - DIA implementation of IPDBRawSymbol ----*- C++ -*-===//
  2. //
  3. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4. // See https://llvm.org/LICENSE.txt for license information.
  5. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. //
  7. //===----------------------------------------------------------------------===//
  8.  
  9. #ifndef LLVM_DEBUGINFO_PDB_DIA_DIARAWSYMBOL_H
  10. #define LLVM_DEBUGINFO_PDB_DIA_DIARAWSYMBOL_H
  11.  
  12. #include "DIASupport.h"
  13. #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
  14.  
  15. namespace llvm {
  16. namespace pdb {
  17. class DIASession;
  18. class DIARawSymbol : public IPDBRawSymbol {
  19. public:
  20.   DIARawSymbol(const DIASession &PDBSession, CComPtr<IDiaSymbol> DiaSymbol);
  21.  
  22.   void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields,
  23.             PdbSymbolIdField RecurseIdFields) const override;
  24.  
  25.   CComPtr<IDiaSymbol> getDiaSymbol() const { return Symbol; }
  26.  
  27.   std::unique_ptr<IPDBEnumSymbols>
  28.   findChildren(PDB_SymType Type) const override;
  29.   std::unique_ptr<IPDBEnumSymbols>
  30.   findChildren(PDB_SymType Type, StringRef Name,
  31.                PDB_NameSearchFlags Flags) const override;
  32.   std::unique_ptr<IPDBEnumSymbols>
  33.   findChildrenByAddr(PDB_SymType Type, StringRef Name,
  34.                      PDB_NameSearchFlags Flags,
  35.                      uint32_t Section, uint32_t Offset) const override;
  36.   std::unique_ptr<IPDBEnumSymbols>
  37.   findChildrenByVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags,
  38.                    uint64_t VA) const override;
  39.   std::unique_ptr<IPDBEnumSymbols>
  40.   findChildrenByRVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags,
  41.                     uint32_t RVA) const override;
  42.  
  43.   std::unique_ptr<IPDBEnumSymbols>
  44.   findInlineFramesByAddr(uint32_t Section, uint32_t Offset) const override;
  45.   std::unique_ptr<IPDBEnumSymbols>
  46.   findInlineFramesByRVA(uint32_t RVA) const override;
  47.   std::unique_ptr<IPDBEnumSymbols>
  48.   findInlineFramesByVA(uint64_t VA) const override;
  49.  
  50.   std::unique_ptr<IPDBEnumLineNumbers> findInlineeLines() const override;
  51.   std::unique_ptr<IPDBEnumLineNumbers>
  52.   findInlineeLinesByAddr(uint32_t Section, uint32_t Offset,
  53.                          uint32_t Length) const override;
  54.   std::unique_ptr<IPDBEnumLineNumbers>
  55.   findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const override;
  56.   std::unique_ptr<IPDBEnumLineNumbers>
  57.   findInlineeLinesByVA(uint64_t VA, uint32_t Length) const override;
  58.  
  59.   void getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes) const override;
  60.   void getFrontEndVersion(VersionInfo &Version) const override;
  61.   void getBackEndVersion(VersionInfo &Version) const override;
  62.   PDB_MemberAccess getAccess() const override;
  63.   uint32_t getAddressOffset() const override;
  64.   uint32_t getAddressSection() const override;
  65.   uint32_t getAge() const override;
  66.   SymIndexId getArrayIndexTypeId() const override;
  67.   uint32_t getBaseDataOffset() const override;
  68.   uint32_t getBaseDataSlot() const override;
  69.   SymIndexId getBaseSymbolId() const override;
  70.   PDB_BuiltinType getBuiltinType() const override;
  71.   uint32_t getBitPosition() const override;
  72.   PDB_CallingConv getCallingConvention() const override;
  73.   SymIndexId getClassParentId() const override;
  74.   std::string getCompilerName() const override;
  75.   uint32_t getCount() const override;
  76.   uint32_t getCountLiveRanges() const override;
  77.   PDB_Lang getLanguage() const override;
  78.   SymIndexId getLexicalParentId() const override;
  79.   std::string getLibraryName() const override;
  80.   uint32_t getLiveRangeStartAddressOffset() const override;
  81.   uint32_t getLiveRangeStartAddressSection() const override;
  82.   uint32_t getLiveRangeStartRelativeVirtualAddress() const override;
  83.   codeview::RegisterId getLocalBasePointerRegisterId() const override;
  84.   SymIndexId getLowerBoundId() const override;
  85.   uint32_t getMemorySpaceKind() const override;
  86.   std::string getName() const override;
  87.   uint32_t getNumberOfAcceleratorPointerTags() const override;
  88.   uint32_t getNumberOfColumns() const override;
  89.   uint32_t getNumberOfModifiers() const override;
  90.   uint32_t getNumberOfRegisterIndices() const override;
  91.   uint32_t getNumberOfRows() const override;
  92.   std::string getObjectFileName() const override;
  93.   uint32_t getOemId() const override;
  94.   SymIndexId getOemSymbolId() const override;
  95.   uint32_t getOffsetInUdt() const override;
  96.   PDB_Cpu getPlatform() const override;
  97.   uint32_t getRank() const override;
  98.   codeview::RegisterId getRegisterId() const override;
  99.   uint32_t getRegisterType() const override;
  100.   uint32_t getRelativeVirtualAddress() const override;
  101.   uint32_t getSamplerSlot() const override;
  102.   uint32_t getSignature() const override;
  103.   uint32_t getSizeInUdt() const override;
  104.   uint32_t getSlot() const override;
  105.   std::string getSourceFileName() const override;
  106.   std::unique_ptr<IPDBLineNumber> getSrcLineOnTypeDefn() const override;
  107.   uint32_t getStride() const override;
  108.   SymIndexId getSubTypeId() const override;
  109.   std::string getSymbolsFileName() const override;
  110.   SymIndexId getSymIndexId() const override;
  111.   uint32_t getTargetOffset() const override;
  112.   uint32_t getTargetRelativeVirtualAddress() const override;
  113.   uint64_t getTargetVirtualAddress() const override;
  114.   uint32_t getTargetSection() const override;
  115.   uint32_t getTextureSlot() const override;
  116.   uint32_t getTimeStamp() const override;
  117.   uint32_t getToken() const override;
  118.   SymIndexId getTypeId() const override;
  119.   uint32_t getUavSlot() const override;
  120.   std::string getUndecoratedName() const override;
  121.   std::string getUndecoratedNameEx(PDB_UndnameFlags Flags) const override;
  122.   SymIndexId getUnmodifiedTypeId() const override;
  123.   SymIndexId getUpperBoundId() const override;
  124.   Variant getValue() const override;
  125.   uint32_t getVirtualBaseDispIndex() const override;
  126.   uint32_t getVirtualBaseOffset() const override;
  127.   SymIndexId getVirtualTableShapeId() const override;
  128.   std::unique_ptr<PDBSymbolTypeBuiltin>
  129.   getVirtualBaseTableType() const override;
  130.   PDB_DataKind getDataKind() const override;
  131.   PDB_SymType getSymTag() const override;
  132.   codeview::GUID getGuid() const override;
  133.   int32_t getOffset() const override;
  134.   int32_t getThisAdjust() const override;
  135.   int32_t getVirtualBasePointerOffset() const override;
  136.   PDB_LocType getLocationType() const override;
  137.   PDB_Machine getMachineType() const override;
  138.   codeview::ThunkOrdinal getThunkOrdinal() const override;
  139.   uint64_t getLength() const override;
  140.   uint64_t getLiveRangeLength() const override;
  141.   uint64_t getVirtualAddress() const override;
  142.   PDB_UdtType getUdtKind() const override;
  143.   bool hasConstructor() const override;
  144.   bool hasCustomCallingConvention() const override;
  145.   bool hasFarReturn() const override;
  146.   bool isCode() const override;
  147.   bool isCompilerGenerated() const override;
  148.   bool isConstType() const override;
  149.   bool isEditAndContinueEnabled() const override;
  150.   bool isFunction() const override;
  151.   bool getAddressTaken() const override;
  152.   bool getNoStackOrdering() const override;
  153.   bool hasAlloca() const override;
  154.   bool hasAssignmentOperator() const override;
  155.   bool hasCTypes() const override;
  156.   bool hasCastOperator() const override;
  157.   bool hasDebugInfo() const override;
  158.   bool hasEH() const override;
  159.   bool hasEHa() const override;
  160.   bool hasInlAsm() const override;
  161.   bool hasInlineAttribute() const override;
  162.   bool hasInterruptReturn() const override;
  163.   bool hasFramePointer() const override;
  164.   bool hasLongJump() const override;
  165.   bool hasManagedCode() const override;
  166.   bool hasNestedTypes() const override;
  167.   bool hasNoInlineAttribute() const override;
  168.   bool hasNoReturnAttribute() const override;
  169.   bool hasOptimizedCodeDebugInfo() const override;
  170.   bool hasOverloadedOperator() const override;
  171.   bool hasSEH() const override;
  172.   bool hasSecurityChecks() const override;
  173.   bool hasSetJump() const override;
  174.   bool hasStrictGSCheck() const override;
  175.   bool isAcceleratorGroupSharedLocal() const override;
  176.   bool isAcceleratorPointerTagLiveRange() const override;
  177.   bool isAcceleratorStubFunction() const override;
  178.   bool isAggregated() const override;
  179.   bool isIntroVirtualFunction() const override;
  180.   bool isCVTCIL() const override;
  181.   bool isConstructorVirtualBase() const override;
  182.   bool isCxxReturnUdt() const override;
  183.   bool isDataAligned() const override;
  184.   bool isHLSLData() const override;
  185.   bool isHotpatchable() const override;
  186.   bool isIndirectVirtualBaseClass() const override;
  187.   bool isInterfaceUdt() const override;
  188.   bool isIntrinsic() const override;
  189.   bool isLTCG() const override;
  190.   bool isLocationControlFlowDependent() const override;
  191.   bool isMSILNetmodule() const override;
  192.   bool isMatrixRowMajor() const override;
  193.   bool isManagedCode() const override;
  194.   bool isMSILCode() const override;
  195.   bool isMultipleInheritance() const override;
  196.   bool isNaked() const override;
  197.   bool isNested() const override;
  198.   bool isOptimizedAway() const override;
  199.   bool isPacked() const override;
  200.   bool isPointerBasedOnSymbolValue() const override;
  201.   bool isPointerToDataMember() const override;
  202.   bool isPointerToMemberFunction() const override;
  203.   bool isPureVirtual() const override;
  204.   bool isRValueReference() const override;
  205.   bool isRefUdt() const override;
  206.   bool isReference() const override;
  207.   bool isRestrictedType() const override;
  208.   bool isReturnValue() const override;
  209.   bool isSafeBuffers() const override;
  210.   bool isScoped() const override;
  211.   bool isSdl() const override;
  212.   bool isSingleInheritance() const override;
  213.   bool isSplitted() const override;
  214.   bool isStatic() const override;
  215.   bool hasPrivateSymbols() const override;
  216.   bool isUnalignedType() const override;
  217.   bool isUnreached() const override;
  218.   bool isValueUdt() const override;
  219.   bool isVirtual() const override;
  220.   bool isVirtualBaseClass() const override;
  221.   bool isVirtualInheritance() const override;
  222.   bool isVolatileType() const override;
  223.   bool wasInlined() const override;
  224.   std::string getUnused() const override;
  225.  
  226. private:
  227.   const DIASession &Session;
  228.   CComPtr<IDiaSymbol> Symbol;
  229. };
  230. }
  231. }
  232.  
  233. #endif
  234.