LLVM  9.0.0svn
NativeRawSymbol.cpp
Go to the documentation of this file.
1 //===- NativeRawSymbol.cpp - Native implementation of IPDBRawSymbol -------===//
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 
14 
15 using namespace llvm;
16 using namespace llvm::pdb;
17 
19  SymIndexId SymbolId)
20  : Session(PDBSession), Tag(Tag), SymbolId(SymbolId) {}
21 
23  PdbSymbolIdField ShowIdFields,
24  PdbSymbolIdField RecurseIdFields) const {
25  dumpSymbolIdField(OS, "symIndexId", SymbolId, Indent, Session,
26  PdbSymbolIdField::SymIndexId, ShowIdFields,
27  RecurseIdFields);
28  dumpSymbolField(OS, "symTag", Tag, Indent);
29 }
30 
31 std::unique_ptr<IPDBEnumSymbols>
33  return llvm::make_unique<NullEnumerator<PDBSymbol>>();
34 }
35 
36 std::unique_ptr<IPDBEnumSymbols>
38  PDB_NameSearchFlags Flags) const {
39  return llvm::make_unique<NullEnumerator<PDBSymbol>>();
40 }
41 
42 std::unique_ptr<IPDBEnumSymbols>
45  return llvm::make_unique<NullEnumerator<PDBSymbol>>();
46 }
47 
48 std::unique_ptr<IPDBEnumSymbols>
50  PDB_NameSearchFlags Flags, uint64_t VA) const {
51  return llvm::make_unique<NullEnumerator<PDBSymbol>>();
52 }
53 
54 std::unique_ptr<IPDBEnumSymbols>
56  PDB_NameSearchFlags Flags, uint32_t RVA) const {
57  return llvm::make_unique<NullEnumerator<PDBSymbol>>();
58 }
59 
60 std::unique_ptr<IPDBEnumSymbols>
62  uint32_t Offset) const {
63  return llvm::make_unique<NullEnumerator<PDBSymbol>>();
64 }
65 
66 std::unique_ptr<IPDBEnumSymbols>
68  return llvm::make_unique<NullEnumerator<PDBSymbol>>();
69 }
70 
71 std::unique_ptr<IPDBEnumSymbols>
73  return llvm::make_unique<NullEnumerator<PDBSymbol>>();
74 }
75 
76 std::unique_ptr<IPDBEnumLineNumbers>
78  return llvm::make_unique<NullEnumerator<IPDBLineNumber>>();
79 }
80 
81 std::unique_ptr<IPDBEnumLineNumbers>
83  uint32_t Length) const {
84  return llvm::make_unique<NullEnumerator<IPDBLineNumber>>();
85 }
86 
87 std::unique_ptr<IPDBEnumLineNumbers>
89  return llvm::make_unique<NullEnumerator<IPDBLineNumber>>();
90 }
91 
92 std::unique_ptr<IPDBEnumLineNumbers>
93 NativeRawSymbol::findInlineeLinesByVA(uint64_t VA, uint32_t Length) const {
94  return llvm::make_unique<NullEnumerator<IPDBLineNumber>>();
95 }
96 
98  bytes.clear();
99 }
100 
103 }
104 
106  return 0;
107 }
108 
110  return 0;
111 }
112 
114  return 0;
115 }
116 
118 
120  Version.Major = 0;
121  Version.Minor = 0;
122  Version.Build = 0;
123  Version.QFE = 0;
124 }
125 
127  return 0;
128 }
129 
131  return 0;
132 }
133 
135 
137  return PDB_BuiltinType::None;
138 }
139 
141  return 0;
142 }
143 
145  return PDB_CallingConv::FarStdCall;
146 }
147 
149 
150 std::string NativeRawSymbol::getCompilerName() const {
151  return {};
152 }
153 
155  return 0;
156 }
157 
159  return 0;
160 }
161 
163  Version.Major = 0;
164  Version.Minor = 0;
165  Version.Build = 0;
166  Version.QFE = 0;
167 }
168 
170  return PDB_Lang::Cobol;
171 }
172 
174 
175 std::string NativeRawSymbol::getLibraryName() const {
176  return {};
177 }
178 
180  return 0;
181 }
182 
184  return 0;
185 }
186 
188  return 0;
189 }
190 
193 }
194 
196 
198  return 0;
199 }
200 
201 std::string NativeRawSymbol::getName() const {
202  return {};
203 }
204 
206  return 0;
207 }
208 
210  return 0;
211 }
212 
214  return 0;
215 }
216 
218  return 0;
219 }
220 
222  return 0;
223 }
224 
226  return {};
227 }
228 
230  return 0;
231 }
232 
234 
236  return 0;
237 }
238 
240  return PDB_Cpu::Intel8080;
241 }
242 
244  return 0;
245 }
246 
249 }
250 
252  return 0;
253 }
254 
256  return 0;
257 }
258 
260  return 0;
261 }
262 
264  return 0;
265 }
266 
268  return 0;
269 }
270 
272  return 0;
273 }
274 
276  return {};
277 }
278 
279 std::unique_ptr<IPDBLineNumber>
281  return nullptr;
282 }
283 
285  return 0;
286 }
287 
289 
290 std::string NativeRawSymbol::getSymbolsFileName() const { return {}; }
291 
293 
295  return 0;
296 }
297 
299  return 0;
300 }
301 
303  return 0;
304 }
305 
307  return 0;
308 }
309 
311  return 0;
312 }
313 
315  return 0;
316 }
317 
319  return 0;
320 }
321 
323 
325  return 0;
326 }
327 
329  return {};
330 }
331 
333  PDB_UndnameFlags Flags) const {
334  return {};
335 }
336 
338 
340 
342  return Variant();
343 }
344 
346  return 0;
347 }
348 
350  return 0;
351 }
352 
354 
355 std::unique_ptr<PDBSymbolTypeBuiltin>
357  return nullptr;
358 }
359 
361  return PDB_DataKind::Unknown;
362 }
363 
365 
367 
368 int32_t NativeRawSymbol::getOffset() const {
369  return 0;
370 }
371 
373  return 0;
374 }
375 
377  return 0;
378 }
379 
381  return PDB_LocType::Null;
382 }
383 
385  return PDB_Machine::Invalid;
386 }
387 
390 }
391 
392 uint64_t NativeRawSymbol::getLength() const {
393  return 0;
394 }
395 
397  return 0;
398 }
399 
401  return 0;
402 }
403 
405  return PDB_UdtType::Struct;
406 }
407 
409  return false;
410 }
411 
413  return false;
414 }
415 
417  return false;
418 }
419 
421  return false;
422 }
423 
425  return false;
426 }
427 
429  return false;
430 }
431 
433  return false;
434 }
435 
437  return false;
438 }
439 
441  return false;
442 }
443 
445  return false;
446 }
447 
449  return false;
450 }
451 
453  return false;
454 }
455 
457  return false;
458 }
459 
461  return false;
462 }
463 
465  return false;
466 }
467 
469  return false;
470 }
471 
473  return false;
474 }
475 
477  return false;
478 }
479 
481  return false;
482 }
483 
485  return false;
486 }
487 
489  return false;
490 }
491 
493  return false;
494 }
495 
497  return false;
498 }
499 
501  return false;
502 }
503 
505  return false;
506 }
507 
509  return false;
510 }
511 
513  return false;
514 }
515 
517  return false;
518 }
519 
521  return false;
522 }
523 
525  return false;
526 }
527 
529  return false;
530 }
531 
533  return false;
534 }
535 
537  return false;
538 }
539 
541  return false;
542 }
543 
545  return false;
546 }
547 
549  return false;
550 }
551 
553  return false;
554 }
555 
557  return false;
558 }
559 
561  return false;
562 }
563 
565  return false;
566 }
567 
569  return false;
570 }
571 
573  return false;
574 }
575 
577  return false;
578 }
579 
581  return false;
582 }
583 
585  return false;
586 }
587 
589  return false;
590 }
591 
593  return false;
594 }
595 
597  return false;
598 }
599 
601  return false;
602 }
603 
605  return false;
606 }
607 
609  return false;
610 }
611 
613  return false;
614 }
615 
617  return false;
618 }
619 
621  return false;
622 }
623 
625  return false;
626 }
627 
629  return false;
630 }
631 
633  return false;
634 }
635 
637  return false;
638 }
639 
641  return false;
642 }
643 
645  return false;
646 }
647 
649  return false;
650 }
651 
653  return false;
654 }
655 
657  return false;
658 }
659 
661  return false;
662 }
663 
665  return false;
666 }
667 
669  return false;
670 }
671 
673  return false;
674 }
675 
677  return false;
678 }
679 
681  return false;
682 }
683 
685  return false;
686 }
687 
689  return false;
690 }
691 
693  return false;
694 }
695 
697  return false;
698 }
699 
701  return false;
702 }
703 
705  return false;
706 }
707 
709  return false;
710 }
711 
713  return false;
714 }
715 
717  return false;
718 }
719 
721  return false;
722 }
723 
725  return false;
726 }
727 
729  return false;
730 }
731 
732 std::string NativeRawSymbol::getUnused() const {
733  return {};
734 }
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:23
uint32_t getSlot() const override
int32_t getVirtualBasePointerOffset() const override
bool isReference() const override
uint32_t getNumberOfRegisterIndices() const override
amdgpu Simplify well known AMD library false FunctionCallee Value const Twine & Name
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:249
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:100
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
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:21
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:300
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:182
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:45
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:167
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:48
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:185
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:231
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:143
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:78
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:274
std::string getObjectFileName() const override
bool hasDebugInfo() const override
bool isMSILCode() const override
Definition: JSON.cpp:597
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:45
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:48
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:904
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:323