IDiaSymbol
Describes the properties of a symbol instance.
Syntax
IDiaSymbol : IUnknown
Methods in Alphabetical Order
The following table shows the methods of IDiaSymbol
.
Note
Symbols will return meaningful data for only some of these methods, depending on the type of symbol. If a method returns S_OK
, then that method has returned meaningful data.
Method | Description |
---|---|
IDiaSymbol::findChildren |
Retrieves all children of the symbol. |
IDiaSymbol::findChildrenEx |
Retrieves the children of the symbol. This method is the extended version of IDiaSymbol::findChildren. |
IDiaSymbol::findChildrenExByAddr |
Retrieves the children of the symbol that are valid at a specified address. |
IDiaSymbol::findChildrenExByRVA |
Retrieves the children of the symbol that are valid at a specified relative virtual address (RVA). |
IDiaSymbol::findChildrenExByVA |
Retrieves the children of the symbol that are valid at a specified virtual address. |
IDiaSymbol::findInlineeLines |
Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, in this symbol. |
IDiaSymbol::findInlineeLinesByAddr |
Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, in this symbol within the specified address range. |
IDiaSymbol::findInlineeLinesByRVA |
Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, in this symbol within the specified relative virtual address (RVA). |
IDiaSymbol::findInlineeLinesByVA |
Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, in this symbol within the specified virtual address (VA). |
IDiaSymbol::findInlineFramesByAddr |
Retrieves an enumeration that allows a client to iterate through all of the inline frames on a given address. |
IDiaSymbol::findInlineFramesByRVA |
Retrieves an enumeration that allows a client to iterate through all of the inline frames on a specified relative virtual address (RVA). |
IDiaSymbol::findInlineFramesByVA |
Retrieves an enumeration that allows a client to iterate through all of the inline frames on a specified virtual address (VA). |
IDiaSymbol::findInputAssemblyFile |
Retrieves the .NET Native input assembly file that is the parent of the symbol. |
IDiaSymbol::findSymbolsByRVAForAcceleratorPointerTag |
Given a corresponding tag value, this method returns an enumeration of symbols that are contained in this stub function at a specified relative virtual address. |
IDiaSymbol::findSymbolsForAcceleratorPointerTag |
Returns the number of accelerator pointer tags in a C++ AMP stub function. |
IDiaSymbol::get_acceleratorPointerTags |
Returns all accelerator pointer tag values that correspond to a C++ AMP accelerator stub function. |
IDiaSymbol::get_access |
Retrieves the access modifier of a class member. |
IDiaSymbol::get_addressOffset |
Retrieves the offset part of an address location. |
IDiaSymbol::get_addressSection |
Retrieves the section part of an address location. |
IDiaSymbol::get_addressTaken |
Retrieves a flag indicating whether another symbol references this address. |
IDiaSymbol::get_age |
Retrieves the age value of a program database. |
IDiaSymbol::get_arrayIndexType |
Retrieves the symbol identifier of the array index type. |
IDiaSymbol::get_arrayIndexTypeId |
Retrieves the array index type identifier of the symbol. |
IDiaSymbol::get_backEndBuild |
Retrieves the back-end build number. |
IDiaSymbol::get_backEndMajor |
Retrieves the back-end major version number. |
IDiaSymbol::get_backEndMinor |
Retrieves the back-end minor version number. |
IDiaSymbol::get_backEndQFE |
Retrieves the back-end qfe number. |
IDiaSymbol::get_baseDataOffset |
Retrieves the base data offset. |
IDiaSymbol::get_baseDataSlot |
Retrieves the base data slot. |
IDiaSymbol::get_baseSymbol |
Retrieves the symbol from which the pointer is based. |
IDiaSymbol::get_baseSymbolId |
Retrieves the symbol ID from which the pointer is based. |
IDiaSymbol::get_baseType |
Retrieves the type tag of a simple type. |
IDiaSymbol::get_bindID |
Retrieves the binding register index. |
IDiaSymbol::get_bindSlot |
Retrieves the lower bound in binding space. |
IDiaSymbol::get_bindSpace |
Retrieves the binding space. |
IDiaSymbol::get_bitPosition |
Retrieves the bit position of a location. |
IDiaSymbol::get_builtInKind |
Retrieves a built-in kind of the HLSL type. |
IDiaSymbol::get_callingConvention |
Returns an indicator of a method's calling convention. |
IDiaSymbol::get_characteristics |
Retrieves the characteristics of this COFF section. |
IDiaSymbol::get_classParent |
Retrieves a reference to the class parent of the symbol. |
IDiaSymbol::get_classParentId |
Retrieves the class parent identifier of the symbol. |
IDiaSymbol::get_code |
Retrieves a flag indicating whether the symbol refers to a code address. |
IDiaSymbol::get_coffGroup |
Retrieves the COFF group symbol this symbol comes from. |
IDiaSymbol::get_compilerGenerated |
Retrieves a flag indicating whether the symbol was compiler-generated. |
IDiaSymbol::get_compilerName |
Retrieves the name of the compiler used to create the Compiland. |
IDiaSymbol::get_constantExport |
Retrieves a flag indicating whether this export is CONSTANT. |
IDiaSymbol::get_constructor |
Retrieves a flag indicating whether the user-defined data type has a constructor. |
IDiaSymbol::get_constType |
Retrieves a flag indicating whether the user-defined data type is constant. |
IDiaSymbol::get_container |
Retrieves the containing symbol of this symbol. |
IDiaSymbol::get_count |
Retrieves the number of items in a list or array. |
IDiaSymbol::get_countLiveRanges |
Retrieves the number of valid address ranges associated with the local symbol. |
IDiaSymbol::get_customCallingConvention |
Retrieves a flag indicating whether the function uses a custom calling convention. |
IDiaSymbol::get_dataBytes |
Retrieves the data bytes of an OEM symbol. |
IDiaSymbol::get_dataExport |
Retrieves a flag indicating whether this export is DATA. |
IDiaSymbol::get_dataKind |
Retrieves the variable classification of a data symbol. |
IDiaSymbol::get_editAndContinueEnabled |
Retrieves the flag describing the Edit and Continue features of the compiled program or unit. |
IDiaSymbol::get_exceptionHandlerAddressOffset |
Retrieves the section offset of the exception handler. |
IDiaSymbol::get_exceptionHandlerAddressSection |
Retrieves the section number of the exception handler. |
IDiaSymbol::get_exceptionHandlerRelativeVirtualAddress |
Retrieves the relative virtual address of the exception handler. |
IDiaSymbol::get_exceptionHandlerVirtualAddress |
Retrieves the virtual address of the exception handler. |
IDiaSymbol::get_exportHasExplicitlyAssignedOrdinal |
Retrieves a flag indicating whether this export has an explicitly assigned ordinal. |
IDiaSymbol::get_exportIsForwarder |
Retrieves a flag indicating whether this export is a forwarder. |
IDiaSymbol::get_farReturn |
Retrieves a flag indicating whether the function uses a far return. |
IDiaSymbol::get_finalLiveStaticSize |
Retrieves the final static size of live function, after inlining. |
IDiaSymbol::get_framePointerPresent |
Retrieves a flag indicating whether this function has a frame pointer. |
IDiaSymbol::get_frameSize |
Retrieves the frame size. |
IDiaSymbol::get_frontEndBuild |
Retrieves the front-end build number. |
IDiaSymbol::get_frontEndMajor |
Retrieves the front-end major version number. |
IDiaSymbol::get_frontEndMinor |
Retrieves the front-end minor version number. |
IDiaSymbol::get_frontEndQFE |
Retrieves the front-end QFE version number. |
IDiaSymbol::get_function |
Retrieves a flag indicating whether the public symbol refers to a function. |
IDiaSymbol::get_guid |
Retrieves the symbol's GUID. |
IDiaSymbol::get_hasAlloca |
Retrieves a flag indicating whether the function contains a call to alloca . |
IDiaSymbol::get_hasAssignmentOperator |
Retrieves a flag indicating whether the user-defined data type has any assignment operators defined. |
IDiaSymbol::get_hasCastOperator |
Retrieves a flag indicating whether the user-defined data type has any cast operators defined. |
IDiaSymbol::get_hasControlFlowCheck |
Retrieves a flag indicating whether this function contains control flow checks. |
IDiaSymbol::get_hasDebugInfo |
Retrieves a flag indicating whether the compiland contains any debugging information. |
IDiaSymbol::get_hasEH |
Retrieves a flag indicating whether the function has a C++-style exception handler. |
IDiaSymbol::get_hasEHa |
Retrieves a flag indicating whether the function has an asynchronous exception handler. |
IDiaSymbol::get_hasInlAsm |
Retrieves a flag indicating whether the function has inline assembly. |
IDiaSymbol::get_hasLongJump |
Retrieves a flag indicating whether the function contains a longjmp command (part of C-style exception handling). |
IDiaSymbol::get_hasManagedCode |
Retrieves a flag indicating whether the module contains managed code. |
IDiaSymbol::get_hasNestedTypes |
Retrieves a flag indicating whether the user-defined data type has nested type definitions. |
IDiaSymbol::get_hasSecurityChecks |
Retrieves a flag indicating whether the function or compiland has security checks compiled in (via the /GS (Buffer Security Check) compiler switch). |
IDiaSymbol::get_hasSEH |
Retrieves a flag indicating whether the function has Win32-style Structured Exception Handling. |
IDiaSymbol::get_hasSetJump |
Retrieves a flag indicating whether the function contains a setjmp command. |
IDiaSymbol::get_hasValidPGOCounts |
Retrieves a flag indicating whether this symbols has valid PGO counts. |
IDiaSymbol::get_hfaDouble |
Retrieves a flag that specifies whether a user-defined type (UDT) contains homogeneous floating-point aggregate (HFA) data of type double. |
IDiaSymbol::get_hfaFloat |
Retrieves a flag that specifies whether a user-defined type (UDT) contains homogeneous floating-point aggregate (HFA) data of type float. |
IDiaSymbol::get_indirectVirtualBaseClass |
Retrieves a flag indicating whether the user-defined data type is an indirect virtual base class. |
IDiaSymbol::get_InlSpec |
Retrieves a flag indicating whether the function has been marked with the inline attribute. |
IDiaSymbol::get_interruptReturn |
Retrieves a flag indicating whether the function has a return from interrupt instruction. |
IDiaSymbol::get_intrinsic |
Retrieves a flag that specifies whether a class is an intrinsic type. |
IDiaSymbol::get_intro |
Retrieves a flag indicating whether the function is the base class virtual function. |
IDiaSymbol::get_isAcceleratorGroupSharedLocal |
Retrieves a flag that indicates whether the symbol corresponds to a group shared local variable in code compiled for a C++ AMP Accelerator. |
IDiaSymbol::get_isAcceleratorPointerTagLiveRange |
Retrieves a flag that indicates whether the symbol corresponds to the definition range symbol for the tag component of a pointer variable in code compiled for a C++ AMP Accelerator. The definition range symbol is the location of a variable for a span of addresses. |
IDiaSymbol::get_isAcceleratorStubFunction |
Indicates whether the symbol corresponds to a top-level function symbol for a shader compiled for an accelerator that corresponds to a parallel_for_each call. |
IDiaSymbol::get_isAggregated |
Retrieves a flag indicating whether the data is part of an aggregate of many symbols. |
IDiaSymbol::get_isConstructorVirtualBase |
Retrieves a flag indicating whether this is an instance constructor of a class with virtual base. |
IDiaSymbol::get_isCTypes |
Retrieves a flag indicating whether the symbol file contains C types. |
IDiaSymbol::get_isCVTCIL |
Retrieves a flag indicating whether the module was converted from Common Intermediate Language (CIL) to native code. |
IDiaSymbol::get_isCxxReturnUdt |
Retrieves a flag indicating whether return C++ style UDT. |
IDiaSymbol::get_isDataAligned |
Retrieves a flag indicating whether the elements of a user-defined data type are aligned to a specific boundary. |
IDiaSymbol::get_isHLSLData |
Specifies whether this symbol represents High Level Shader Language (HLSL) data. |
IDiaSymbol::get_isHotpatchable |
Retrieves a flag indicating whether the module was compiled with the /hotpatch (Create Hotpatchable Image) compiler switch. |
IDiaSymbol::get_isInterfaceUdt |
Retrieves a flag indicating whether the type is a WinRT interface user-defined type (UDT). |
IDiaSymbol::get_isLocationControlFlowDependent |
Retrieves a flag indicating whether a local symbol's location liveness is dependent upon the control flow of the function. |
IDiaSymbol::get_isLTCG |
Retrieves a flag indicating whether the managed compiland was linked with the linker's LTCG. |
IDiaSymbol::get_isMatrixRowMajor |
Specifies whether the matrix is row major. |
IDiaSymbol::get_isMSILNetmodule |
Retrieves a flag indicating whether the managed compiland is a .netmodule (containing only metadata). |
IDiaSymbol::get_isMultipleInheritance |
Specifies whether the this pointer points to a data member with multiple inheritance. |
IDiaSymbol::get_isNaked |
Retrieves a flag indicating whether the function has the naked attribute. |
IDiaSymbol::get_isOptimizedAway |
Specifies whether the variable is optimized away. |
IDiaSymbol::get_isOptimizedForSpeed |
Retrieves a flag indicating whether the function is optimized for speed. |
IDiaSymbol::get_isPGO |
Retrieves a flag indicating whether PGO was enabled. |
IDiaSymbol::get_isPointerBasedOnSymbolValue |
Specifies whether the this pointer is based on a symbol value. |
IDiaSymbol::get_isPointerToDataMember |
Specifies whether this symbol is a pointer to a data member. |
IDiaSymbol::get_isPointerToMemberFunction |
Specifies whether this symbol is a pointer to a member function. |
IDiaSymbol::get_isRefUdt |
Retrieves a flag indicating whether this is a WinRT reference user-defined type (UDT). |
IDiaSymbol::get_isReturnValue |
Specifies whether the variable carries a return value. |
IDiaSymbol::get_isSafeBuffers |
Retrieves a flag that specifies whether the preprocesser directive for a safe buffer is used. |
IDiaSymbol::get_isSdl |
Specifies whether the module is compiled with the /SDL option. |
IDiaSymbol::get_isSingleInheritance |
Specifies whether the this pointer points to a data member with single inheritance. |
IDiaSymbol::get_isSplitted |
Retrieves a flag indicating whether the data has been split into an aggregate of separate symbols. |
IDiaSymbol::get_isStatic |
Retrieves a flag indicating whether a function or thunk layer is static. |
IDiaSymbol::get_isStripped |
Retrieves a flag indicating whether private symbols have been stripped from the symbol file. |
IDiaSymbol::get_isValueUdt |
Retrieves a flag indicating whether this is a WinRT value user-defined type (UDT). |
IDiaSymbol::get_isVirtualInheritance |
Specifies whether the this pointer points to a data member with virtual inheritance. |
IDiaSymbol::get_isWinRTPointer |
Retrieves a flag indicating whether this is a WinRT pointer type. |
IDiaSymbol::get_language |
Retrieves the language of the source. |
IDiaSymbol::get_length |
Retrieves the number of bytes of memory used by the object represented by this symbol. |
IDiaSymbol::get_lexicalParent |
Retrieves a reference to the lexical parent of the symbol. |
IDiaSymbol::get_lexicalParentId |
Retrieves the lexical parent identifier of the symbol. |
IDiaSymbol::get_libraryName |
Retrieves the file name of the library or object file from which the object was loaded. |
IDiaSymbol::get_liveRangeLength |
Returns the length of the address range in which the local symbol is valid. |
IDiaSymbol::get_liveRangeStartAddressOffset |
Returns the offset part of the starting address range in which the local symbol is valid. |
IDiaSymbol::get_liveRangeStartAddressSection |
Returns the section part of the starting address range in which the local symbol is valid. |
IDiaSymbol::get_liveRangeStartRelativeVirtualAddress |
Returns the start of the address range in which the local symbol is valid. |
IDiaSymbol::get_localBasePointerRegisterId |
Retrieves the register designator of the register holding base pointer to locals. |
IDiaSymbol::get_locationType |
Retrieves the location type of a data symbol. |
IDiaSymbol::get_lowerBound |
Retrieves the lower bound of a FORTRAN array dimension. |
IDiaSymbol::get_lowerBoundId |
Retrieves the symbol identifier of the lower bound of a FORTRAN array dimension. |
IDiaSymbol::get_machineType |
Retrieves the type of the target CPU. |
IDiaSymbol::get_managed |
Retrieves a flag that indicating whether the symbol refers to managed code. |
IDiaSymbol::get_memorySpaceKind |
Retrieves the memory space kind. |
IDiaSymbol::get_modifierValues |
Retrieves the set of modifers for this symbol. |
IDiaSymbol::get_msil |
Retrieves a flag indicating whether the symbol refers to Microsoft Intermediate Language (MSIL) code. |
IDiaSymbol::get_name |
Retrieves the name of the symbol. |
IDiaSymbol::get_nested |
Retrieves a flag indicating whether the user-defined data type is nested. |
IDiaSymbol::get_noInline |
Retrieves a flag indicating whether the function is marked with the noinline attribute. |
IDiaSymbol::get_noNameExport |
Retrieves a flag indicating whether this export is NONAME . |
IDiaSymbol::get_noReturn |
Retrieves a flag indicating whether the function has been declared with the noreturn attribute. |
IDiaSymbol::get_noStackOrdering |
Retrieves a flag indicating whether no stack ordering could be done as part of stack buffer checking. |
IDiaSymbol::get_notReached |
Retrieves a flag indicating whether the function or label is never reached. |
IDiaSymbol::get_numberOfAcceleratorPointerTags |
Returns the number of accelerator pointer tags in a C++ AMP stub function. |
IDiaSymbol::get_numberOfColumns |
Retrieves the number of columns in the matrix. |
IDiaSymbol::get_numberOfModifiers |
Retrieves the number of modifiers that are applied to the original type. |
IDiaSymbol::get_numberOfRegisterIndices |
Retrieves the number of register indices. |
IDiaSymbol::get_numberOfRows |
Retrieves the number of rows in the matrix. |
IDiaSymbol::get_numericProperties |
Retrieves the set of numeric properties for this symbol. |
IDiaSymbol::get_objectFileName |
Retrieves the object file name. |
IDiaSymbol::get_objectPointerType |
Retrieves the type of the object pointer for a class method. |
IDiaSymbol::get_oemId |
Retrieves the symbol's oemId value. |
IDiaSymbol::get_oemSymbolId |
Retrieves the symbol's oemSymbolId value. |
IDiaSymbol::get_offset |
Retrieves the offset of the symbol location. |
IDiaSymbol::get_offsetInUdt |
Retrieves the field offset of this symbol withinthe outer user-defined type (UDT). |
IDiaSymbol::get_optimizedCodeDebugInfo |
Retrieves a flag indicating whether the function or label contains optimized code as well as debug information. |
IDiaSymbol::get_ordinal |
Retrieves the ordinal of this export. |
IDiaSymbol::get_overloadedOperator |
Retrieves a flag indicating whether the user-defined data type has overloaded operators. |
IDiaSymbol::get_packed |
Retrieves a flag indicating whether the user-defined data type is packed. |
IDiaSymbol::get_paramBasePointerRegisterId |
Retrieves the register designator of the register holding the base pointer to parameters. |
IDiaSymbol::get_PGODynamicInstructionCount |
Retrieves the dynamic instruction count calculated by training. |
IDiaSymbol::get_PGOEdgeCount |
Retrieves the edge count between a caller/callee and it's parent. |
IDiaSymbol::get_PGOEntryCount |
Retrieves the total invocation count in PGO training. |
IDiaSymbol::get_phaseName |
Retrieves the phase this function is a member of for PGO multiphased builds. |
IDiaSymbol::get_platform |
Retrieves the platform type for which the program or compiland was compiled. |
IDiaSymbol::get_privateExport |
Retrieves a flag indicating whether this export is PRIVATE . |
IDiaSymbol::get_pure |
Retrieves a flag that indicating whether the function is pure virtual. |
IDiaSymbol::get_rank |
Retrieves the rank of a FORTRAN multidimensional array. |
IDiaSymbol::get_reference |
Retrieves a flag indicating whether a pointer type is a reference. |
IDiaSymbol::get_registerId |
Retrieves the register designator of the location. |
IDiaSymbol::get_registerType |
Retrieves the register type. |
IDiaSymbol::get_relativeVirtualAddress |
Retrieves the relative virtual address (RVA) of the location. |
IDiaSymbol::get_restrictedType |
Specifies whether the this pointer is flagged as restricted. |
IDiaSymbol::get_RValueReference |
Retrieves a flag that specifies whether a pointer type is an rvalue reference. |
IDiaSymbol::get_samplerSlot |
Retrieves the sampler slot. |
IDiaSymbol::get_scoped |
Retrieves a flag indicating whether the user-defined data type appears in a nonglobal lexical scope. |
IDiaSymbol::get_sealed |
Retrieves a flag that specifies whether the class or method is sealed. |
IDiaSymbol::get_signature |
Retrieves the symbol's signature value. |
IDiaSymbol::get_sizeInUdt |
Retrieves the size of a member of a user-defined type. |
IDiaSymbol::get_slot |
Retrieves the slot number of the location. |
IDiaSymbol::get_sourceFileName |
Retrieves the file name of the source file. |
IDiaSymbol::get_staticSize |
Retrieves the static instruction count. |
IDiaSymbol::get_strictGSCheck |
Retrieves a flag indicating whether this function was compiled with strict_gs_check pragma enabled. |
IDiaSymbol::get_stride |
Retrieves the stride of the matrix or strided array. |
IDiaSymbol::get_subType |
Retrieves the sub type. |
IDiaSymbol::get_subTypeId |
Retrieves the sub type ID. |
IDiaSymbol::get_symbolsFileName |
Retrieves the name of the file from which the symbols were loaded. |
IDiaSymbol::get_symIndexId |
Retrieves the unique symbol identifier. |
IDiaSymbol::get_symTag |
Retrieves the symbol type classifier. |
IDiaSymbol::get_targetOffset |
Retrieves the offset section of a thunk target. |
IDiaSymbol::get_targetRelativeVirtualAddress |
Retrieves the relative virtual address (RVA) of a thunk target. |
IDiaSymbol::get_targetSection |
Retrieves the address section of a thunk target. |
IDiaSymbol::get_targetVirtualAddress |
Retrieves the virtual address (VA) of a thunk target. |
IDiaSymbol::get_textureSlot |
Retrieves the texture slot. |
IDiaSymbol::get_thisAdjust |
Retrieves the logical this adjustor for the method. |
IDiaSymbol::get_thunkOrdinal |
Retrieves the thunk type of a function. |
IDiaSymbol::get_timeStamp |
Retrieves the timestamp of the underlying executable file. |
IDiaSymbol::get_token |
Retrieves the metadata token of a managed function or variable. |
IDiaSymbol::get_type |
Retrieves a reference to the function signature. |
IDiaSymbol::get_typeId |
Retrieves the type identifier of the symbol. |
IDiaSymbol::get_typeIds |
Retrieves an array of compiler-specific type identifier values for this symbol. |
IDiaSymbol::get_types |
Retrieves an array of compiler-specific type values for this symbol. |
IDiaSymbol::get_uavSlot |
Retrieves the uav slot. |
IDiaSymbol::get_udtKind |
Retrieves the variety of a user-defined type (UDT). |
IDiaSymbol::get_unalignedType |
Retrieves a flag indicating whether the user-defined data type is unaligned. |
IDiaSymbol::get_undecoratedName |
Retrieves the undecorated name for a C++ decorated, or linkage, name. |
IDiaSymbol::get_undecoratedNameEx |
Extension of the get_undecoratedName method that retrieves the undecorated name based on the value of an extension field. |
IDiaSymbol::get_unmodifiedType |
Retrieves the original (unmodifed) type of this symbol. |
IDiaSymbol::get_unmodifiedTypeId |
Retrieves the ID of the original (unmodified) type. |
IDiaSymbol::get_unused |
Deprecated function. |
IDiaSymbol::get_upperBound |
Retrieves the upper bound of a FORTRAN array dimension. |
IDiaSymbol::get_upperBoundId |
Retrieves the symbol identifier of the upper bound of a FORTRAN array dimension. |
IDiaSymbol::get_value |
Retrieves the value of a constant. |
IDiaSymbol::get_virtual |
Retrieves a flag indicating whether the function is virtual. |
IDiaSymbol::get_virtualAddress |
Retrieves the virtual address (VA) of the location. |
IDiaSymbol::get_virtualBaseClass |
Retrieves a flag indicating whether the user-defined data type is a virtual base class. |
IDiaSymbol::get_virtualBaseDispIndex |
Retrieves the index to the virtual base displacement table. |
IDiaSymbol::get_virtualBaseOffset |
Retrieves the offset in the virtual function table of a virtual function. |
IDiaSymbol::get_virtualBasePointerOffset |
Retrieves the offset of the virtual base pointer. |
IDiaSymbol::get_virtualBaseTableType |
Retrieves the type of a virtual base table pointer. |
IDiaSymbol::get_virtualTableShape |
Retrieves the symbol interface of the type of the virtual table for a user-defined type. |
IDiaSymbol::get_virtualTableShapeId |
Retrieves the virtual table shape identifier of the symbol. |
IDiaSymbol::get_volatileType |
Retrieves a flag indicating whether the user-defined data type is volatile. |
IDiaSymbol::get_wasInlined |
Retrieves a flag indicating whether this function symbol was inlined into another function. |
IDiaSymbol::getSrcLineOnTypeDefn |
Retrieves the source file and line number that indicate where a specified user-defined type is defined. |
Remarks
Notes for Callers
Obtain this interface by calling one of the following methods:
Example
This example shows how to display the local variables for a function at a given relative virtual address. It also shows how symbols of different types are related to each other.
Note
CDiaBSTR
is a class that wraps a BSTR
and automatically handles freeing the string when the instantiation goes out of scope.
void DumpLocalVars( DWORD rva, IDiaSession *pSession )
{
CComPtr< IDiaSymbol > pBlock;
if ( FAILED( psession->findSymbolByRVA( rva, SymTagBlock, &pBlock ) ) )
{
Fatal( "Failed to find symbols by RVA" );
}
CComPtr< IDiaSymbol > pscope;
for ( ; pBlock != NULL; )
{
CComPtr< IDiaEnumSymbols > pEnum;
// local data search
if ( FAILED( pBlock->findChildren( SymTagNull, NULL, nsNone, &pEnum ) ) )
{
Fatal( "Local scope findChildren failed" );
}
CComPtr< IDiaSymbol > pSymbol;
DWORD tag;
DWORD celt;
while ( pEnum != NULL &&
SUCCEEDED( pEnum->Next( 1, &pSymbol, &celt ) ) &&
celt == 1)
{
pSymbol->get_symTag( &tag );
if ( tag == SymTagData )
{
CDiaBSTR name;
DWORD kind;
pSymbol->get_name( &name );
pSymbol->get_dataKind( &kind );
if ( name != NULL )
wprintf_s( L"\t%s (%s)\n", name, szDataKinds[ kind ] );
}
else if ( tag == SymTagAnnotation )
{
CComPtr< IDiaEnumSymbols > pValues;
// local data search
wprintf_s( L"\tAnnotation:\n" );
if ( FAILED( pSymbol->findChildren( SymTagNull, NULL, nsNone, &pValues ) ) )
Fatal( "Annotation findChildren failed" );
pSymbol = NULL;
while ( pValues != NULL &&
SUCCEEDED( pValues->Next( 1, &pSymbol, &celt ) ) &&
celt == 1 )
{
CComVariant value;
if ( pSymbol->get_value( &value ) != S_OK )
Fatal( "No value for annotation data." );
wprintf_s( L"\t\t%ws\n", value.bstrVal );
pSymbol = NULL;
}
}
pSymbol = NULL;
}
pBlock->get_symTag( &tag );
if ( tag == SymTagFunction ) // stop when at function scope
break;
// move to lexical parent
CComPtr< IDiaSymbol > pParent;
if ( SUCCEEDED( pBlock->get_lexicalParent( &pParent ) )
&& pParent != NULL ) {
pBlock = pParent;
}
else
{
Fatal( "Finding lexical parent failed." );
}
};
}
Requirements
Header:
Dia2.h
Library: diaguids.lib
DLL: msdia140.dll