File indexing completed on 2026-05-10 08:43:44
0001
0002
0003
0004
0005
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