LLVM  8.0.1
NativeRawSymbol.cpp
Go to the documentation of this file.
1 //===- NativeRawSymbol.cpp - Native implementation of IPDBRawSymbol -------===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
15 
16 using namespace llvm;
17 using namespace llvm::pdb;
18 
20  SymIndexId SymbolId)
21  : Session(PDBSession), Tag(Tag), SymbolId(SymbolId) {}
22 
24  PdbSymbolIdField ShowIdFields,
25  PdbSymbolIdField RecurseIdFields) const {
26  dumpSymbolIdField(OS, "symIndexId", SymbolId, Indent, Session,
27  PdbSymbolIdField::SymIndexId, ShowIdFields,
28  RecurseIdFields);
29  dumpSymbolField(OS, "symTag", Tag, Indent);
30 }
31 
32 std::unique_ptr<IPDBEnumSymbols>
34  return llvm::make_unique<NullEnumerator<PDBSymbol>>();
35 }
36 
37 std::unique_ptr<IPDBEnumSymbols>
39  PDB_NameSearchFlags Flags) const {
40  return llvm::make_unique<NullEnumerator<PDBSymbol>>();
41 }
42 
43 std::unique_ptr<IPDBEnumSymbols>
46  return llvm::make_unique<NullEnumerator<PDBSymbol>>();
47 }
48 
49 std::unique_ptr<IPDBEnumSymbols>
51  PDB_NameSearchFlags Flags, uint64_t VA) const {
52  return llvm::make_unique<NullEnumerator<PDBSymbol>>();
53 }
54 
55 std::unique_ptr<IPDBEnumSymbols>
57  PDB_NameSearchFlags Flags, uint32_t RVA) const {
58  return llvm::make_unique<NullEnumerator<PDBSymbol>>();
59 }
60 
61 std::unique_ptr<IPDBEnumSymbols>
63  uint32_t Offset) const {
64  return llvm::make_unique<NullEnumerator<PDBSymbol>>();
65 }
66 
67 std::unique_ptr<IPDBEnumSymbols>
69  return llvm::make_unique<NullEnumerator<PDBSymbol>>();
70 }
71 
72 std::unique_ptr<IPDBEnumSymbols>
74  return llvm::make_unique<NullEnumerator<PDBSymbol>>();
75 }
76 
77 std::unique_ptr<IPDBEnumLineNumbers>
79  return llvm::make_unique<NullEnumerator<IPDBLineNumber>>();
80 }
81 
82 std::unique_ptr<IPDBEnumLineNumbers>
84  uint32_t Length) const {
85  return llvm::make_unique<NullEnumerator<IPDBLineNumber>>();
86 }
87 
88 std::unique_ptr<IPDBEnumLineNumbers>
90  return llvm::make_unique<NullEnumerator<IPDBLineNumber>>();
91 }
92 
93 std::unique_ptr<IPDBEnumLineNumbers>
94 NativeRawSymbol::findInlineeLinesByVA(uint64_t VA, uint32_t Length) const {
95  return llvm::make_unique<NullEnumerator<IPDBLineNumber>>();
96 }
97 
99  bytes.clear();
100 }
101 
104 }
105 
107  return 0;
108 }
109 
111  return 0;
112 }
113 
115  return 0;
116 }
117 
119 
121  Version.Major = 0;
122  Version.Minor = 0;
123  Version.Build = 0;
124  Version.QFE = 0;
125 }
126 
128  return 0;
129 }
130 
132  return 0;
133 }
134 
136 
138  return PDB_BuiltinType::None;
139 }
140 
142  return 0;
143 }
144 
146  return PDB_CallingConv::FarStdCall;
147 }
148 
150 
151 std::string NativeRawSymbol::getCompilerName() const {
152  return {};
153 }
154 
156  return 0;
157 }
158 
160  return 0;
161 }
162 
164  Version.Major = 0;
165  Version.Minor = 0;
166  Version.Build = 0;
167  Version.QFE = 0;
168 }
169 
171  return PDB_Lang::Cobol;
172 }
173 
175 
176 std::string NativeRawSymbol::getLibraryName() const {
177  return {};
178 }
179 
181  return 0;
182 }
183 
185  return 0;
186 }
187 
189  return 0;
190 }
191 
194 }
195 
197 
199  return 0;
200 }
201 
202 std::string NativeRawSymbol::getName() const {
203  return {};
204 }
205 
207  return 0;
208 }
209 
211  return 0;
212 }
213 
215  return 0;
216 }
217 
219  return 0;
220 }
221 
223  return 0;
224 }
225 
227  return {};
228 }
229 
231  return 0;
232 }
233 
235 
237  return 0;
238 }
239 
241  return PDB_Cpu::Intel8080;
242 }
243 
245  return 0;
246 }
247 
250 }
251 
253  return 0;
254 }
255 
257  return 0;
258 }
259 
261  return 0;
262 }
263 
265  return 0;
266 }
267 
269  return 0;
270 }
271 
273  return 0;
274 }
275 
277  return {};
278 }
279 
280 std::unique_ptr<IPDBLineNumber>
282  return nullptr;
283 }
284 
286  return 0;
287 }
288 
290 
291 std::string NativeRawSymbol::getSymbolsFileName() const { return {}; }
292 
294 
296  return 0;
297 }
298 
300  return 0;
301 }
302 
304  return 0;
305 }
306 
308  return 0;
309 }
310 
312  return 0;
313 }
314 
316  return 0;
317 }
318 
320  return 0;
321 }
322 
324 
326  return 0;
327 }
328 
330  return {};
331 }
332 
334  PDB_UndnameFlags Flags) const {
335  return {};
336 }
337 
339 
341 
343  return Variant();
344 }
345 
347  return 0;
348 }
349 
351  return 0;
352 }
353 
355 
356 std::unique_ptr<PDBSymbolTypeBuiltin>
358  return nullptr;
359 }
360 
362  return PDB_DataKind::Unknown;
363 }
364 
366 
368 
369 int32_t NativeRawSymbol::getOffset() const {
370  return 0;
371 }
372 
374  return 0;
375 }
376 
378  return 0;
379 }
380 
382  return PDB_LocType::Null;
383 }
384 
386  return PDB_Machine::Invalid;
387 }
388 
391 }
392 
393 uint64_t NativeRawSymbol::getLength() const {
394  return 0;
395 }
396 
398  return 0;
399 }
400 
402  return 0;
403 }
404 
406  return PDB_UdtType::Struct;
407 }
408 
410  return false;
411 }
412 
414  return false;
415 }
416 
418  return false;
419 }
420 
422  return false;
423 }
424 
426  return false;
427 }
428 
430  return false;
431 }
432 
434  return false;
435 }
436 
438  return false;
439 }
440 
442  return false;
443 }
444 
446  return false;
447 }
448 
450  return false;
451 }
452 
454  return false;
455 }
456 
458  return false;
459 }
460 
462  return false;
463 }
464 
466  return false;
467 }
468 
470  return false;
471 }
472 
474  return false;
475 }
476 
478  return false;
479 }
480 
482  return false;
483 }
484 
486  return false;
487 }
488 
490  return false;
491 }
492 
494  return false;
495 }
496 
498  return false;
499 }
500 
502  return false;
503 }
504 
506  return false;
507 }
508 
510  return false;
511 }
512 
514  return false;
515 }
516 
518  return false;
519 }
520 
522  return false;
523 }
524 
526  return false;
527 }
528 
530  return false;
531 }
532 
534  return false;
535 }
536 
538  return false;
539 }
540 
542  return false;
543 }
544 
546  return false;
547 }
548 
550  return false;
551 }
552 
554  return false;
555 }
556 
558  return false;
559 }
560 
562  return false;
563 }
564 
566  return false;
567 }
568 
570  return false;
571 }
572 
574  return false;
575 }
576 
578  return false;
579 }
580 
582  return false;
583 }
584 
586  return false;
587 }
588 
590  return false;
591 }
592 
594  return false;
595 }
596 
598  return false;
599 }
600 
602  return false;
603 }
604 
606  return false;
607 }
608 
610  return false;
611 }
612 
614  return false;
615 }
616 
618  return false;
619 }
620 
622  return false;
623 }
624 
626  return false;
627 }
628 
630  return false;
631 }
632 
634  return false;
635 }
636 
638  return false;
639 }
640 
642  return false;
643 }
644 
646  return false;
647 }
648 
650  return false;
651 }
652 
654  return false;
655 }
656 
658  return false;
659 }
660 
662  return false;
663 }
664 
666  return false;
667 }
668 
670  return false;
671 }
672 
674  return false;
675 }
676 
678  return false;
679 }
680 
682  return false;
683 }
684 
686  return false;
687 }
688 
690  return false;
691 }
692 
694  return false;
695 }
696 
698  return false;
699 }
700 
702  return false;
703 }
704 
706  return false;
707 }
708 
710  return false;
711 }
712 
714  return false;
715 }
716 
718  return false;
719 }
720 
722  return false;
723 }
724 
726  return false;
727 }
728 
730  return false;
731 }
732 
733 std::string NativeRawSymbol::getUnused() const {
734  return {};
735 }
uint32_t getAddressSection() const override
uint32_t getLiveRangeStartRelativeVirtualAddress() const override
bool hasManagedCode() const override
uint32_t getRegisterType() const override
bool wasInlined() const override
void getBackEndVersion(VersionInfo &Version) const override
uint32_t getBitPosition() const override
std::string getSymbolsFileName() const override
bool hasSetJump() const override
This class represents lattice values for constants.
Definition: AllocatorList.h:24
uint32_t getSlot() const override
int32_t getVirtualBasePointerOffset() const override
bool isReference() const override
uint32_t getNumberOfRegisterIndices() const override
SymIndexId getUpperBoundId() const override
bool hasFarReturn() const override
std::unique_ptr< IPDBEnumLineNumbers > findInlineeLinesByVA(uint64_t VA, uint32_t Length) const override
bool isIntrinsic() const override
PDB_UdtType
These values correspond to the UdtKind enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/wcstk66t.aspx.
Definition: PDBTypes.h:250
uint32_t getNumberOfRows() const override
uint32_t getRank() const override
PDB_BuiltinType getBuiltinType() const override
bool isHLSLData() const override
PDB_NameSearchFlags
Defines flags used for enumerating child symbols.
Definition: PDBTypes.h:101
bool hasStrictGSCheck() const override
bool isConstType() const override
PDB_CallingConv getCallingConvention() const override
std::unique_ptr< IPDBEnumLineNumbers > findInlineeLines() const override
uint64_t getLiveRangeLength() const override
std::string getUndecoratedNameEx(PDB_UndnameFlags Flags) const override
bool hasEHa() const override
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
bool isMatrixRowMajor() const override
bool isPureVirtual() const override
bool hasPrivateSymbols() const override
bool isInterfaceUdt() const override
bool hasSecurityChecks() const override
bool hasInlineAttribute() const override
uint32_t getVirtualBaseOffset() const override
bool isRValueReference() const override
uint32_t getTextureSlot() const override
uint32_t getSamplerSlot() const override
uint32_t getNumberOfModifiers() const override
bool isRestrictedType() const override
bool isRefUdt() const override
uint32_t getStride() const override
amdgpu Simplify well known AMD library false Value Value const Twine & Name
bool isIndirectVirtualBaseClass() const override
PDB_UdtType getUdtKind() const override
PDB_Machine getMachineType() const override
uint32_t getVirtualBaseDispIndex() const override
bool isLTCG() const override
bool isOptimizedAway() const override
codeview::RegisterId getLocalBasePointerRegisterId() const override
void getDataBytes(SmallVector< uint8_t, 32 > &Bytes) const override
bool isCxxReturnUdt() const override
uint32_t getOemId() const override
bool getAddressTaken() const override
bool hasCastOperator() const override
bool isUnreached() const override
This represents the &#39;GUID&#39; type from windows.h.
Definition: GUID.h:22
std::unique_ptr< IPDBEnumSymbols > findInlineFramesByRVA(uint32_t RVA) const override
std::unique_ptr< IPDBEnumSymbols > findChildrenByRVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags, uint32_t RVA) const override
std::string getUndecoratedName() const override
std::unique_ptr< IPDBEnumSymbols > findChildrenByVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags, uint64_t VA) const override
bool isSplitted() const override
bool isFunction() const override
PDB_DataKind getDataKind() const override
uint32_t getOffsetInUdt() const override
bool isLocationControlFlowDependent() const override
std::unique_ptr< IPDBLineNumber > getSrcLineOnTypeDefn() const override
std::unique_ptr< IPDBEnumSymbols > findInlineFramesByAddr(uint32_t Section, uint32_t Offset) const override
uint32_t getRelativeVirtualAddress() const override
uint32_t getSizeInUdt() const override
SymIndexId getLowerBoundId() const override
uint64_t getVirtualAddress() const override
SymIndexId getClassParentId() const override
int32_t getThisAdjust() const override
bool hasInterruptReturn() const override
PDB_Lang getLanguage() const override
bool isConstructorVirtualBase() const override
PDB_UndnameFlags
These values correspond to the flags that can be combined to control the return of an undecorated nam...
Definition: PDBTypes.h:301
uint32_t getSignature() const override
uint32_t getTimeStamp() const override
SymIndexId getTypeId() const override
bool isSafeBuffers() const override
PDB_SymType
These values correspond to the SymTagEnum enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bkedss5f.aspx.
Definition: PDBTypes.h:183
bool isEditAndContinueEnabled() const override
SymIndexId getSymIndexId() const override
std::string getLibraryName() const override
std::string getUnused() const override
SymIndexId getSubTypeId() const override
bool getNoStackOrdering() const override
The instances of the Type class are immutable: once they are created, they are never changed...
Definition: Type.h:46
PDB_LocType getLocationType() const override
uint32_t getBaseDataOffset() const override
int32_t getOffset() const override
PDB_DataKind
These values correspond to the DataKind enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/b2x2t313.aspx.
Definition: PDBTypes.h:168
PDB_Cpu getPlatform() const override
Variant getValue() const override
bool isReturnValue() const override
uint32_t getTargetOffset() const override
void dumpSymbolField(raw_ostream &OS, StringRef Name, T Value, int Indent)
Definition: PDBExtras.h:49
std::unique_ptr< IPDBEnumSymbols > findChildren(PDB_SymType Type) const override
PDB_MemberAccess getAccess() const override
bool hasConstructor() const override
SymIndexId getVirtualTableShapeId() const override
uint64_t getTargetVirtualAddress() const override
codeview::RegisterId getRegisterId() const override
bool isAcceleratorStubFunction() const override
void dumpSymbolIdField(raw_ostream &OS, StringRef Name, SymIndexId Value, int Indent, const IPDBSession &Session, PdbSymbolIdField FieldId, PdbSymbolIdField ShowFlags, PdbSymbolIdField RecurseFlags)
Definition: PDBSymbol.cpp:186
uint32_t getCount() const override
codeview::ThunkOrdinal getThunkOrdinal() const override
PDB_LocType
These values correspond to the LocationType enumeration, and are documented here: https://msdn...
Definition: PDBTypes.h:232
bool isUnalignedType() const override
bool hasInlAsm() const override
bool hasOverloadedOperator() const override
SymIndexId getBaseSymbolId() const override
uint32_t getNumberOfAcceleratorPointerTags() const override
std::unique_ptr< IPDBEnumLineNumbers > findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const override
std::string getSourceFileName() const override
std::unique_ptr< PDBSymbolTypeBuiltin > getVirtualBaseTableType() const override
SourceLanguage
These values correspond to the CV_CFL_LANG enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bw3aekw6.aspx.
Definition: CodeView.h:144
bool isDataAligned() const override
bool isPointerToMemberFunction() const override
bool isValueUdt() const override
std::unique_ptr< IPDBEnumLineNumbers > findInlineeLinesByAddr(uint32_t Section, uint32_t Offset, uint32_t Length) const override
bool isMSILNetmodule() const override
SymIndexId getArrayIndexTypeId() const override
NativeRawSymbol(NativeSession &PDBSession, PDB_SymType Tag, SymIndexId SymbolId)
CPUType
These values correspond to the CV_CPU_TYPE_e enumeration, and are documented here: https://msdn...
Definition: CodeView.h:79
uint32_t getMemorySpaceKind() const override
bool isPacked() const override
bool hasNoReturnAttribute() const override
bool isSdl() const override
bool isNaked() const override
bool hasCustomCallingConvention() const override
std::unique_ptr< IPDBEnumSymbols > findChildrenByAddr(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags, uint32_t Section, uint32_t Offset) const override
bool isCode() const override
bool isAcceleratorGroupSharedLocal() const override
bool isMultipleInheritance() const override
SymIndexId getLexicalParentId() const override
bool isManagedCode() const override
uint32_t getLiveRangeStartAddressOffset() const override
bool hasAlloca() const override
bool isPointerBasedOnSymbolValue() const override
SymIndexId getUnmodifiedTypeId() const override
uint32_t getBaseDataSlot() const override
bool isCVTCIL() const override
PDB_SymType getSymTag() const override
bool isAcceleratorPointerTagLiveRange() const override
uint32_t getCountLiveRanges() const override
uint32_t getTargetSection() const override
bool hasEH() const override
bool hasAssignmentOperator() const override
bool hasNoInlineAttribute() const override
uint32_t getUavSlot() const override
std::unique_ptr< IPDBEnumSymbols > findInlineFramesByVA(uint64_t VA) const override
bool isIntroVirtualFunction() const override
uint32_t getTargetRelativeVirtualAddress() const override
std::string getName() const override
bool hasFramePointer() const override
std::string getCompilerName() const override
bool hasCTypes() const override
uint32_t getNumberOfColumns() const override
uint32_t getToken() const override
bool hasNestedTypes() const override
ThunkOrdinal
These values correspond to the THUNK_ORDINAL enumeration.
Definition: CodeView.h:531
bool hasOptimizedCodeDebugInfo() const override
PDB_BuiltinType
These values correspond to the Basictype enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/4szdtzc3.aspx.
Definition: PDBTypes.h:275
std::string getObjectFileName() const override
bool hasDebugInfo() const override
bool isMSILCode() const override
Definition: JSON.cpp:598
bool isAggregated() const override
bool isScoped() const override
bool isVirtualInheritance() const override
bool isVolatileType() const override
void getFrontEndVersion(VersionInfo &Version) const override
uint64_t getLength() const override
bool hasSEH() const override
CallingConvention
These values correspond to the CV_call_e enumeration, and are documented at the following locations: ...
Definition: CodeView.h:173
This class implements an extremely fast bulk output stream that can only output to a stream...
Definition: raw_ostream.h:46
codeview::GUID getGuid() const override
bool isVirtual() const override
bool isHotpatchable() const override
SymIndexId getOemSymbolId() const override
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:49
bool isCompilerGenerated() const override
uint32_t getLiveRangeStartAddressSection() const override
bool isSingleInheritance() const override
uint32_t getAge() const override
const uint64_t Version
Definition: InstrProf.h:895
bool isPointerToDataMember() const override
bool isStatic() const override
bool hasLongJump() const override
bool isVirtualBaseClass() const override
uint32_t getAddressOffset() const override
bool isNested() const override
PDB_MemberAccess
Definition: PDBTypes.h:324