Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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. For a list of symbol types, see Lexical Hierarchy of Symbol Types.
| 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 preprocessor 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 modifiers 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 (unmodified) 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