LLVM  14.0.0git
IPDBRawSymbol.h
Go to the documentation of this file.
1 //===- IPDBRawSymbol.h - base interface for PDB symbol types ----*- 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_IPDBRAWSYMBOL_H
10 #define LLVM_DEBUGINFO_PDB_IPDBRAWSYMBOL_H
11 
12 #include "PDBTypes.h"
13 #include "llvm/ADT/BitmaskEnum.h"
14 #include "llvm/ADT/SmallVector.h"
16 #include <memory>
17 
18 namespace llvm {
19 class raw_ostream;
20 class StringRef;
21 
22 namespace pdb {
23 
24 enum class PdbSymbolIdField : uint32_t {
25  None = 0,
26  SymIndexId = 1 << 0,
27  LexicalParent = 1 << 1,
28  ClassParent = 1 << 2,
29  Type = 1 << 3,
30  UnmodifiedType = 1 << 4,
31  All = 0xFFFFFFFF,
32  LLVM_MARK_AS_BITMASK_ENUM(/* LargestValue = */ All)
33 };
34 
36  int Indent, const IPDBSession &Session,
37  PdbSymbolIdField FieldId, PdbSymbolIdField ShowFlags,
38  PdbSymbolIdField RecurseFlags);
39 
40 /// IPDBRawSymbol defines an interface used to represent an arbitrary symbol.
41 /// It exposes a monolithic interface consisting of accessors for the union of
42 /// all properties that are valid for any symbol type. This interface is then
43 /// wrapped by a concrete class which exposes only those set of methods valid
44 /// for this particular symbol type. See PDBSymbol.h for more details.
46 public:
47  virtual ~IPDBRawSymbol();
48 
49  virtual void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields,
50  PdbSymbolIdField RecurseIdFields) const = 0;
51 
52  virtual std::unique_ptr<IPDBEnumSymbols>
53  findChildren(PDB_SymType Type) const = 0;
54 
55  virtual std::unique_ptr<IPDBEnumSymbols>
57  PDB_NameSearchFlags Flags) const = 0;
58  virtual std::unique_ptr<IPDBEnumSymbols>
60  PDB_NameSearchFlags Flags,
61  uint32_t Section, uint32_t Offset) const = 0;
62  virtual std::unique_ptr<IPDBEnumSymbols>
64  uint64_t VA) const = 0;
65  virtual std::unique_ptr<IPDBEnumSymbols>
67  uint32_t RVA) const = 0;
68 
69  virtual std::unique_ptr<IPDBEnumSymbols>
71  virtual std::unique_ptr<IPDBEnumSymbols>
72  findInlineFramesByRVA(uint32_t RVA) const = 0;
73  virtual std::unique_ptr<IPDBEnumSymbols>
74  findInlineFramesByVA(uint64_t VA) const = 0;
75 
76  virtual std::unique_ptr<IPDBEnumLineNumbers> findInlineeLines() const = 0;
77  virtual std::unique_ptr<IPDBEnumLineNumbers>
79  uint32_t Length) const = 0;
80  virtual std::unique_ptr<IPDBEnumLineNumbers>
81  findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const = 0;
82  virtual std::unique_ptr<IPDBEnumLineNumbers>
83  findInlineeLinesByVA(uint64_t VA, uint32_t Length) const = 0;
84 
85  virtual void getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes) const = 0;
86  virtual void getBackEndVersion(VersionInfo &Version) const = 0;
87  virtual PDB_MemberAccess getAccess() const = 0;
88  virtual uint32_t getAddressOffset() const = 0;
89  virtual uint32_t getAddressSection() const = 0;
90  virtual uint32_t getAge() const = 0;
91  virtual SymIndexId getArrayIndexTypeId() const = 0;
92  virtual uint32_t getBaseDataOffset() const = 0;
93  virtual uint32_t getBaseDataSlot() const = 0;
94  virtual SymIndexId getBaseSymbolId() const = 0;
95  virtual PDB_BuiltinType getBuiltinType() const = 0;
96  virtual uint32_t getBitPosition() const = 0;
97  virtual PDB_CallingConv getCallingConvention() const = 0;
98  virtual SymIndexId getClassParentId() const = 0;
99  virtual std::string getCompilerName() const = 0;
100  virtual uint32_t getCount() const = 0;
101  virtual uint32_t getCountLiveRanges() const = 0;
102  virtual void getFrontEndVersion(VersionInfo &Version) const = 0;
103  virtual PDB_Lang getLanguage() const = 0;
104  virtual SymIndexId getLexicalParentId() const = 0;
105  virtual std::string getLibraryName() const = 0;
106  virtual uint32_t getLiveRangeStartAddressOffset() const = 0;
107  virtual uint32_t getLiveRangeStartAddressSection() const = 0;
110  virtual SymIndexId getLowerBoundId() const = 0;
111  virtual uint32_t getMemorySpaceKind() const = 0;
112  virtual std::string getName() const = 0;
113  virtual uint32_t getNumberOfAcceleratorPointerTags() const = 0;
114  virtual uint32_t getNumberOfColumns() const = 0;
115  virtual uint32_t getNumberOfModifiers() const = 0;
116  virtual uint32_t getNumberOfRegisterIndices() const = 0;
117  virtual uint32_t getNumberOfRows() const = 0;
118  virtual std::string getObjectFileName() const = 0;
119  virtual uint32_t getOemId() const = 0;
120  virtual SymIndexId getOemSymbolId() const = 0;
121  virtual uint32_t getOffsetInUdt() const = 0;
122  virtual PDB_Cpu getPlatform() const = 0;
123  virtual uint32_t getRank() const = 0;
124  virtual codeview::RegisterId getRegisterId() const = 0;
125  virtual uint32_t getRegisterType() const = 0;
126  virtual uint32_t getRelativeVirtualAddress() const = 0;
127  virtual uint32_t getSamplerSlot() const = 0;
128  virtual uint32_t getSignature() const = 0;
129  virtual uint32_t getSizeInUdt() const = 0;
130  virtual uint32_t getSlot() const = 0;
131  virtual std::string getSourceFileName() const = 0;
132  virtual std::unique_ptr<IPDBLineNumber>
133  getSrcLineOnTypeDefn() const = 0;
134  virtual uint32_t getStride() const = 0;
135  virtual SymIndexId getSubTypeId() const = 0;
136  virtual std::string getSymbolsFileName() const = 0;
137  virtual SymIndexId getSymIndexId() const = 0;
138  virtual uint32_t getTargetOffset() const = 0;
139  virtual uint32_t getTargetRelativeVirtualAddress() const = 0;
140  virtual uint64_t getTargetVirtualAddress() const = 0;
141  virtual uint32_t getTargetSection() const = 0;
142  virtual uint32_t getTextureSlot() const = 0;
143  virtual uint32_t getTimeStamp() const = 0;
144  virtual uint32_t getToken() const = 0;
145  virtual SymIndexId getTypeId() const = 0;
146  virtual uint32_t getUavSlot() const = 0;
147  virtual std::string getUndecoratedName() const = 0;
148  virtual std::string getUndecoratedNameEx(PDB_UndnameFlags Flags) const = 0;
149  virtual SymIndexId getUnmodifiedTypeId() const = 0;
150  virtual SymIndexId getUpperBoundId() const = 0;
151  virtual Variant getValue() const = 0;
152  virtual uint32_t getVirtualBaseDispIndex() const = 0;
153  virtual uint32_t getVirtualBaseOffset() const = 0;
154  virtual std::unique_ptr<PDBSymbolTypeBuiltin>
155  getVirtualBaseTableType() const = 0;
156  virtual SymIndexId getVirtualTableShapeId() const = 0;
157  virtual PDB_DataKind getDataKind() const = 0;
158  virtual PDB_SymType getSymTag() const = 0;
159  virtual codeview::GUID getGuid() const = 0;
160  virtual int32_t getOffset() const = 0;
161  virtual int32_t getThisAdjust() const = 0;
162  virtual int32_t getVirtualBasePointerOffset() const = 0;
163  virtual PDB_LocType getLocationType() const = 0;
164  virtual PDB_Machine getMachineType() const = 0;
165  virtual codeview::ThunkOrdinal getThunkOrdinal() const = 0;
166  virtual uint64_t getLength() const = 0;
167  virtual uint64_t getLiveRangeLength() const = 0;
168  virtual uint64_t getVirtualAddress() const = 0;
169  virtual PDB_UdtType getUdtKind() const = 0;
170  virtual bool hasConstructor() const = 0;
171  virtual bool hasCustomCallingConvention() const = 0;
172  virtual bool hasFarReturn() const = 0;
173  virtual bool isCode() const = 0;
174  virtual bool isCompilerGenerated() const = 0;
175  virtual bool isConstType() const = 0;
176  virtual bool isEditAndContinueEnabled() const = 0;
177  virtual bool isFunction() const = 0;
178  virtual bool getAddressTaken() const = 0;
179  virtual bool getNoStackOrdering() const = 0;
180  virtual bool hasAlloca() const = 0;
181  virtual bool hasAssignmentOperator() const = 0;
182  virtual bool hasCTypes() const = 0;
183  virtual bool hasCastOperator() const = 0;
184  virtual bool hasDebugInfo() const = 0;
185  virtual bool hasEH() const = 0;
186  virtual bool hasEHa() const = 0;
187  virtual bool hasFramePointer() const = 0;
188  virtual bool hasInlAsm() const = 0;
189  virtual bool hasInlineAttribute() const = 0;
190  virtual bool hasInterruptReturn() const = 0;
191  virtual bool hasLongJump() const = 0;
192  virtual bool hasManagedCode() const = 0;
193  virtual bool hasNestedTypes() const = 0;
194  virtual bool hasNoInlineAttribute() const = 0;
195  virtual bool hasNoReturnAttribute() const = 0;
196  virtual bool hasOptimizedCodeDebugInfo() const = 0;
197  virtual bool hasOverloadedOperator() const = 0;
198  virtual bool hasSEH() const = 0;
199  virtual bool hasSecurityChecks() const = 0;
200  virtual bool hasSetJump() const = 0;
201  virtual bool hasStrictGSCheck() const = 0;
202  virtual bool isAcceleratorGroupSharedLocal() const = 0;
203  virtual bool isAcceleratorPointerTagLiveRange() const = 0;
204  virtual bool isAcceleratorStubFunction() const = 0;
205  virtual bool isAggregated() const = 0;
206  virtual bool isIntroVirtualFunction() const = 0;
207  virtual bool isCVTCIL() const = 0;
208  virtual bool isConstructorVirtualBase() const = 0;
209  virtual bool isCxxReturnUdt() const = 0;
210  virtual bool isDataAligned() const = 0;
211  virtual bool isHLSLData() const = 0;
212  virtual bool isHotpatchable() const = 0;
213  virtual bool isIndirectVirtualBaseClass() const = 0;
214  virtual bool isInterfaceUdt() const = 0;
215  virtual bool isIntrinsic() const = 0;
216  virtual bool isLTCG() const = 0;
217  virtual bool isLocationControlFlowDependent() const = 0;
218  virtual bool isMSILNetmodule() const = 0;
219  virtual bool isMatrixRowMajor() const = 0;
220  virtual bool isManagedCode() const = 0;
221  virtual bool isMSILCode() const = 0;
222  virtual bool isMultipleInheritance() const = 0;
223  virtual bool isNaked() const = 0;
224  virtual bool isNested() const = 0;
225  virtual bool isOptimizedAway() const = 0;
226  virtual bool isPacked() const = 0;
227  virtual bool isPointerBasedOnSymbolValue() const = 0;
228  virtual bool isPointerToDataMember() const = 0;
229  virtual bool isPointerToMemberFunction() const = 0;
230  virtual bool isPureVirtual() const = 0;
231  virtual bool isRValueReference() const = 0;
232  virtual bool isRefUdt() const = 0;
233  virtual bool isReference() const = 0;
234  virtual bool isRestrictedType() const = 0;
235  virtual bool isReturnValue() const = 0;
236  virtual bool isSafeBuffers() const = 0;
237  virtual bool isScoped() const = 0;
238  virtual bool isSdl() const = 0;
239  virtual bool isSingleInheritance() const = 0;
240  virtual bool isSplitted() const = 0;
241  virtual bool isStatic() const = 0;
242  virtual bool hasPrivateSymbols() const = 0;
243  virtual bool isUnalignedType() const = 0;
244  virtual bool isUnreached() const = 0;
245  virtual bool isValueUdt() const = 0;
246  virtual bool isVirtual() const = 0;
247  virtual bool isVirtualBaseClass() const = 0;
248  virtual bool isVirtualInheritance() const = 0;
249  virtual bool isVolatileType() const = 0;
250  virtual bool wasInlined() const = 0;
251  virtual std::string getUnused() const = 0;
252 };
253 
255 
256 } // namespace pdb
257 } // namespace llvm
258 
259 #endif
llvm::pdb::IPDBRawSymbol::findChildrenByRVA
virtual std::unique_ptr< IPDBEnumSymbols > findChildrenByRVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags, uint32_t RVA) const =0
llvm::pdb::IPDBRawSymbol::getTextureSlot
virtual uint32_t getTextureSlot() const =0
llvm::pdb::IPDBRawSymbol::isPacked
virtual bool isPacked() const =0
llvm::pdb::IPDBRawSymbol::isReference
virtual bool isReference() const =0
llvm
---------------------— PointerInfo ------------------------------------—
Definition: AllocatorList.h:23
llvm::pdb::IPDBRawSymbol::getBaseDataOffset
virtual uint32_t getBaseDataOffset() const =0
llvm::pdb::IPDBRawSymbol::isConstType
virtual bool isConstType() const =0
llvm::pdb::IPDBRawSymbol::isUnalignedType
virtual bool isUnalignedType() const =0
llvm::pdb::IPDBRawSymbol::getSizeInUdt
virtual uint32_t getSizeInUdt() const =0
llvm::pdb::IPDBRawSymbol::isPointerBasedOnSymbolValue
virtual bool isPointerBasedOnSymbolValue() const =0
llvm::pdb::IPDBRawSymbol::getToken
virtual uint32_t getToken() const =0
llvm::pdb::IPDBRawSymbol::isMSILNetmodule
virtual bool isMSILNetmodule() const =0
llvm::pdb::IPDBRawSymbol::findInlineFramesByAddr
virtual std::unique_ptr< IPDBEnumSymbols > findInlineFramesByAddr(uint32_t Section, uint32_t Offset) const =0
llvm::pdb::LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE
LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE()
llvm::pdb::IPDBRawSymbol::getUdtKind
virtual PDB_UdtType getUdtKind() const =0
llvm::pdb::IPDBRawSymbol::getThunkOrdinal
virtual codeview::ThunkOrdinal getThunkOrdinal() const =0
LLVM_MARK_AS_BITMASK_ENUM
#define LLVM_MARK_AS_BITMASK_ENUM(LargestValue)
LLVM_MARK_AS_BITMASK_ENUM lets you opt in an individual enum type so you can perform bitwise operatio...
Definition: BitmaskEnum.h:41
llvm::pdb::IPDBRawSymbol::isNested
virtual bool isNested() const =0
llvm::pdb::IPDBRawSymbol::isVirtualInheritance
virtual bool isVirtualInheritance() const =0
llvm::pdb::IPDBRawSymbol::getAddressOffset
virtual uint32_t getAddressOffset() const =0
llvm::SmallVector< uint8_t, 32 >
llvm::pdb::IPDBRawSymbol::isConstructorVirtualBase
virtual bool isConstructorVirtualBase() const =0
llvm::pdb::IPDBRawSymbol::getGuid
virtual codeview::GUID getGuid() const =0
llvm::pdb::IPDBRawSymbol::getVirtualBaseTableType
virtual std::unique_ptr< PDBSymbolTypeBuiltin > getVirtualBaseTableType() const =0
llvm::pdb::IPDBRawSymbol::isPointerToDataMember
virtual bool isPointerToDataMember() const =0
llvm::pdb::IPDBRawSymbol::isHotpatchable
virtual bool isHotpatchable() const =0
llvm::pdb::IPDBRawSymbol::findChildrenByAddr
virtual std::unique_ptr< IPDBEnumSymbols > findChildrenByAddr(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags, uint32_t Section, uint32_t Offset) const =0
llvm::pdb::IPDBRawSymbol::getLowerBoundId
virtual SymIndexId getLowerBoundId() const =0
llvm::codeview::GUID
This represents the 'GUID' type from windows.h.
Definition: GUID.h:21
llvm::pdb::IPDBRawSymbol::isNaked
virtual bool isNaked() const =0
llvm::pdb::PDB_UdtType
PDB_UdtType
These values correspond to the UdtKind enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:310
llvm::pdb::IPDBRawSymbol::getLiveRangeStartRelativeVirtualAddress
virtual uint32_t getLiveRangeStartRelativeVirtualAddress() const =0
llvm::pdb::PDB_LocType
PDB_LocType
These values correspond to the LocationType enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:292
llvm::Type
The instances of the Type class are immutable: once they are created, they are never changed.
Definition: Type.h:45
llvm::pdb::IPDBRawSymbol::getAddressSection
virtual uint32_t getAddressSection() const =0
llvm::pdb::IPDBRawSymbol::getMachineType
virtual PDB_Machine getMachineType() const =0
llvm::pdb::IPDBRawSymbol::isRValueReference
virtual bool isRValueReference() const =0
llvm::pdb::IPDBRawSymbol::findInlineFramesByVA
virtual std::unique_ptr< IPDBEnumSymbols > findInlineFramesByVA(uint64_t VA) const =0
llvm::pdb::IPDBRawSymbol::isSafeBuffers
virtual bool isSafeBuffers() const =0
llvm::pdb::IPDBRawSymbol::getName
virtual std::string getName() const =0
llvm::pdb::IPDBRawSymbol::getUnused
virtual std::string getUnused() const =0
llvm::pdb::IPDBRawSymbol::getCountLiveRanges
virtual uint32_t getCountLiveRanges() const =0
Offset
uint64_t Offset
Definition: ELFObjHandler.cpp:81
llvm::pdb::VersionInfo
Definition: PDBTypes.h:386
llvm::pdb::IPDBRawSymbol::getLength
virtual uint64_t getLength() const =0
llvm::pdb::PdbSymbolIdField::UnmodifiedType
@ UnmodifiedType
llvm::pdb::IPDBRawSymbol::getAddressTaken
virtual bool getAddressTaken() const =0
llvm::pdb::IPDBRawSymbol::getSymbolsFileName
virtual std::string getSymbolsFileName() const =0
llvm::pdb::IPDBRawSymbol::hasDebugInfo
virtual bool hasDebugInfo() const =0
llvm::pdb::IPDBRawSymbol::getOffset
virtual int32_t getOffset() const =0
llvm::pdb::IPDBRawSymbol::getTargetRelativeVirtualAddress
virtual uint32_t getTargetRelativeVirtualAddress() const =0
llvm::pdb::PDB_SymType
PDB_SymType
These values correspond to the SymTagEnum enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:243
llvm::pdb::IPDBRawSymbol::hasSecurityChecks
virtual bool hasSecurityChecks() const =0
llvm::pdb::IPDBRawSymbol::getNoStackOrdering
virtual bool getNoStackOrdering() const =0
llvm::pdb::IPDBRawSymbol::dump
virtual void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const =0
llvm::pdb::IPDBRawSymbol::getTargetOffset
virtual uint32_t getTargetOffset() const =0
llvm::ARMBuildAttrs::Section
@ Section
Legacy Tags.
Definition: ARMBuildAttributes.h:78
llvm::pdb::IPDBRawSymbol::getDataBytes
virtual void getDataBytes(llvm::SmallVector< uint8_t, 32 > &bytes) const =0
llvm::pdb::PdbSymbolIdField::ClassParent
@ ClassParent
llvm::pdb::IPDBRawSymbol::hasCustomCallingConvention
virtual bool hasCustomCallingConvention() const =0
llvm::pdb::IPDBRawSymbol::isValueUdt
virtual bool isValueUdt() const =0
llvm::pdb::IPDBRawSymbol::findChildren
virtual std::unique_ptr< IPDBEnumSymbols > findChildren(PDB_SymType Type) const =0
llvm::pdb::PdbSymbolIdField::None
@ None
llvm::pdb::IPDBRawSymbol::isCxxReturnUdt
virtual bool isCxxReturnUdt() const =0
llvm::pdb::IPDBRawSymbol::getLiveRangeStartAddressOffset
virtual uint32_t getLiveRangeStartAddressOffset() const =0
llvm::pdb::IPDBRawSymbol::getPlatform
virtual PDB_Cpu getPlatform() const =0
llvm::pdb::IPDBRawSymbol::getSymIndexId
virtual SymIndexId getSymIndexId() const =0
llvm::pdb::IPDBRawSymbol::isCode
virtual bool isCode() const =0
llvm::pdb::IPDBRawSymbol::getStride
virtual uint32_t getStride() const =0
llvm::pdb::IPDBRawSymbol::isDataAligned
virtual bool isDataAligned() const =0
llvm::pdb::IPDBRawSymbol::isIntrinsic
virtual bool isIntrinsic() const =0
llvm::pdb::IPDBRawSymbol::hasInterruptReturn
virtual bool hasInterruptReturn() const =0
llvm::pdb::SymIndexId
uint32_t SymIndexId
Definition: PDBTypes.h:26
llvm::pdb::IPDBRawSymbol::isMatrixRowMajor
virtual bool isMatrixRowMajor() const =0
llvm::pdb::PDB_DataKind
PDB_DataKind
These values correspond to the DataKind enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:228
llvm::pdb::IPDBRawSymbol::isLTCG
virtual bool isLTCG() const =0
llvm::pdb::PdbSymbolIdField::LexicalParent
@ LexicalParent
llvm::pdb::IPDBRawSymbol::getSymTag
virtual PDB_SymType getSymTag() const =0
llvm::pdb::IPDBRawSymbol::findInlineeLinesByAddr
virtual std::unique_ptr< IPDBEnumLineNumbers > findInlineeLinesByAddr(uint32_t Section, uint32_t Offset, uint32_t Length) const =0
llvm::pdb::IPDBRawSymbol::hasStrictGSCheck
virtual bool hasStrictGSCheck() const =0
llvm::pdb::IPDBRawSymbol::getTargetSection
virtual uint32_t getTargetSection() const =0
llvm::pdb::IPDBRawSymbol::hasAssignmentOperator
virtual bool hasAssignmentOperator() const =0
llvm::pdb::IPDBRawSymbol::hasNoReturnAttribute
virtual bool hasNoReturnAttribute() const =0
llvm::pdb::IPDBRawSymbol::getVirtualTableShapeId
virtual SymIndexId getVirtualTableShapeId() const =0
llvm::raw_ostream
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition: raw_ostream.h:53
llvm::pdb::IPDBRawSymbol::hasNoInlineAttribute
virtual bool hasNoInlineAttribute() const =0
llvm::pdb::IPDBRawSymbol::hasOptimizedCodeDebugInfo
virtual bool hasOptimizedCodeDebugInfo() const =0
llvm::pdb::PDB_NameSearchFlags
PDB_NameSearchFlags
Defines flags used for enumerating child symbols.
Definition: PDBTypes.h:102
llvm::IndexedInstrProf::Version
const uint64_t Version
Definition: InstrProf.h:991
llvm::pdb::IPDBRawSymbol::getFrontEndVersion
virtual void getFrontEndVersion(VersionInfo &Version) const =0
llvm::pdb::IPDBRawSymbol::isReturnValue
virtual bool isReturnValue() const =0
llvm::pdb::IPDBRawSymbol::getCallingConvention
virtual PDB_CallingConv getCallingConvention() const =0
llvm::pdb::IPDBRawSymbol::getTypeId
virtual SymIndexId getTypeId() const =0
CodeView.h
llvm::pdb::IPDBRawSymbol::getLanguage
virtual PDB_Lang getLanguage() const =0
PDBTypes.h
llvm::pdb::IPDBRawSymbol::hasSetJump
virtual bool hasSetJump() const =0
llvm::pdb::IPDBRawSymbol::getUavSlot
virtual uint32_t getUavSlot() const =0
llvm::pdb::IPDBRawSymbol::getVirtualBaseOffset
virtual uint32_t getVirtualBaseOffset() const =0
llvm::pdb::IPDBRawSymbol::getValue
virtual Variant getValue() const =0
llvm::pdb::IPDBRawSymbol::isAcceleratorStubFunction
virtual bool isAcceleratorStubFunction() const =0
llvm::pdb::IPDBRawSymbol::isVirtual
virtual bool isVirtual() const =0
llvm::pdb::IPDBRawSymbol::getUnmodifiedTypeId
virtual SymIndexId getUnmodifiedTypeId() const =0
llvm::pdb::IPDBRawSymbol::getAge
virtual uint32_t getAge() const =0
llvm::pdb::IPDBRawSymbol::getTargetVirtualAddress
virtual uint64_t getTargetVirtualAddress() const =0
llvm::pdb::IPDBRawSymbol::isVolatileType
virtual bool isVolatileType() const =0
llvm::pdb::IPDBRawSymbol::isManagedCode
virtual bool isManagedCode() const =0
llvm::pdb::IPDBRawSymbol::isSdl
virtual bool isSdl() const =0
llvm::pdb::IPDBRawSymbol::hasFramePointer
virtual bool hasFramePointer() const =0
llvm::pdb::IPDBRawSymbol::getOffsetInUdt
virtual uint32_t getOffsetInUdt() const =0
uint64_t
llvm::pdb::IPDBRawSymbol::getSrcLineOnTypeDefn
virtual std::unique_ptr< IPDBLineNumber > getSrcLineOnTypeDefn() const =0
llvm::pdb::IPDBRawSymbol::getObjectFileName
virtual std::string getObjectFileName() const =0
llvm::pdb::IPDBRawSymbol::hasEHa
virtual bool hasEHa() const =0
llvm::pdb::IPDBRawSymbol::getBackEndVersion
virtual void getBackEndVersion(VersionInfo &Version) const =0
llvm::pdb::IPDBRawSymbol::getRegisterType
virtual uint32_t getRegisterType() const =0
llvm::pdb::IPDBRawSymbol::isIndirectVirtualBaseClass
virtual bool isIndirectVirtualBaseClass() const =0
llvm::pdb::IPDBRawSymbol::getSourceFileName
virtual std::string getSourceFileName() const =0
llvm::pdb::PDB_UndnameFlags
PDB_UndnameFlags
These values correspond to the flags that can be combined to control the return of an undecorated nam...
Definition: PDBTypes.h:361
llvm::pdb::IPDBRawSymbol::getLocalBasePointerRegisterId
virtual codeview::RegisterId getLocalBasePointerRegisterId() const =0
llvm::pdb::dumpSymbolIdField
void dumpSymbolIdField(raw_ostream &OS, StringRef Name, SymIndexId Value, int Indent, const IPDBSession &Session, PdbSymbolIdField FieldId, PdbSymbolIdField ShowFlags, PdbSymbolIdField RecurseFlags)
Definition: PDBSymbol.cpp:202
llvm::pdb::IPDBRawSymbol::hasConstructor
virtual bool hasConstructor() const =0
llvm::pdb::IPDBRawSymbol::hasPrivateSymbols
virtual bool hasPrivateSymbols() const =0
llvm::pdb::IPDBRawSymbol::getLexicalParentId
virtual SymIndexId getLexicalParentId() const =0
llvm::pdb::IPDBRawSymbol::getSubTypeId
virtual SymIndexId getSubTypeId() const =0
llvm::pdb::IPDBRawSymbol::findInlineeLinesByVA
virtual std::unique_ptr< IPDBEnumLineNumbers > findInlineeLinesByVA(uint64_t VA, uint32_t Length) const =0
llvm::pdb::IPDBRawSymbol::isSplitted
virtual bool isSplitted() const =0
llvm::pdb::IPDBRawSymbol::isSingleInheritance
virtual bool isSingleInheritance() const =0
llvm::pdb::IPDBRawSymbol::findInlineeLines
virtual std::unique_ptr< IPDBEnumLineNumbers > findInlineeLines() const =0
llvm::pdb::IPDBRawSymbol::getOemSymbolId
virtual SymIndexId getOemSymbolId() const =0
llvm::pdb::IPDBRawSymbol::getNumberOfRows
virtual uint32_t getNumberOfRows() const =0
llvm::pdb::IPDBRawSymbol::wasInlined
virtual bool wasInlined() const =0
llvm::codeview::RegisterId
RegisterId
Definition: CodeView.h:517
llvm::pdb::IPDBRawSymbol::hasLongJump
virtual bool hasLongJump() const =0
llvm::pdb::IPDBRawSymbol::getUndecoratedNameEx
virtual std::string getUndecoratedNameEx(PDB_UndnameFlags Flags) const =0
llvm::pdb::IPDBRawSymbol::isRestrictedType
virtual bool isRestrictedType() const =0
llvm::pdb::IPDBRawSymbol::isAcceleratorPointerTagLiveRange
virtual bool isAcceleratorPointerTagLiveRange() const =0
llvm::pdb::IPDBRawSymbol::getDataKind
virtual PDB_DataKind getDataKind() const =0
llvm::pdb::IPDBRawSymbol::isEditAndContinueEnabled
virtual bool isEditAndContinueEnabled() const =0
llvm::codeview::SourceLanguage
SourceLanguage
These values correspond to the CV_CFL_LANG enumeration, and are documented here: https://msdn....
Definition: CodeView.h:146
llvm::pdb::IPDBRawSymbol::isVirtualBaseClass
virtual bool isVirtualBaseClass() const =0
llvm::pdb::IPDBRawSymbol::getBaseSymbolId
virtual SymIndexId getBaseSymbolId() const =0
llvm::pdb::IPDBRawSymbol::getUpperBoundId
virtual SymIndexId getUpperBoundId() const =0
llvm::pdb::PDB_Machine
PDB_Machine
Definition: PDBTypes.h:125
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:58
llvm::pdb::IPDBRawSymbol::isHLSLData
virtual bool isHLSLData() const =0
llvm::pdb::IPDBRawSymbol::getArrayIndexTypeId
virtual SymIndexId getArrayIndexTypeId() const =0
llvm::pdb::IPDBRawSymbol::getNumberOfColumns
virtual uint32_t getNumberOfColumns() const =0
BitmaskEnum.h
llvm::pdb::IPDBRawSymbol::getNumberOfModifiers
virtual uint32_t getNumberOfModifiers() const =0
uint32_t
llvm::pdb::PDB_BuiltinType
PDB_BuiltinType
These values correspond to the Basictype enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:335
llvm::pdb::IPDBRawSymbol::isRefUdt
virtual bool isRefUdt() const =0
llvm::pdb::IPDBRawSymbol::isStatic
virtual bool isStatic() const =0
llvm::pdb::IPDBRawSymbol::isCVTCIL
virtual bool isCVTCIL() const =0
llvm::pdb::IPDBRawSymbol::getNumberOfRegisterIndices
virtual uint32_t getNumberOfRegisterIndices() const =0
llvm::pdb::IPDBRawSymbol::getMemorySpaceKind
virtual uint32_t getMemorySpaceKind() const =0
llvm::pdb::IPDBRawSymbol::getVirtualAddress
virtual uint64_t getVirtualAddress() const =0
llvm::pdb::IPDBRawSymbol::isMultipleInheritance
virtual bool isMultipleInheritance() const =0
llvm::pdb::IPDBRawSymbol::isUnreached
virtual bool isUnreached() const =0
llvm::pdb::IPDBRawSymbol::isPointerToMemberFunction
virtual bool isPointerToMemberFunction() const =0
llvm::pdb::IPDBRawSymbol::getLiveRangeStartAddressSection
virtual uint32_t getLiveRangeStartAddressSection() const =0
llvm::pdb::IPDBRawSymbol::getCount
virtual uint32_t getCount() const =0
llvm::pdb::IPDBRawSymbol::isInterfaceUdt
virtual bool isInterfaceUdt() const =0
llvm::pdb::IPDBRawSymbol::getRelativeVirtualAddress
virtual uint32_t getRelativeVirtualAddress() const =0
llvm::pdb::Variant
Definition: PDBTypes.h:410
llvm::pdb::IPDBRawSymbol::getNumberOfAcceleratorPointerTags
virtual uint32_t getNumberOfAcceleratorPointerTags() const =0
llvm::pdb::IPDBRawSymbol::hasInlineAttribute
virtual bool hasInlineAttribute() const =0
llvm::pdb::IPDBRawSymbol::~IPDBRawSymbol
virtual ~IPDBRawSymbol()
llvm::pdb::PdbSymbolIdField::All
@ All
llvm::pdb::IPDBRawSymbol::getLocationType
virtual PDB_LocType getLocationType() const =0
llvm::GraphProgram::Name
Name
Definition: GraphWriter.h:52
llvm::pdb::IPDBRawSymbol::isOptimizedAway
virtual bool isOptimizedAway() const =0
llvm::pdb::IPDBRawSymbol::getCompilerName
virtual std::string getCompilerName() const =0
llvm::pdb::IPDBRawSymbol::getRegisterId
virtual codeview::RegisterId getRegisterId() const =0
llvm::pdb::IPDBRawSymbol::getThisAdjust
virtual int32_t getThisAdjust() const =0
llvm::pdb::IPDBRawSymbol::hasManagedCode
virtual bool hasManagedCode() const =0
llvm::pdb::IPDBRawSymbol::hasNestedTypes
virtual bool hasNestedTypes() const =0
llvm::pdb::IPDBRawSymbol::getBitPosition
virtual uint32_t getBitPosition() const =0
llvm::pdb::IPDBRawSymbol::isPureVirtual
virtual bool isPureVirtual() const =0
llvm::pdb::IPDBRawSymbol::findInlineFramesByRVA
virtual std::unique_ptr< IPDBEnumSymbols > findInlineFramesByRVA(uint32_t RVA) const =0
llvm::codeview::CPUType
CPUType
These values correspond to the CV_CPU_TYPE_e enumeration, and are documented here: https://msdn....
Definition: CodeView.h:78
llvm::pdb::IPDBRawSymbol::getVirtualBaseDispIndex
virtual uint32_t getVirtualBaseDispIndex() const =0
llvm::pdb::IPDBRawSymbol::hasFarReturn
virtual bool hasFarReturn() const =0
llvm::pdb::IPDBRawSymbol::hasInlAsm
virtual bool hasInlAsm() const =0
llvm::pdb::IPDBRawSymbol::isLocationControlFlowDependent
virtual bool isLocationControlFlowDependent() const =0
llvm::pdb::IPDBRawSymbol::hasEH
virtual bool hasEH() const =0
llvm::pdb::IPDBRawSymbol::isCompilerGenerated
virtual bool isCompilerGenerated() const =0
llvm::pdb::IPDBRawSymbol::getClassParentId
virtual SymIndexId getClassParentId() const =0
llvm::pdb::IPDBRawSymbol::isAggregated
virtual bool isAggregated() const =0
llvm::pdb::PdbSymbolIdField
PdbSymbolIdField
Definition: IPDBRawSymbol.h:24
llvm::pdb::IPDBRawSymbol::hasCTypes
virtual bool hasCTypes() const =0
llvm::codeview::ThunkOrdinal
ThunkOrdinal
These values correspond to the THUNK_ORDINAL enumeration.
Definition: CodeView.h:551
llvm::pdb::IPDBRawSymbol::getBuiltinType
virtual PDB_BuiltinType getBuiltinType() const =0
llvm::pdb::PDB_MemberAccess
PDB_MemberAccess
Definition: PDBTypes.h:384
llvm::pdb::IPDBRawSymbol::getSignature
virtual uint32_t getSignature() const =0
llvm::pdb::IPDBRawSymbol::getSamplerSlot
virtual uint32_t getSamplerSlot() const =0
SmallVector.h
llvm::pdb::IPDBRawSymbol::getVirtualBasePointerOffset
virtual int32_t getVirtualBasePointerOffset() const =0
llvm::pdb::IPDBRawSymbol::isIntroVirtualFunction
virtual bool isIntroVirtualFunction() const =0
llvm::pdb::IPDBRawSymbol::getOemId
virtual uint32_t getOemId() const =0
llvm::pdb::IPDBRawSymbol::getBaseDataSlot
virtual uint32_t getBaseDataSlot() const =0
llvm::pdb::IPDBRawSymbol::isMSILCode
virtual bool isMSILCode() const =0
llvm::pdb::IPDBRawSymbol::getTimeStamp
virtual uint32_t getTimeStamp() const =0
llvm::pdb::IPDBRawSymbol::isAcceleratorGroupSharedLocal
virtual bool isAcceleratorGroupSharedLocal() const =0
llvm::pdb::IPDBRawSymbol::getLiveRangeLength
virtual uint64_t getLiveRangeLength() const =0
llvm::codeview::CallingConvention
CallingConvention
These values correspond to the CV_call_e enumeration, and are documented at the following locations: ...
Definition: CodeView.h:176
llvm::pdb::IPDBRawSymbol::hasAlloca
virtual bool hasAlloca() const =0
llvm::pdb::IPDBRawSymbol::hasOverloadedOperator
virtual bool hasOverloadedOperator() const =0
llvm::pdb::IPDBRawSymbol::hasCastOperator
virtual bool hasCastOperator() const =0
llvm::pdb::IPDBRawSymbol::getRank
virtual uint32_t getRank() const =0
llvm::pdb::IPDBRawSymbol
IPDBRawSymbol defines an interface used to represent an arbitrary symbol.
Definition: IPDBRawSymbol.h:45
llvm::pdb::IPDBRawSymbol::getLibraryName
virtual std::string getLibraryName() const =0
llvm::pdb::IPDBRawSymbol::isScoped
virtual bool isScoped() const =0
llvm::pdb::IPDBRawSymbol::isFunction
virtual bool isFunction() const =0
llvm::pdb::IPDBRawSymbol::findChildrenByVA
virtual std::unique_ptr< IPDBEnumSymbols > findChildrenByVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags, uint64_t VA) const =0
llvm::Value
LLVM Value Representation.
Definition: Value.h:75
llvm::pdb::IPDBRawSymbol::hasSEH
virtual bool hasSEH() const =0
llvm::pdb::IPDBRawSymbol::getAccess
virtual PDB_MemberAccess getAccess() const =0
llvm::pdb::IPDBRawSymbol::getSlot
virtual uint32_t getSlot() const =0
llvm::pdb::IPDBRawSymbol::findInlineeLinesByRVA
virtual std::unique_ptr< IPDBEnumLineNumbers > findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const =0
llvm::pdb::IPDBRawSymbol::getUndecoratedName
virtual std::string getUndecoratedName() const =0