File indexing completed on 2026-05-10 08:43:45
0001
0002
0003
0004
0005
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 }
0238 }
0239
0240 #endif