LLVM 20.0.0git
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
13
14using namespace llvm;
15using namespace llvm::pdb;
16
18 SymIndexId SymbolId)
19 : Session(PDBSession), Tag(Tag), SymbolId(SymbolId) {}
20
22 PdbSymbolIdField ShowIdFields,
23 PdbSymbolIdField RecurseIdFields) const {
24 dumpSymbolIdField(OS, "symIndexId", SymbolId, Indent, Session,
25 PdbSymbolIdField::SymIndexId, ShowIdFields,
26 RecurseIdFields);
27 dumpSymbolField(OS, "symTag", Tag, Indent);
28}
29
30std::unique_ptr<IPDBEnumSymbols>
32 return std::make_unique<NullEnumerator<PDBSymbol>>();
33}
34
35std::unique_ptr<IPDBEnumSymbols>
37 PDB_NameSearchFlags Flags) const {
38 return std::make_unique<NullEnumerator<PDBSymbol>>();
39}
40
41std::unique_ptr<IPDBEnumSymbols>
43 PDB_NameSearchFlags Flags, uint32_t Section, uint32_t Offset) const {
44 return std::make_unique<NullEnumerator<PDBSymbol>>();
45}
46
47std::unique_ptr<IPDBEnumSymbols>
49 PDB_NameSearchFlags Flags, uint64_t VA) const {
50 return std::make_unique<NullEnumerator<PDBSymbol>>();
51}
52
53std::unique_ptr<IPDBEnumSymbols>
55 PDB_NameSearchFlags Flags, uint32_t RVA) const {
56 return std::make_unique<NullEnumerator<PDBSymbol>>();
57}
58
59std::unique_ptr<IPDBEnumSymbols>
61 uint32_t Offset) const {
62 return std::make_unique<NullEnumerator<PDBSymbol>>();
63}
64
65std::unique_ptr<IPDBEnumSymbols>
67 return std::make_unique<NullEnumerator<PDBSymbol>>();
68}
69
70std::unique_ptr<IPDBEnumSymbols>
72 return std::make_unique<NullEnumerator<PDBSymbol>>();
73}
74
75std::unique_ptr<IPDBEnumLineNumbers>
77 return std::make_unique<NullEnumerator<IPDBLineNumber>>();
78}
79
80std::unique_ptr<IPDBEnumLineNumbers>
82 uint32_t Length) const {
83 return std::make_unique<NullEnumerator<IPDBLineNumber>>();
84}
85
86std::unique_ptr<IPDBEnumLineNumbers>
88 return std::make_unique<NullEnumerator<IPDBLineNumber>>();
89}
90
91std::unique_ptr<IPDBEnumLineNumbers>
93 return std::make_unique<NullEnumerator<IPDBLineNumber>>();
94}
95
97 bytes.clear();
98}
99
102}
103
105 return 0;
106}
107
109 return 0;
110}
111
113 return 0;
114}
115
117
119 Version.Major = 0;
120 Version.Minor = 0;
121 Version.Build = 0;
122 Version.QFE = 0;
123}
124
126 return 0;
127}
128
130 return 0;
131}
132
134
137}
138
140 return 0;
141}
142
144 return PDB_CallingConv::FarStdCall;
145}
146
148
150 return {};
151}
152
154 return 0;
155}
156
158 return 0;
159}
160
162 Version.Major = 0;
163 Version.Minor = 0;
164 Version.Build = 0;
165 Version.QFE = 0;
166}
167
169 return PDB_Lang::Cobol;
170}
171
173
175 return {};
176}
177
179 return 0;
180}
181
183 return 0;
184}
185
187 return 0;
188}
189
191 return codeview::RegisterId::EAX;
192}
193
195
197 return 0;
198}
199
200std::string NativeRawSymbol::getName() const {
201 return {};
202}
203
205 return 0;
206}
207
209 return 0;
210}
211
213 return 0;
214}
215
217 return 0;
218}
219
221 return 0;
222}
223
225 return {};
226}
227
229 return 0;
230}
231
233
235 return 0;
236}
237
239 return PDB_Cpu::Intel8080;
240}
241
243 return 0;
244}
245
247 return codeview::RegisterId::EAX;
248}
249
251 return 0;
252}
253
255 return 0;
256}
257
259 return 0;
260}
261
263 return 0;
264}
265
267 return 0;
268}
269
271 return 0;
272}
273
275 return {};
276}
277
278std::unique_ptr<IPDBLineNumber>
280 return nullptr;
281}
282
284 return 0;
285}
286
288
289std::string NativeRawSymbol::getSymbolsFileName() const { return {}; }
290
292
294 return 0;
295}
296
298 return 0;
299}
300
302 return 0;
303}
304
306 return 0;
307}
308
310 return 0;
311}
312
314 return 0;
315}
316
318 return 0;
319}
320
322
324 return 0;
325}
326
328 return {};
329}
330
332 PDB_UndnameFlags Flags) const {
333 return {};
334}
335
337
339
341 return Variant();
342}
343
345 return 0;
346}
347
349 return 0;
350}
351
353
354std::unique_ptr<PDBSymbolTypeBuiltin>
356 return nullptr;
357}
358
361}
362
364
366
368 return 0;
369}
370
372 return 0;
373}
374
376 return 0;
377}
378
380 return PDB_LocType::Null;
381}
382
385}
386
389}
390
392 return 0;
393}
394
396 return 0;
397}
398
400 return 0;
401}
402
404 return PDB_UdtType::Struct;
405}
406
408 return false;
409}
410
412 return false;
413}
414
416 return false;
417}
418
420 return false;
421}
422
424 return false;
425}
426
428 return false;
429}
430
432 return false;
433}
434
436 return false;
437}
438
440 return false;
441}
442
444 return false;
445}
446
448 return false;
449}
450
452 return false;
453}
454
456 return false;
457}
458
460 return false;
461}
462
464 return false;
465}
466
468 return false;
469}
470
472 return false;
473}
474
476 return false;
477}
478
480 return false;
481}
482
484 return false;
485}
486
488 return false;
489}
490
492 return false;
493}
494
496 return false;
497}
498
500 return false;
501}
502
504 return false;
505}
506
508 return false;
509}
510
512 return false;
513}
514
516 return false;
517}
518
520 return false;
521}
522
524 return false;
525}
526
528 return false;
529}
530
532 return false;
533}
534
536 return false;
537}
538
540 return false;
541}
542
544 return false;
545}
546
548 return false;
549}
550
552 return false;
553}
554
556 return false;
557}
558
560 return false;
561}
562
564 return false;
565}
566
568 return false;
569}
570
572 return false;
573}
574
576 return false;
577}
578
580 return false;
581}
582
584 return false;
585}
586
588 return false;
589}
590
592 return false;
593}
594
596 return false;
597}
598
600 return false;
601}
602
604 return false;
605}
606
608 return false;
609}
610
612 return false;
613}
614
616 return false;
617}
618
620 return false;
621}
622
624 return false;
625}
626
628 return false;
629}
630
632 return false;
633}
634
636 return false;
637}
638
640 return false;
641}
642
644 return false;
645}
646
648 return false;
649}
650
652 return false;
653}
654
656 return false;
657}
658
660 return false;
661}
662
664 return false;
665}
666
668 return false;
669}
670
672 return false;
673}
674
676 return false;
677}
678
680 return false;
681}
682
684 return false;
685}
686
688 return false;
689}
690
692 return false;
693}
694
696 return false;
697}
698
700 return false;
701}
702
704 return false;
705}
706
708 return false;
709}
710
712 return false;
713}
714
716 return false;
717}
718
720 return false;
721}
722
724 return false;
725}
726
728 return false;
729}
730
731std::string NativeRawSymbol::getUnused() const {
732 return {};
733}
std::string Name
raw_pwrite_stream & OS
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
Definition: SmallVector.h:1209
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:50
The instances of the Type class are immutable: once they are created, they are never changed.
Definition: Type.h:45
uint32_t getSignature() const override
bool isScoped() const override
int32_t getThisAdjust() const override
bool isRValueReference() const override
SymIndexId getVirtualTableShapeId() const override
SymIndexId getSymIndexId() const override
std::string getUnused() const override
bool isConstructorVirtualBase() const override
uint32_t getUavSlot() const override
bool hasAssignmentOperator() const override
uint64_t getLength() const override
bool hasInlineAttribute() const override
bool isRestrictedType() const override
PDB_Lang getLanguage() const override
uint32_t getSamplerSlot() const override
uint32_t getAddressSection() const override
bool isCode() const override
bool isEditAndContinueEnabled() const override
PDB_MemberAccess getAccess() const override
bool isLocationControlFlowDependent() const override
std::string getObjectFileName() const override
bool hasDebugInfo() const override
bool isSplitted() const override
bool isNested() const override
bool isAcceleratorPointerTagLiveRange() const override
bool hasEHa() const override
bool isDataAligned() const override
std::unique_ptr< IPDBEnumLineNumbers > findInlineeLines() const override
bool isPointerToMemberFunction() const override
SymIndexId getUpperBoundId() const override
bool hasStrictGSCheck() const override
uint32_t getCount() const override
std::unique_ptr< IPDBEnumSymbols > findChildren(PDB_SymType Type) const override
uint32_t getTimeStamp() const override
bool hasPrivateSymbols() const override
bool isNaked() const override
void getBackEndVersion(VersionInfo &Version) const override
uint32_t getTargetOffset() const override
bool isValueUdt() const override
uint32_t getVirtualBaseOffset() const override
bool isPointerBasedOnSymbolValue() const override
std::string getSourceFileName() const override
NativeRawSymbol(NativeSession &PDBSession, PDB_SymType Tag, SymIndexId SymbolId)
void getFrontEndVersion(VersionInfo &Version) const override
int32_t getVirtualBasePointerOffset() const override
int32_t getOffset() const override
bool isManagedCode() const override
bool hasCastOperator() const override
uint32_t getRelativeVirtualAddress() const override
uint32_t getTargetSection() const override
uint32_t getAge() const override
bool isRefUdt() const override
SymIndexId getBaseSymbolId() const override
uint32_t getSlot() const override
uint64_t getVirtualAddress() const override
std::unique_ptr< PDBSymbolTypeBuiltin > getVirtualBaseTableType() const override
uint32_t getRank() const override
std::unique_ptr< IPDBEnumLineNumbers > findInlineeLinesByVA(uint64_t VA, uint32_t Length) const override
bool isIntrinsic() const override
bool isCVTCIL() const override
SymIndexId getLowerBoundId() const override
uint64_t getLiveRangeLength() const override
PDB_LocType getLocationType() const override
bool isSdl() const override
bool isVirtualBaseClass() const override
bool isCompilerGenerated() const override
bool hasLongJump() const override
std::string getUndecoratedName() const override
PDB_Cpu getPlatform() const override
SymIndexId getTypeId() const override
bool hasOverloadedOperator() const override
std::unique_ptr< IPDBEnumSymbols > findChildrenByAddr(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags, uint32_t Section, uint32_t Offset) const override
SymIndexId getClassParentId() const override
uint32_t getBaseDataOffset() const override
std::string getUndecoratedNameEx(PDB_UndnameFlags Flags) const override
bool isAcceleratorStubFunction() const override
bool hasSEH() const override
bool isAcceleratorGroupSharedLocal() const override
uint32_t getLiveRangeStartAddressOffset() const override
bool isLTCG() const override
bool hasOptimizedCodeDebugInfo() const override
codeview::ThunkOrdinal getThunkOrdinal() const override
std::unique_ptr< IPDBEnumSymbols > findInlineFramesByRVA(uint32_t RVA) const override
bool isIndirectVirtualBaseClass() const override
uint32_t getSizeInUdt() const override
bool getAddressTaken() const override
bool hasInlAsm() const override
bool getNoStackOrdering() const override
bool isMatrixRowMajor() const override
bool hasSetJump() const override
bool isPointerToDataMember() const override
std::string getCompilerName() const override
uint32_t getVirtualBaseDispIndex() const override
bool isCxxReturnUdt() const override
bool hasFramePointer() const override
bool isUnalignedType() const override
bool isSingleInheritance() const override
bool hasInterruptReturn() const override
SymIndexId getUnmodifiedTypeId() const override
Variant getValue() const override
bool isAggregated() const override
uint32_t getNumberOfRegisterIndices() const override
uint32_t getAddressOffset() const override
uint32_t getNumberOfModifiers() const override
uint32_t getBaseDataSlot() const override
bool isVolatileType() const override
bool isMSILCode() const override
SymIndexId getOemSymbolId() const override
bool isHotpatchable() const override
bool isPureVirtual() const override
SymIndexId getSubTypeId() const override
bool isPacked() const override
uint64_t getTargetVirtualAddress() const override
uint32_t getLiveRangeStartAddressSection() const override
bool hasEH() const override
bool wasInlined() const override
bool hasCTypes() const override
bool isIntroVirtualFunction() const override
bool hasNoReturnAttribute() const override
codeview::GUID getGuid() const override
PDB_CallingConv getCallingConvention() const override
uint32_t getTargetRelativeVirtualAddress() const override
PDB_DataKind getDataKind() const override
uint32_t getToken() const override
uint32_t getOemId() const override
uint32_t getRegisterType() const override
uint32_t getMemorySpaceKind() const override
bool hasFarReturn() const override
bool hasConstructor() const override
std::string getName() const override
std::unique_ptr< IPDBEnumSymbols > findChildrenByVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags, uint64_t VA) const override
uint32_t getNumberOfAcceleratorPointerTags() const override
std::unique_ptr< IPDBEnumLineNumbers > findInlineeLinesByAddr(uint32_t Section, uint32_t Offset, uint32_t Length) const override
bool isReturnValue() const override
uint32_t getLiveRangeStartRelativeVirtualAddress() const override
std::unique_ptr< IPDBEnumSymbols > findInlineFramesByVA(uint64_t VA) const override
std::unique_ptr< IPDBEnumSymbols > findChildrenByRVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags, uint32_t RVA) const override
bool isConstType() const override
PDB_SymType getSymTag() const override
bool hasAlloca() const override
uint32_t getCountLiveRanges() const override
bool hasNoInlineAttribute() const override
uint32_t getTextureSlot() const override
std::string getLibraryName() const override
std::unique_ptr< IPDBLineNumber > getSrcLineOnTypeDefn() const override
bool isHLSLData() const override
uint32_t getOffsetInUdt() const override
bool isVirtual() const override
PDB_Machine getMachineType() const override
bool isStatic() const override
bool hasNestedTypes() const override
std::unique_ptr< IPDBEnumLineNumbers > findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const override
uint32_t getStride() const override
bool isMultipleInheritance() const override
bool isSafeBuffers() const override
uint32_t getBitPosition() const override
uint32_t getNumberOfColumns() const override
PDB_UdtType getUdtKind() const override
bool isOptimizedAway() const override
bool isFunction() const override
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
codeview::RegisterId getRegisterId() const override
PDB_BuiltinType getBuiltinType() const override
bool isInterfaceUdt() const override
std::unique_ptr< IPDBEnumSymbols > findInlineFramesByAddr(uint32_t Section, uint32_t Offset) const override
bool hasSecurityChecks() const override
bool isReference() const override
codeview::RegisterId getLocalBasePointerRegisterId() const override
bool isUnreached() const override
bool hasManagedCode() const override
bool isMSILNetmodule() const override
std::string getSymbolsFileName() const override
bool hasCustomCallingConvention() const override
SymIndexId getArrayIndexTypeId() const override
SymIndexId getLexicalParentId() const override
void getDataBytes(SmallVector< uint8_t, 32 > &Bytes) const override
uint32_t getNumberOfRows() const override
bool isVirtualInheritance() const override
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition: raw_ostream.h:52
CPUType
These values correspond to the CV_CPU_TYPE_e enumeration, and are documented here: https://msdn....
Definition: CodeView.h:76
CallingConvention
These values correspond to the CV_call_e enumeration, and are documented at the following locations: ...
Definition: CodeView.h:184
ThunkOrdinal
These values correspond to the THUNK_ORDINAL enumeration.
Definition: CodeView.h:563
SourceLanguage
These values correspond to the CV_CFL_LANG enumeration in the Microsoft Debug Interface Access SDK,...
Definition: CodeView.h:146
PDB_NameSearchFlags
Defines flags used for enumerating child symbols.
Definition: PDBTypes.h:102
void dumpSymbolField(raw_ostream &OS, StringRef Name, T Value, int Indent)
Definition: PDBExtras.h:47
PDB_BuiltinType
These values correspond to the Basictype enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:335
PDB_MemberAccess
Definition: PDBTypes.h:385
PDB_UdtType
These values correspond to the UdtKind enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:310
PDB_SymType
These values correspond to the SymTagEnum enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:243
PDB_LocType
These values correspond to the LocationType enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:292
PDB_DataKind
These values correspond to the DataKind enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:228
PDB_UndnameFlags
These values correspond to the flags that can be combined to control the return of an undecorated nam...
Definition: PDBTypes.h:362
void dumpSymbolIdField(raw_ostream &OS, StringRef Name, SymIndexId Value, int Indent, const IPDBSession &Session, PdbSymbolIdField FieldId, PdbSymbolIdField ShowFlags, PdbSymbolIdField RecurseFlags)
Definition: PDBSymbol.cpp:202
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
@ Length
Definition: DWP.cpp:480
This represents the 'GUID' type from windows.h.
Definition: GUID.h:21