Back to home page

EIC code displayed by LXR

 
 

    


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

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