1 //===- DIASymbol.cpp - Dump debug info from a PDB file ----------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #include "llvm-pdbdump.h"
11 #include "DIASymbol.h"
13 using namespace llvm::sys::windows;
15 DIASymbol::DIASymbol(IDiaSymbol *DiaSymbol) : Symbol(DiaSymbol) {
19 DIASymbol::~DIASymbol() { Symbol->Release(); }
21 void DIASymbol::fullDump(int IndentLevel) {
22 getLexicalParent().dump("Lexical parent", IndentLevel);
23 getClassParent().dump("Class parent", IndentLevel);
24 getType().dump("Type", IndentLevel);
25 getArrayIndexType().dump("Array index type", IndentLevel);
26 getVirtualTableShape().dump("Vtable shape", IndentLevel);
27 getLowerBound().dump("Lower bound", IndentLevel);
28 getUpperBound().dump("Upper bound", IndentLevel);
29 getObjectPointerType().dump("Object pointer type", IndentLevel);
30 getContainer().dump("Container", IndentLevel);
31 getVirtualBaseTableType().dump("Virtual base table type", IndentLevel);
32 getUnmodifiedType().dump("Unmodified type", IndentLevel);
33 getSubType().dump("Sub type", IndentLevel);
34 getBaseSymbol().dump("Base symbol", IndentLevel);
36 #if (_MSC_FULL_VER >= 180031101)
37 // These methods are only available on VS 2013 SP4 and higher.
38 isPGO().dump("Is PGO", IndentLevel);
39 hasValidPGOCounts().dump("Has valid PGO counts", IndentLevel);
40 isOptimizedForSpeed().dump("Is optimized for speed", IndentLevel);
41 getPGOEntryCount().dump("PGO entry count", IndentLevel);
42 getPGOEdgeCount().dump("PGO edge count", IndentLevel);
43 getPGODynamicInstructionCount().dump("PGO dynamic instruction count",
45 getStaticSize().dump("Static size", IndentLevel);
46 getFinalLiveStaticSize().dump("Final live static size", IndentLevel);
47 getPhaseName().dump("Phase name", IndentLevel);
48 hasControlFlowCheck().dump("Has control flow check", IndentLevel);
51 getAccess().dump("Access", IndentLevel);
52 getAddressOffset().dump("Address Offset", IndentLevel);
53 getAddressSection().dump("Address Section", IndentLevel);
54 getAddressTaken().dump("Address Taken", IndentLevel);
55 getAge().dump("Age", IndentLevel);
56 getArrayIndexTypeId().dump("Array Index Type Id", IndentLevel);
57 getBackEndMajor().dump("Back End Major", IndentLevel);
58 getBackEndMinor().dump("Back End Minor", IndentLevel);
59 getBackEndBuild().dump("Back End Build", IndentLevel);
60 getBaseDataOffset().dump("Base Data Offset", IndentLevel);
61 getBaseDataSlot().dump("Base Data Slot", IndentLevel);
62 getBaseSymbolId().dump("Base Symbol Id", IndentLevel);
63 getBaseType().dump("Base Type", IndentLevel);
64 getBitPosition().dump("Bit Position", IndentLevel);
65 getBuiltInKind().dump("Built In Kind", IndentLevel);
66 getCallingConvention().dump("Calling Convention", IndentLevel);
67 getClassParentId().dump("Class Parent Id", IndentLevel);
68 isCode().dump("Code", IndentLevel);
69 isCompilerGenerated().dump("Compiler Generated", IndentLevel);
70 getCompilerName().dump("Compiler Name", IndentLevel);
71 hasConstructor().dump("Constructor", IndentLevel);
72 isConstType().dump("Const Type", IndentLevel);
73 getCount().dump("Count", IndentLevel);
74 getCountLiveRanges().dump("Count Live Ranges", IndentLevel);
75 hasCustomCallingConvention().dump("Custom Calling Convention", IndentLevel);
76 getDataKind().dump("Data Kind", IndentLevel);
77 isEditAndContinueEnabled().dump("Edit and Continue Enabled", IndentLevel);
78 hasFarReturn().dump("Far Return", IndentLevel);
79 getFrontEndMajor().dump("Front End Major", IndentLevel);
80 getFrontEndMinor().dump("Front End Minor", IndentLevel);
81 getFrontEndBuild().dump("Front End Build", IndentLevel);
82 isFunction().dump("Function", IndentLevel);
83 getGuid().dump("GUID", IndentLevel);
84 hasAlloca().dump("Has Alloca", IndentLevel);
85 hasAssignmentOperator().dump("Has Assignment Operator", IndentLevel);
86 hasCastOperator().dump("Has Cast Operator", IndentLevel);
87 hasDebugInfo().dump("Has Debug Info", IndentLevel);
88 hasEH().dump("Has EH", IndentLevel);
89 hasEHa().dump("Has EHa", IndentLevel);
90 hasInlAsm().dump("Has Inline Asm", IndentLevel);
91 hasLongJump().dump("Has longjmp", IndentLevel);
92 hasManagedCode().dump("Has Managed Code", IndentLevel);
93 hasNestedTypes().dump("Has Nested Types", IndentLevel);
94 hasSecurityChecks().dump("Has Security Checks", IndentLevel);
95 hasSEH().dump("Has SEH", IndentLevel);
96 hasSetJump().dump("Has setjmp", IndentLevel);
97 isIndirectVirtualBaseClass().dump("Is indirect virtual base", IndentLevel);
98 hasInlineAttribute().dump("Has inline declspec", IndentLevel);
99 hasInterruptReturn().dump("Has interrupt return", IndentLevel);
100 isBaseVirtualFunction().dump("Is base virtual function", IndentLevel);
101 isAcceleratorGroupSharedLocal().dump("Is Accelerator Group Shared Local",
103 isAcceleratorPointerTagLiveRange().dump(
104 "Is Accelerator Pointer Tag Live Range", IndentLevel);
105 isAcceleratorStubFunction().dump("Is Accelerator Stub Function", IndentLevel);
106 isAggregated().dump("Is aggregated", IndentLevel);
107 hasCTypes().dump("Has C types", IndentLevel);
108 isCVTCIL().dump("Was converted from MSIL", IndentLevel);
109 isDataAligned().dump("Is data aligned", IndentLevel);
110 isHLSLData().dump("Is HLSL data", IndentLevel);
111 isHotpatchable().dump("Is hot-patchable", IndentLevel);
112 isLTCG().dump("Is LTCG", IndentLevel);
113 isMatrixRowMajor().dump("Is matrix row major", IndentLevel);
114 isMSILNetmodule().dump("Is MSIL .netmodule", IndentLevel);
115 isMultipleInheritance().dump("Is multiple inheritance", IndentLevel);
116 isNaked().dump("Is naked", IndentLevel);
117 isOptimizedAway().dump("Is optimized away", IndentLevel);
118 isPointerBasedOnSymbolValue().dump("Is pointer based on symbol value",
120 isPointerToDataMember().dump("Is pointer to data member", IndentLevel);
121 isPointerToMemberFunction().dump("Is pointer to member function",
123 isReturnValue().dump("Is return value", IndentLevel);
124 isSdl().dump("Is SDL", IndentLevel);
125 isSingleInheritance().dump("Is single inheritance", IndentLevel);
126 isSplitted().dump("Is splitted", IndentLevel);
127 isStatic().dump("Is staic", IndentLevel);
128 isStripped().dump("Is stripped", IndentLevel);
129 isVirtualInheritance().dump("Is virtual inheritance", IndentLevel);
130 getLanguage().dump("Language", IndentLevel);
131 getLength().dump("Length", IndentLevel);
132 getLexicalParentId().dump("Lexical parent id", IndentLevel);
133 getLibraryName().dump("Library name", IndentLevel);
134 getLiveRangeLength().dump("Live range length", IndentLevel);
135 getLiveRangeStartAddressSection().dump("Live range start address section",
137 getLiveRangeStartAddressOffset().dump("Live range start address offset",
139 getLiveRangeStartRelativeVirtualAddress().dump("Live range start address RVA",
141 getLocationType().dump("Location type", IndentLevel);
142 getLowerBoundId().dump("Lower bound id", IndentLevel);
143 getMachineType().dump("Machine type", IndentLevel);
144 isManagedRef().dump("Managed", IndentLevel);
145 getMemorySpaceKind().dump("Memory space kind", IndentLevel);
146 isMsilRef().dump("MSIL", IndentLevel);
147 getName().dump("Name", IndentLevel);
148 isNested().dump("Nested", IndentLevel);
149 hasNoInlineAttribute().dump("Has noinline declspec", IndentLevel);
150 hasNoReturnAttribute().dump("Has noreturn declspec", IndentLevel);
151 getNoStackOrdering().dump("No stack ordering", IndentLevel);
152 isUnreached().dump("Not reached", IndentLevel);
153 getNumberOfAcceleratorPointerTags().dump("Number of accelerator pointer tags",
155 getNumberOfModifiers().dump("Number of modifiers", IndentLevel);
156 getNumberOfRegisterIndices().dump("Number of register indices", IndentLevel);
157 getNumberOfRows().dump("Number of rows", IndentLevel);
158 getNumberOfColumns().dump("Number of columns", IndentLevel);
159 getObjectFileName().dump("Object file name", IndentLevel);
160 getOemSymbolId().dump("OEM symbol id", IndentLevel);
161 getOffset().dump("Offset", IndentLevel);
162 hasOptimizedCodeDebugInfo().dump("Optimized code debug info", IndentLevel);
163 hasOverloadedOperator().dump("Overloaded operator", IndentLevel);
164 isPacked().dump("Packed", IndentLevel);
165 getPlatform().dump("Platform", IndentLevel);
166 isPureVirtual().dump("Pure", IndentLevel);
167 getRank().dump("Rank", IndentLevel);
168 isReference().dump("Reference", IndentLevel);
169 getRegisterId().dump("Register ID", IndentLevel);
170 getRegisterType().dump("Register type", IndentLevel);
171 getRelativeVirtualAddress().dump("RVA", IndentLevel);
172 isRestrictedType().dump("Restricted type", IndentLevel);
173 getSamplerSlot().dump("Sampler slot", IndentLevel);
174 isScoped().dump("Scoped", IndentLevel);
175 getSignature().dump("Signature", IndentLevel);
176 getSizeInUdt().dump("Size in UDT", IndentLevel);
177 getSlot().dump("Slot", IndentLevel);
178 getSourceFileName().dump("Source file name", IndentLevel);
179 getStride().dump("Stride", IndentLevel);
180 getSubTypeId().dump("Sub type ID", IndentLevel);
181 getSymbolsFileName().dump("File name", IndentLevel);
182 getSymIndexId().dump("Sym index ID", IndentLevel);
183 getSymTag().dump("Sym tag", IndentLevel);
184 getTargetOffset().dump("Target offset", IndentLevel);
185 getTargetRelativeVirtualAddress().dump("Target RVA", IndentLevel);
186 getTargetSection().dump("Target section", IndentLevel);
187 getTargetVirtualAddress().dump("Target virtual address", IndentLevel);
188 getTextureSlot().dump("Texture slot", IndentLevel);
189 getThisAdjust().dump("This adjust", IndentLevel);
190 getThunkOrdinal().dump("Thunk ordinal", IndentLevel);
191 getTimeStamp().dump("Time stamp", IndentLevel);
192 getToken().dump("Token", IndentLevel);
193 getUavSlot().dump("UAV slot", IndentLevel);
194 getUdtKind().dump("UDT kind", IndentLevel);
195 isUnalignedType().dump("Unaligned type", IndentLevel);
196 getUndecoratedName().dump("Undecorated name", IndentLevel);
197 getUnmodifiedTypeId().dump("Unmodified type id", IndentLevel);
198 getUpperBoundId().dump("Upper bound id", IndentLevel);
199 isVirtual().dump("Virtual", IndentLevel);
200 getVirtualAddress().dump("Virtual address", IndentLevel);
201 isVirtualBaseClass().dump("Virtual base class", IndentLevel);
202 getVirtualBaseDispIndex().dump("Virtual base disp index", IndentLevel);
203 getVirtualBaseOffset().dump("Virtual base offset", IndentLevel);
204 getVirtualBasePointerOffset().dump("Virtual base pointer offset",
206 getVirtualTableShapeId().dump("Vtable shape ID", IndentLevel);
207 isVolatileType().dump("Volatile type", IndentLevel);
210 #if (_MSC_FULL_VER >= 180031101)
211 DIAResult<BOOL> DIASymbol::isPGO() {
212 return InternalGetDIAValue(&IDiaSymbol::get_isPGO);
215 DIAResult<BOOL> DIASymbol::hasValidPGOCounts() {
216 return InternalGetDIAValue(&IDiaSymbol::get_hasValidPGOCounts);
219 DIAResult<BOOL> DIASymbol::isOptimizedForSpeed() {
220 return InternalGetDIAValue(&IDiaSymbol::get_isOptimizedForSpeed);
223 DIAResult<DWORD> DIASymbol::getPGOEntryCount() {
224 return InternalGetDIAValue(&IDiaSymbol::get_PGOEntryCount);
227 DIAResult<DWORD> DIASymbol::getPGOEdgeCount() {
228 return InternalGetDIAValue(&IDiaSymbol::get_PGOEdgeCount);
231 DIAResult<ULONGLONG> DIASymbol::getPGODynamicInstructionCount() {
232 return InternalGetDIAValue(&IDiaSymbol::get_PGODynamicInstructionCount);
235 DIAResult<DWORD> DIASymbol::getStaticSize() {
236 return InternalGetDIAValue(&IDiaSymbol::get_staticSize);
239 DIAResult<DWORD> DIASymbol::getFinalLiveStaticSize() {
240 return InternalGetDIAValue(&IDiaSymbol::get_finalLiveStaticSize);
243 DIAResult<DIAString> DIASymbol::getPhaseName() {
244 return InternalGetDIAStringValue(&IDiaSymbol::get_phaseName);
247 DIAResult<BOOL> DIASymbol::hasControlFlowCheck() {
248 return InternalGetDIAValue(&IDiaSymbol::get_hasControlFlowCheck);
252 DIAResult<DiaSymbolPtr> DIASymbol::getClassParent() {
253 return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
254 &IDiaSymbol::get_classParent);
257 DIAResult<DiaSymbolPtr> DIASymbol::getType() {
258 return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(&IDiaSymbol::get_type);
261 DIAResult<DiaSymbolPtr> DIASymbol::getArrayIndexType() {
262 return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
263 &IDiaSymbol::get_arrayIndexType);
266 DIAResult<DiaSymbolPtr> DIASymbol::getVirtualTableShape() {
267 return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
268 &IDiaSymbol::get_virtualTableShape);
271 DIAResult<DiaSymbolPtr> DIASymbol::getLowerBound() {
272 return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
273 &IDiaSymbol::get_lowerBound);
276 DIAResult<DiaSymbolPtr> DIASymbol::getUpperBound() {
277 return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
278 &IDiaSymbol::get_upperBound);
281 DIAResult<DiaSymbolPtr> DIASymbol::getObjectPointerType() {
282 return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
283 &IDiaSymbol::get_objectPointerType);
286 DIAResult<DiaSymbolPtr> DIASymbol::getContainer() {
287 return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
288 &IDiaSymbol::get_container);
291 DIAResult<DiaSymbolPtr> DIASymbol::getVirtualBaseTableType() {
292 return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
293 &IDiaSymbol::get_virtualBaseTableType);
296 DIAResult<DiaSymbolPtr> DIASymbol::getUnmodifiedType() {
297 return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
298 &IDiaSymbol::get_unmodifiedType);
301 DIAResult<DiaSymbolPtr> DIASymbol::getSubType() {
302 return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
303 &IDiaSymbol::get_subType);
306 DIAResult<DiaSymbolPtr> DIASymbol::getBaseSymbol() {
307 return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
308 &IDiaSymbol::get_baseSymbol);
311 DIAResult<DWORD> DIASymbol::getAccess() {
312 return InternalGetDIAValue(&IDiaSymbol::get_access);
315 DIAResult<DWORD> DIASymbol::getAddressOffset() {
316 return InternalGetDIAValue(&IDiaSymbol::get_addressOffset);
319 DIAResult<DWORD> DIASymbol::getAddressSection() {
320 return InternalGetDIAValue(&IDiaSymbol::get_addressSection);
323 DIAResult<BOOL> DIASymbol::getAddressTaken() {
324 return InternalGetDIAValue(&IDiaSymbol::get_addressTaken);
327 DIAResult<DWORD> DIASymbol::getAge() {
328 return InternalGetDIAValue(&IDiaSymbol::get_age);
331 DIAResult<DWORD> DIASymbol::getArrayIndexTypeId() {
332 return InternalGetDIAValue(&IDiaSymbol::get_arrayIndexTypeId);
335 DIAResult<DWORD> DIASymbol::getBackEndMajor() {
336 return InternalGetDIAValue(&IDiaSymbol::get_backEndMajor);
339 DIAResult<DWORD> DIASymbol::getBackEndMinor() {
341 return InternalGetDIAValue(&IDiaSymbol::get_backEndMinor);
344 DIAResult<DWORD> DIASymbol::getBackEndBuild() {
345 return InternalGetDIAValue(&IDiaSymbol::get_backEndBuild);
348 DIAResult<DWORD> DIASymbol::getBackEndQFE() {
349 return InternalGetDIAValue(&IDiaSymbol::get_backEndQFE);
352 DIAResult<DWORD> DIASymbol::getBaseDataOffset() {
353 return InternalGetDIAValue(&IDiaSymbol::get_baseDataOffset);
356 DIAResult<DWORD> DIASymbol::getBaseDataSlot() {
357 return InternalGetDIAValue(&IDiaSymbol::get_baseDataSlot);
360 DIAResult<DWORD> DIASymbol::getBaseSymbolId() {
361 return InternalGetDIAValue(&IDiaSymbol::get_baseSymbolId);
364 DIAResult<DWORD> DIASymbol::getBaseType() {
365 return InternalGetDIAValue(&IDiaSymbol::get_baseType);
368 DIAResult<DWORD> DIASymbol::getBitPosition() {
369 return InternalGetDIAValue(&IDiaSymbol::get_bitPosition);
372 DIAResult<DWORD> DIASymbol::getBuiltInKind() {
373 return InternalGetDIAValue(&IDiaSymbol::get_builtInKind);
376 DIAResult<CV_call_e> DIASymbol::getCallingConvention() {
377 return InternalGetDIAValue<DWORD, CV_call_e>(
378 &IDiaSymbol::get_callingConvention);
381 DIAResult<DWORD> DIASymbol::getClassParentId() {
382 return InternalGetDIAValue(&IDiaSymbol::get_classParentId);
385 DIAResult<BOOL> DIASymbol::isCode() {
386 return InternalGetDIAValue(&IDiaSymbol::get_code);
389 DIAResult<BOOL> DIASymbol::isCompilerGenerated() {
390 return InternalGetDIAValue(&IDiaSymbol::get_compilerGenerated);
393 DIAResult<DIAString> DIASymbol::getCompilerName() {
394 return InternalGetDIAStringValue(&IDiaSymbol::get_compilerName);
397 DIAResult<BOOL> DIASymbol::hasConstructor() {
398 return InternalGetDIAValue(&IDiaSymbol::get_constructor);
401 DIAResult<BOOL> DIASymbol::isConstType() {
402 return InternalGetDIAValue(&IDiaSymbol::get_constType);
405 DIAResult<DWORD> DIASymbol::getCount() {
406 return InternalGetDIAValue(&IDiaSymbol::get_count);
409 DIAResult<DWORD> DIASymbol::getCountLiveRanges() {
410 return InternalGetDIAValue(&IDiaSymbol::get_countLiveRanges);
413 DIAResult<BOOL> DIASymbol::hasCustomCallingConvention() {
414 return InternalGetDIAValue(&IDiaSymbol::get_customCallingConvention);
417 DIAResult<DataKind> DIASymbol::getDataKind() {
418 return InternalGetDIAValue<DWORD, DataKind>(&IDiaSymbol::get_dataKind);
421 DIAResult<BOOL> DIASymbol::isEditAndContinueEnabled() {
422 return InternalGetDIAValue(&IDiaSymbol::get_editAndContinueEnabled);
425 DIAResult<BOOL> DIASymbol::hasFarReturn() {
426 return InternalGetDIAValue(&IDiaSymbol::get_farReturn);
429 DIAResult<DWORD> DIASymbol::getFrontEndMajor() {
430 return InternalGetDIAValue(&IDiaSymbol::get_frontEndMajor);
433 DIAResult<DWORD> DIASymbol::getFrontEndMinor() {
434 return InternalGetDIAValue(&IDiaSymbol::get_frontEndMinor);
437 DIAResult<DWORD> DIASymbol::getFrontEndBuild() {
438 return InternalGetDIAValue(&IDiaSymbol::get_frontEndBuild);
441 DIAResult<DWORD> DIASymbol::getFrontEndQFE() {
442 return InternalGetDIAValue(&IDiaSymbol::get_frontEndQFE);
445 DIAResult<BOOL> DIASymbol::isFunction() {
446 return InternalGetDIAValue(&IDiaSymbol::get_function);
449 DIAResult<GUID> DIASymbol::getGuid() {
450 return InternalGetDIAValue(&IDiaSymbol::get_guid);
453 DIAResult<BOOL> DIASymbol::hasAlloca() {
454 return InternalGetDIAValue(&IDiaSymbol::get_hasAlloca);
457 DIAResult<BOOL> DIASymbol::hasAssignmentOperator() {
458 return InternalGetDIAValue(&IDiaSymbol::get_hasAssignmentOperator);
461 DIAResult<BOOL> DIASymbol::hasCastOperator() {
462 return InternalGetDIAValue(&IDiaSymbol::get_hasCastOperator);
465 DIAResult<BOOL> DIASymbol::hasDebugInfo() {
466 return InternalGetDIAValue(&IDiaSymbol::get_hasDebugInfo);
469 DIAResult<BOOL> DIASymbol::hasEH() {
470 return InternalGetDIAValue(&IDiaSymbol::get_hasEH);
473 DIAResult<BOOL> DIASymbol::hasEHa() {
474 return InternalGetDIAValue(&IDiaSymbol::get_hasEHa);
477 DIAResult<BOOL> DIASymbol::hasInlAsm() {
478 return InternalGetDIAValue(&IDiaSymbol::get_hasInlAsm);
481 DIAResult<BOOL> DIASymbol::hasLongJump() {
482 return InternalGetDIAValue(&IDiaSymbol::get_hasLongJump);
485 DIAResult<BOOL> DIASymbol::hasManagedCode() {
486 return InternalGetDIAValue(&IDiaSymbol::get_hasManagedCode);
489 DIAResult<BOOL> DIASymbol::hasNestedTypes() {
490 return InternalGetDIAValue(&IDiaSymbol::get_hasNestedTypes);
493 DIAResult<BOOL> DIASymbol::hasSecurityChecks() {
494 return InternalGetDIAValue(&IDiaSymbol::get_hasSecurityChecks);
497 DIAResult<BOOL> DIASymbol::hasSEH() {
498 return InternalGetDIAValue(&IDiaSymbol::get_hasSEH);
501 DIAResult<BOOL> DIASymbol::hasSetJump() {
502 return InternalGetDIAValue(&IDiaSymbol::get_hasSetJump);
505 DIAResult<BOOL> DIASymbol::isIndirectVirtualBaseClass() {
506 return InternalGetDIAValue(&IDiaSymbol::get_indirectVirtualBaseClass);
509 DIAResult<BOOL> DIASymbol::hasInlineAttribute() {
510 return InternalGetDIAValue(&IDiaSymbol::get_inlSpec);
513 DIAResult<BOOL> DIASymbol::hasInterruptReturn() {
514 return InternalGetDIAValue(&IDiaSymbol::get_interruptReturn);
517 DIAResult<BOOL> DIASymbol::isBaseVirtualFunction() {
518 return InternalGetDIAValue(&IDiaSymbol::get_intro);
521 DIAResult<BOOL> DIASymbol::isIntrinsic() {
522 return InternalGetDIAValue(&IDiaSymbol::get_intrinsic);
525 DIAResult<BOOL> DIASymbol::isAcceleratorGroupSharedLocal() {
526 return InternalGetDIAValue(&IDiaSymbol::get_isAcceleratorGroupSharedLocal);
529 DIAResult<BOOL> DIASymbol::isAcceleratorPointerTagLiveRange() {
530 return InternalGetDIAValue(&IDiaSymbol::get_isAcceleratorPointerTagLiveRange);
533 DIAResult<BOOL> DIASymbol::isAcceleratorStubFunction() {
534 return InternalGetDIAValue(&IDiaSymbol::get_isAcceleratorStubFunction);
537 DIAResult<BOOL> DIASymbol::isAggregated() {
538 return InternalGetDIAValue(&IDiaSymbol::get_isAggregated);
541 DIAResult<BOOL> DIASymbol::isConstructorVirtualBase() {
542 return InternalGetDIAValue(&IDiaSymbol::get_isConstructorVirtualBase);
545 DIAResult<BOOL> DIASymbol::hasStrictGSCheck() {
546 return InternalGetDIAValue(&IDiaSymbol::get_strictGSCheck);
549 DIAResult<BOOL> DIASymbol::isLocationControlFlowDependent() {
550 return InternalGetDIAValue(&IDiaSymbol::get_isLocationControlFlowDependent);
553 DIAResult<BOOL> DIASymbol::hasCTypes() {
554 return InternalGetDIAValue(&IDiaSymbol::get_isCTypes);
557 DIAResult<BOOL> DIASymbol::isCVTCIL() {
558 return InternalGetDIAValue(&IDiaSymbol::get_isCVTCIL);
561 DIAResult<BOOL> DIASymbol::isDataAligned() {
562 return InternalGetDIAValue(&IDiaSymbol::get_isDataAligned);
565 DIAResult<BOOL> DIASymbol::isHLSLData() {
566 return InternalGetDIAValue(&IDiaSymbol::get_isHLSLData);
569 DIAResult<BOOL> DIASymbol::isHotpatchable() {
570 return InternalGetDIAValue(&IDiaSymbol::get_isHotpatchable);
573 DIAResult<BOOL> DIASymbol::isLTCG() {
574 return InternalGetDIAValue(&IDiaSymbol::get_isLTCG);
577 DIAResult<BOOL> DIASymbol::isMatrixRowMajor() {
578 return InternalGetDIAValue(&IDiaSymbol::get_isMatrixRowMajor);
581 DIAResult<BOOL> DIASymbol::isMSILNetmodule() {
582 return InternalGetDIAValue(&IDiaSymbol::get_isMSILNetmodule);
585 DIAResult<BOOL> DIASymbol::isMultipleInheritance() {
586 return InternalGetDIAValue(&IDiaSymbol::get_isMultipleInheritance);
589 DIAResult<BOOL> DIASymbol::isNaked() {
590 return InternalGetDIAValue(&IDiaSymbol::get_isNaked);
593 DIAResult<BOOL> DIASymbol::isOptimizedAway() {
594 return InternalGetDIAValue(&IDiaSymbol::get_isOptimizedAway);
597 DIAResult<BOOL> DIASymbol::isPointerBasedOnSymbolValue() {
598 return InternalGetDIAValue(&IDiaSymbol::get_isPointerBasedOnSymbolValue);
601 DIAResult<BOOL> DIASymbol::isPointerToDataMember() {
602 return InternalGetDIAValue(&IDiaSymbol::get_isPointerToDataMember);
605 DIAResult<BOOL> DIASymbol::isPointerToMemberFunction() {
606 return InternalGetDIAValue(&IDiaSymbol::get_isPointerToMemberFunction);
609 DIAResult<BOOL> DIASymbol::isReturnValue() {
610 return InternalGetDIAValue(&IDiaSymbol::get_isReturnValue);
613 DIAResult<BOOL> DIASymbol::isSdl() {
614 return InternalGetDIAValue(&IDiaSymbol::get_isSdl);
617 DIAResult<BOOL> DIASymbol::isSingleInheritance() {
618 return InternalGetDIAValue(&IDiaSymbol::get_isSingleInheritance);
621 DIAResult<BOOL> DIASymbol::isSplitted() {
622 return InternalGetDIAValue(&IDiaSymbol::get_isSplitted);
625 DIAResult<BOOL> DIASymbol::isStatic() {
626 return InternalGetDIAValue(&IDiaSymbol::get_isStatic);
629 DIAResult<BOOL> DIASymbol::isStripped() {
630 return InternalGetDIAValue(&IDiaSymbol::get_isStripped);
633 DIAResult<BOOL> DIASymbol::isVirtualInheritance() {
634 return InternalGetDIAValue(&IDiaSymbol::get_isVirtualInheritance);
637 DIAResult<CV_CFL_LANG> DIASymbol::getLanguage() {
638 return InternalGetDIAValue<DWORD, CV_CFL_LANG>(&IDiaSymbol::get_language);
641 DIAResult<BOOL> DIASymbol::isSafeBuffers() {
642 return InternalGetDIAValue(&IDiaSymbol::get_isSafeBuffers);
645 DIAResult<ULONGLONG> DIASymbol::getLength() {
646 return InternalGetDIAValue(&IDiaSymbol::get_length);
649 DIAResult<DWORD> DIASymbol::getLexicalParentId() {
650 return InternalGetDIAValue(&IDiaSymbol::get_lexicalParentId);
653 DIAResult<DiaSymbolPtr> DIASymbol::getLexicalParent() {
654 return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
655 &IDiaSymbol::get_lexicalParent);
658 DIAResult<DWORD> DIASymbol::getLocalBasePointerRegisterId() {
659 return InternalGetDIAValue(&IDiaSymbol::get_localBasePointerRegisterId);
662 DIAResult<DIAString> DIASymbol::getLibraryName() {
663 return InternalGetDIAStringValue(&IDiaSymbol::get_libraryName);
666 DIAResult<ULONGLONG> DIASymbol::getLiveRangeLength() {
667 return InternalGetDIAValue(&IDiaSymbol::get_liveRangeLength);
670 DIAResult<DWORD> DIASymbol::getLiveRangeStartAddressSection() {
671 return InternalGetDIAValue(&IDiaSymbol::get_liveRangeStartAddressSection);
674 DIAResult<DWORD> DIASymbol::getLiveRangeStartAddressOffset() {
675 return InternalGetDIAValue(&IDiaSymbol::get_liveRangeStartAddressOffset);
678 DIAResult<DWORD> DIASymbol::getLiveRangeStartRelativeVirtualAddress() {
679 return InternalGetDIAValue(
680 &IDiaSymbol::get_liveRangeStartRelativeVirtualAddress);
683 DIAResult<LocationType> DIASymbol::getLocationType() {
684 return InternalGetDIAValue<DWORD, LocationType>(
685 &IDiaSymbol::get_locationType);
688 DIAResult<DWORD> DIASymbol::getLowerBoundId() {
689 return InternalGetDIAValue(&IDiaSymbol::get_lowerBoundId);
692 DIAResult<MachineTypeEnum> DIASymbol::getMachineType() {
693 return InternalGetDIAValue<DWORD, MachineTypeEnum>(
694 &IDiaSymbol::get_machineType);
697 DIAResult<BOOL> DIASymbol::isManagedRef() {
698 return InternalGetDIAValue(&IDiaSymbol::get_managed);
701 DIAResult<DWORD> DIASymbol::getMemorySpaceKind() {
702 return InternalGetDIAValue(&IDiaSymbol::get_memorySpaceKind);
705 DIAResult<BOOL> DIASymbol::isMsilRef() {
706 return InternalGetDIAValue(&IDiaSymbol::get_msil);
709 DIAResult<DIAString> DIASymbol::getName() {
710 return InternalGetDIAStringValue(&IDiaSymbol::get_name);
713 DIAResult<BOOL> DIASymbol::isNested() {
714 return InternalGetDIAValue(&IDiaSymbol::get_nested);
717 DIAResult<BOOL> DIASymbol::hasNoInlineAttribute() {
718 return InternalGetDIAValue(&IDiaSymbol::get_noInline);
721 DIAResult<BOOL> DIASymbol::hasNoReturnAttribute() {
722 return InternalGetDIAValue(&IDiaSymbol::get_noReturn);
725 DIAResult<BOOL> DIASymbol::getNoStackOrdering() {
726 return InternalGetDIAValue(&IDiaSymbol::get_noStackOrdering);
729 DIAResult<BOOL> DIASymbol::isUnreached() {
730 return InternalGetDIAValue(&IDiaSymbol::get_notReached);
733 DIAResult<DWORD> DIASymbol::getNumberOfAcceleratorPointerTags() {
734 return InternalGetDIAValue(&IDiaSymbol::get_numberOfAcceleratorPointerTags);
737 DIAResult<DWORD> DIASymbol::getNumberOfModifiers() {
738 return InternalGetDIAValue(&IDiaSymbol::get_numberOfModifiers);
741 DIAResult<DWORD> DIASymbol::getNumberOfRegisterIndices() {
742 return InternalGetDIAValue(&IDiaSymbol::get_numberOfRegisterIndices);
745 DIAResult<DWORD> DIASymbol::getNumberOfRows() {
746 return InternalGetDIAValue(&IDiaSymbol::get_numberOfRows);
749 DIAResult<DWORD> DIASymbol::getNumberOfColumns() {
750 return InternalGetDIAValue(&IDiaSymbol::get_numberOfColumns);
753 DIAResult<DIAString> DIASymbol::getObjectFileName() {
754 return InternalGetDIAStringValue(&IDiaSymbol::get_objectFileName);
757 DIAResult<DWORD> DIASymbol::getOemSymbolId() {
758 return InternalGetDIAValue(&IDiaSymbol::get_oemSymbolId);
761 DIAResult<LONG> DIASymbol::getOffset() {
762 return InternalGetDIAValue(&IDiaSymbol::get_offset);
765 DIAResult<DWORD> DIASymbol::getOffsetInUdt() {
766 return InternalGetDIAValue(&IDiaSymbol::get_offsetInUdt);
769 DIAResult<BOOL> DIASymbol::hasOptimizedCodeDebugInfo() {
770 return InternalGetDIAValue(&IDiaSymbol::get_optimizedCodeDebugInfo);
773 DIAResult<BOOL> DIASymbol::hasOverloadedOperator() {
774 return InternalGetDIAValue(&IDiaSymbol::get_overloadedOperator);
777 DIAResult<BOOL> DIASymbol::isPacked() {
778 return InternalGetDIAValue(&IDiaSymbol::get_packed);
781 DIAResult<CV_CPU_TYPE_e> DIASymbol::getPlatform() {
782 return InternalGetDIAValue<DWORD, CV_CPU_TYPE_e>(&IDiaSymbol::get_platform);
785 DIAResult<BOOL> DIASymbol::isPureVirtual() {
786 return InternalGetDIAValue(&IDiaSymbol::get_pure);
789 DIAResult<DWORD> DIASymbol::getRank() {
790 return InternalGetDIAValue(&IDiaSymbol::get_rank);
793 DIAResult<BOOL> DIASymbol::isReference() {
794 return InternalGetDIAValue(&IDiaSymbol::get_reference);
797 DIAResult<BOOL> DIASymbol::isRValueReference() {
798 return InternalGetDIAValue(&IDiaSymbol::get_RValueReference);
801 DIAResult<DWORD> DIASymbol::getRegisterId() {
802 return InternalGetDIAValue(&IDiaSymbol::get_registerId);
805 DIAResult<DWORD> DIASymbol::getRegisterType() {
806 return InternalGetDIAValue(&IDiaSymbol::get_registerType);
809 DIAResult<DWORD> DIASymbol::getRelativeVirtualAddress() {
810 return InternalGetDIAValue(&IDiaSymbol::get_relativeVirtualAddress);
813 DIAResult<BOOL> DIASymbol::isRestrictedType() {
814 return InternalGetDIAValue(&IDiaSymbol::get_restrictedType);
817 DIAResult<DWORD> DIASymbol::getSamplerSlot() {
818 return InternalGetDIAValue(&IDiaSymbol::get_samplerSlot);
821 DIAResult<BOOL> DIASymbol::isScoped() {
822 return InternalGetDIAValue(&IDiaSymbol::get_scoped);
825 DIAResult<BOOL> DIASymbol::isRefUdt() {
826 return InternalGetDIAValue(&IDiaSymbol::get_isRefUdt);
829 DIAResult<BOOL> DIASymbol::isValueUdt() {
830 return InternalGetDIAValue(&IDiaSymbol::get_isValueUdt);
833 DIAResult<BOOL> DIASymbol::isInterfaceUdt() {
834 return InternalGetDIAValue(&IDiaSymbol::get_isInterfaceUdt);
837 DIAResult<BOOL> DIASymbol::isCxxReturnUdt() {
838 return InternalGetDIAValue(&IDiaSymbol::get_isCxxReturnUdt);
841 DIAResult<DWORD> DIASymbol::getSignature() {
842 return InternalGetDIAValue(&IDiaSymbol::get_signature);
845 DIAResult<DWORD> DIASymbol::getSizeInUdt() {
846 return InternalGetDIAValue(&IDiaSymbol::get_sizeInUdt);
849 DIAResult<DWORD> DIASymbol::getSlot() {
850 return InternalGetDIAValue(&IDiaSymbol::get_slot);
853 DIAResult<DIAString> DIASymbol::getSourceFileName() {
854 return InternalGetDIAStringValue(&IDiaSymbol::get_sourceFileName);
857 DIAResult<DWORD> DIASymbol::getStride() {
858 return InternalGetDIAValue(&IDiaSymbol::get_stride);
861 DIAResult<DWORD> DIASymbol::getSubTypeId() {
862 return InternalGetDIAValue(&IDiaSymbol::get_subTypeId);
865 DIAResult<DIAString> DIASymbol::getSymbolsFileName() {
866 return InternalGetDIAStringValue(&IDiaSymbol::get_symbolsFileName);
869 DIAResult<DWORD> DIASymbol::getSymIndexId() {
870 return InternalGetDIAValue(&IDiaSymbol::get_symIndexId);
873 DIAResult<DiaSymTagEnum> DIASymbol::getSymTag() {
874 return InternalGetDIAValue<DWORD, DiaSymTagEnum>(&IDiaSymbol::get_symTag);
877 DIAResult<DWORD> DIASymbol::getTargetOffset() {
878 return InternalGetDIAValue(&IDiaSymbol::get_targetOffset);
881 DIAResult<DWORD> DIASymbol::getTargetRelativeVirtualAddress() {
882 return InternalGetDIAValue(&IDiaSymbol::get_targetRelativeVirtualAddress);
885 DIAResult<DWORD> DIASymbol::getTargetSection() {
886 return InternalGetDIAValue(&IDiaSymbol::get_targetSection);
889 DIAResult<ULONGLONG> DIASymbol::getTargetVirtualAddress() {
890 return InternalGetDIAValue(&IDiaSymbol::get_targetVirtualAddress);
893 DIAResult<DWORD> DIASymbol::getTextureSlot() {
894 return InternalGetDIAValue(&IDiaSymbol::get_textureSlot);
897 DIAResult<LONG> DIASymbol::getThisAdjust() {
898 return InternalGetDIAValue(&IDiaSymbol::get_thisAdjust);
901 DIAResult<THUNK_ORDINAL> DIASymbol::getThunkOrdinal() {
902 return InternalGetDIAValue<DWORD, THUNK_ORDINAL>(
903 &IDiaSymbol::get_thunkOrdinal);
906 DIAResult<DWORD> DIASymbol::getTimeStamp() {
907 return InternalGetDIAValue(&IDiaSymbol::get_timeStamp);
910 DIAResult<DWORD> DIASymbol::getToken() {
911 return InternalGetDIAValue(&IDiaSymbol::get_token);
914 DIAResult<DWORD> DIASymbol::getUavSlot() {
915 return InternalGetDIAValue(&IDiaSymbol::get_uavSlot);
918 DIAResult<UdtKind> DIASymbol::getUdtKind() {
919 return InternalGetDIAValue<DWORD, UdtKind>(&IDiaSymbol::get_udtKind);
922 DIAResult<BOOL> DIASymbol::isUnalignedType() {
923 return InternalGetDIAValue(&IDiaSymbol::get_unalignedType);
926 DIAResult<DIAString> DIASymbol::getUndecoratedName() {
927 return InternalGetDIAStringValue(&IDiaSymbol::get_undecoratedName);
930 DIAResult<DWORD> DIASymbol::getUnmodifiedTypeId() {
931 return InternalGetDIAValue(&IDiaSymbol::get_unmodifiedTypeId);
934 DIAResult<DWORD> DIASymbol::getUpperBoundId() {
935 return InternalGetDIAValue(&IDiaSymbol::get_upperBoundId);
938 DIAResult<BOOL> DIASymbol::isVirtual() {
939 return InternalGetDIAValue(&IDiaSymbol::get_virtual);
942 DIAResult<ULONGLONG> DIASymbol::getVirtualAddress() {
943 return InternalGetDIAValue(&IDiaSymbol::get_virtualAddress);
946 DIAResult<BOOL> DIASymbol::isVirtualBaseClass() {
947 return InternalGetDIAValue(&IDiaSymbol::get_virtualBaseClass);
950 DIAResult<DWORD> DIASymbol::getVirtualBaseDispIndex() {
951 return InternalGetDIAValue(&IDiaSymbol::get_virtualBaseDispIndex);
954 DIAResult<DWORD> DIASymbol::getVirtualBaseOffset() {
955 return InternalGetDIAValue(&IDiaSymbol::get_virtualBaseOffset);
958 DIAResult<LONG> DIASymbol::getVirtualBasePointerOffset() {
959 return InternalGetDIAValue(&IDiaSymbol::get_virtualBasePointerOffset);
962 DIAResult<DWORD> DIASymbol::getVirtualTableShapeId() {
963 return InternalGetDIAValue(&IDiaSymbol::get_virtualTableShapeId);
966 DIAResult<BOOL> DIASymbol::isVolatileType() {
967 return InternalGetDIAValue(&IDiaSymbol::get_volatileType);