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