Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:43:44

0001 //===- DIARawSymbol.h - DIA implementation of IPDBRawSymbol ----*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 
0009 #ifndef LLVM_DEBUGINFO_PDB_DIA_DIARAWSYMBOL_H
0010 #define LLVM_DEBUGINFO_PDB_DIA_DIARAWSYMBOL_H
0011 
0012 #include "DIASupport.h"
0013 #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
0014 
0015 namespace llvm {
0016 namespace pdb {
0017 class DIASession;
0018 class DIARawSymbol : public IPDBRawSymbol {
0019 public:
0020   DIARawSymbol(const DIASession &PDBSession, CComPtr<IDiaSymbol> DiaSymbol);
0021 
0022   void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields,
0023             PdbSymbolIdField RecurseIdFields) const override;
0024 
0025   CComPtr<IDiaSymbol> getDiaSymbol() const { return Symbol; }
0026 
0027   std::unique_ptr<IPDBEnumSymbols>
0028   findChildren(PDB_SymType Type) const override;
0029   std::unique_ptr<IPDBEnumSymbols>
0030   findChildren(PDB_SymType Type, StringRef Name,
0031                PDB_NameSearchFlags Flags) const override;
0032   std::unique_ptr<IPDBEnumSymbols>
0033   findChildrenByAddr(PDB_SymType Type, StringRef Name,
0034                      PDB_NameSearchFlags Flags,
0035                      uint32_t Section, uint32_t Offset) const override;
0036   std::unique_ptr<IPDBEnumSymbols>
0037   findChildrenByVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags,
0038                    uint64_t VA) const override;
0039   std::unique_ptr<IPDBEnumSymbols>
0040   findChildrenByRVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags,
0041                     uint32_t RVA) const override;
0042 
0043   std::unique_ptr<IPDBEnumSymbols>
0044   findInlineFramesByAddr(uint32_t Section, uint32_t Offset) const override;
0045   std::unique_ptr<IPDBEnumSymbols>
0046   findInlineFramesByRVA(uint32_t RVA) const override;
0047   std::unique_ptr<IPDBEnumSymbols>
0048   findInlineFramesByVA(uint64_t VA) const override;
0049 
0050   std::unique_ptr<IPDBEnumLineNumbers> findInlineeLines() const override;
0051   std::unique_ptr<IPDBEnumLineNumbers>
0052   findInlineeLinesByAddr(uint32_t Section, uint32_t Offset,
0053                          uint32_t Length) const override;
0054   std::unique_ptr<IPDBEnumLineNumbers>
0055   findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const override;
0056   std::unique_ptr<IPDBEnumLineNumbers>
0057   findInlineeLinesByVA(uint64_t VA, uint32_t Length) const override;
0058 
0059   void getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes) const override;
0060   void getFrontEndVersion(VersionInfo &Version) const override;
0061   void getBackEndVersion(VersionInfo &Version) const override;
0062   PDB_MemberAccess getAccess() const override;
0063   uint32_t getAddressOffset() const override;
0064   uint32_t getAddressSection() const override;
0065   uint32_t getAge() const override;
0066   SymIndexId getArrayIndexTypeId() const override;
0067   uint32_t getBaseDataOffset() const override;
0068   uint32_t getBaseDataSlot() const override;
0069   SymIndexId getBaseSymbolId() const override;
0070   PDB_BuiltinType getBuiltinType() const override;
0071   uint32_t getBitPosition() const override;
0072   PDB_CallingConv getCallingConvention() const override;
0073   SymIndexId getClassParentId() const override;
0074   std::string getCompilerName() const override;
0075   uint32_t getCount() const override;
0076   uint32_t getCountLiveRanges() const override;
0077   PDB_Lang getLanguage() const override;
0078   SymIndexId getLexicalParentId() const override;
0079   std::string getLibraryName() const override;
0080   uint32_t getLiveRangeStartAddressOffset() const override;
0081   uint32_t getLiveRangeStartAddressSection() const override;
0082   uint32_t getLiveRangeStartRelativeVirtualAddress() const override;
0083   codeview::RegisterId getLocalBasePointerRegisterId() const override;
0084   SymIndexId getLowerBoundId() const override;
0085   uint32_t getMemorySpaceKind() const override;
0086   std::string getName() const override;
0087   uint32_t getNumberOfAcceleratorPointerTags() const override;
0088   uint32_t getNumberOfColumns() const override;
0089   uint32_t getNumberOfModifiers() const override;
0090   uint32_t getNumberOfRegisterIndices() const override;
0091   uint32_t getNumberOfRows() const override;
0092   std::string getObjectFileName() const override;
0093   uint32_t getOemId() const override;
0094   SymIndexId getOemSymbolId() const override;
0095   uint32_t getOffsetInUdt() const override;
0096   PDB_Cpu getPlatform() const override;
0097   uint32_t getRank() const override;
0098   codeview::RegisterId getRegisterId() const override;
0099   uint32_t getRegisterType() const override;
0100   uint32_t getRelativeVirtualAddress() const override;
0101   uint32_t getSamplerSlot() const override;
0102   uint32_t getSignature() const override;
0103   uint32_t getSizeInUdt() const override;
0104   uint32_t getSlot() const override;
0105   std::string getSourceFileName() const override;
0106   std::unique_ptr<IPDBLineNumber> getSrcLineOnTypeDefn() const override;
0107   uint32_t getStride() const override;
0108   SymIndexId getSubTypeId() const override;
0109   std::string getSymbolsFileName() const override;
0110   SymIndexId getSymIndexId() const override;
0111   uint32_t getTargetOffset() const override;
0112   uint32_t getTargetRelativeVirtualAddress() const override;
0113   uint64_t getTargetVirtualAddress() const override;
0114   uint32_t getTargetSection() const override;
0115   uint32_t getTextureSlot() const override;
0116   uint32_t getTimeStamp() const override;
0117   uint32_t getToken() const override;
0118   SymIndexId getTypeId() const override;
0119   uint32_t getUavSlot() const override;
0120   std::string getUndecoratedName() const override;
0121   std::string getUndecoratedNameEx(PDB_UndnameFlags Flags) const override;
0122   SymIndexId getUnmodifiedTypeId() const override;
0123   SymIndexId getUpperBoundId() const override;
0124   Variant getValue() const override;
0125   uint32_t getVirtualBaseDispIndex() const override;
0126   uint32_t getVirtualBaseOffset() const override;
0127   SymIndexId getVirtualTableShapeId() const override;
0128   std::unique_ptr<PDBSymbolTypeBuiltin>
0129   getVirtualBaseTableType() const override;
0130   PDB_DataKind getDataKind() const override;
0131   PDB_SymType getSymTag() const override;
0132   codeview::GUID getGuid() const override;
0133   int32_t getOffset() const override;
0134   int32_t getThisAdjust() const override;
0135   int32_t getVirtualBasePointerOffset() const override;
0136   PDB_LocType getLocationType() const override;
0137   PDB_Machine getMachineType() const override;
0138   codeview::ThunkOrdinal getThunkOrdinal() const override;
0139   uint64_t getLength() const override;
0140   uint64_t getLiveRangeLength() const override;
0141   uint64_t getVirtualAddress() const override;
0142   PDB_UdtType getUdtKind() const override;
0143   bool hasConstructor() const override;
0144   bool hasCustomCallingConvention() const override;
0145   bool hasFarReturn() const override;
0146   bool isCode() const override;
0147   bool isCompilerGenerated() const override;
0148   bool isConstType() const override;
0149   bool isEditAndContinueEnabled() const override;
0150   bool isFunction() const override;
0151   bool getAddressTaken() const override;
0152   bool getNoStackOrdering() const override;
0153   bool hasAlloca() const override;
0154   bool hasAssignmentOperator() const override;
0155   bool hasCTypes() const override;
0156   bool hasCastOperator() const override;
0157   bool hasDebugInfo() const override;
0158   bool hasEH() const override;
0159   bool hasEHa() const override;
0160   bool hasInlAsm() const override;
0161   bool hasInlineAttribute() const override;
0162   bool hasInterruptReturn() const override;
0163   bool hasFramePointer() const override;
0164   bool hasLongJump() const override;
0165   bool hasManagedCode() const override;
0166   bool hasNestedTypes() const override;
0167   bool hasNoInlineAttribute() const override;
0168   bool hasNoReturnAttribute() const override;
0169   bool hasOptimizedCodeDebugInfo() const override;
0170   bool hasOverloadedOperator() const override;
0171   bool hasSEH() const override;
0172   bool hasSecurityChecks() const override;
0173   bool hasSetJump() const override;
0174   bool hasStrictGSCheck() const override;
0175   bool isAcceleratorGroupSharedLocal() const override;
0176   bool isAcceleratorPointerTagLiveRange() const override;
0177   bool isAcceleratorStubFunction() const override;
0178   bool isAggregated() const override;
0179   bool isIntroVirtualFunction() const override;
0180   bool isCVTCIL() const override;
0181   bool isConstructorVirtualBase() const override;
0182   bool isCxxReturnUdt() const override;
0183   bool isDataAligned() const override;
0184   bool isHLSLData() const override;
0185   bool isHotpatchable() const override;
0186   bool isIndirectVirtualBaseClass() const override;
0187   bool isInterfaceUdt() const override;
0188   bool isIntrinsic() const override;
0189   bool isLTCG() const override;
0190   bool isLocationControlFlowDependent() const override;
0191   bool isMSILNetmodule() const override;
0192   bool isMatrixRowMajor() const override;
0193   bool isManagedCode() const override;
0194   bool isMSILCode() const override;
0195   bool isMultipleInheritance() const override;
0196   bool isNaked() const override;
0197   bool isNested() const override;
0198   bool isOptimizedAway() const override;
0199   bool isPacked() const override;
0200   bool isPointerBasedOnSymbolValue() const override;
0201   bool isPointerToDataMember() const override;
0202   bool isPointerToMemberFunction() const override;
0203   bool isPureVirtual() const override;
0204   bool isRValueReference() const override;
0205   bool isRefUdt() const override;
0206   bool isReference() const override;
0207   bool isRestrictedType() const override;
0208   bool isReturnValue() const override;
0209   bool isSafeBuffers() const override;
0210   bool isScoped() const override;
0211   bool isSdl() const override;
0212   bool isSingleInheritance() const override;
0213   bool isSplitted() const override;
0214   bool isStatic() const override;
0215   bool hasPrivateSymbols() const override;
0216   bool isUnalignedType() const override;
0217   bool isUnreached() const override;
0218   bool isValueUdt() const override;
0219   bool isVirtual() const override;
0220   bool isVirtualBaseClass() const override;
0221   bool isVirtualInheritance() const override;
0222   bool isVolatileType() const override;
0223   bool wasInlined() const override;
0224   std::string getUnused() const override;
0225 
0226 private:
0227   const DIASession &Session;
0228   CComPtr<IDiaSymbol> Symbol;
0229 };
0230 }
0231 }
0232 
0233 #endif