IDiaSymbol
Descrive le proprietà di un'istanza di simbolo.
Sintassi
IDiaSymbol : IUnknown
Metodi in ordine alfabetico
Nella tabella seguente vengono illustrati i metodi di IDiaSymbol
.
Nota
I simboli restituiscono dati significativi solo per alcuni di questi metodi, a seconda del tipo di simbolo. Se un metodo restituisce S_OK
, tale metodo ha restituito dati significativi.
metodo | Descrizione |
---|---|
IDiaSymbol::findChildren | Recupera tutti gli elementi figlio del simbolo. |
IDiaSymbol::findChildrenEx | Recupera gli elementi figlio del simbolo. Questo metodo è la versione estesa di IDiaSymbol::findChildren. |
IDiaSymbol::findChildrenExByAddr | Recupera gli elementi figlio del simbolo validi in corrispondenza di un indirizzo specificato. |
IDiaSymbol::findChildrenExByRVA | Recupera gli elementi figlio del simbolo validi in corrispondenza di un indirizzo virtuale relativo specificato. |
IDiaSymbol::findChildrenExByVA | Recupera gli elementi figlio del simbolo validi in corrispondenza di un indirizzo virtuale specificato. |
IDiaSymbol::findInlineFramesByAddr | Recupera un'enumerazione che consente a un client di scorrere tutti i fotogrammi inline in un determinato indirizzo. |
IDiaSymbol::findInlineFramesByRVA | Recupera un'enumerazione che consente a un client di scorrere tutti i fotogrammi inline in un indirizzo virtuale relativo specificato. |
IDiaSymbol::findInlineFramesByVA | Recupera un'enumerazione che consente a un client di scorrere tutti i frame inline in un indirizzo virtuale specificato. |
IDiaSymbol::findInlineeLines | Recupera un'enumerazione che consente a un client di scorrere le informazioni sul numero di riga di tutte le funzioni inlined, direttamente o indirettamente, in questo simbolo. |
IDiaSymbol::findInlineeLinesByAddr | Recupera un'enumerazione che consente a un client di scorrere le informazioni sul numero di riga di tutte le funzioni inlined, direttamente o indirettamente, in questo simbolo all'interno dell'intervallo di indirizzi specificato. |
IDiaSymbol::findInlineeLinesByRVA | Recupera un'enumerazione che consente a un client di scorrere le informazioni sul numero di riga di tutte le funzioni inlined, direttamente o indirettamente, in questo simbolo all'interno dell'indirizzo virtuale relativo specificato. |
IDiaSymbol::findInlineeLinesByVA | Recupera un'enumerazione che consente a un client di scorrere le informazioni sul numero di riga di tutte le funzioni inlinedi, direttamente o indirettamente, in questo simbolo all'interno dell'indirizzo virtuale (VA) specificato. |
IDiaSymbol::findSymbolsByRVAForAcceleratorPointerTag | Dato un valore di tag corrispondente, questo metodo restituisce un'enumerazione di simboli contenuti in questa funzione stub in corrispondenza di un indirizzo virtuale relativo specificato. |
IDiaSymbol::findSymbolsForAcceleratorPointerTag | Restituisce il numero di tag del puntatore dell'acceleratore in una funzione stub AMP C++. |
IDiaSymbol::get_acceleratorPointerTags | Restituisce tutti i valori dei tag del puntatore dell'acceleratore che corrispondono a una funzione stub dell'acceleratore AMP C++. |
IDiaSymbol::get_access | Recupera il modificatore di accesso di un membro di classe. |
IDiaSymbol::get_addressOffset | Recupera la parte offset di una posizione dell'indirizzo. |
IDiaSymbol::get_addressSection | Recupera la parte della sezione di un indirizzo. |
IDiaSymbol::get_addressTaken | Recupera un flag che indica se un altro simbolo fa riferimento a questo indirizzo. |
IDiaSymbol::get_age | Recupera il valore di validità di un database del programma. |
IDiaSymbol::get_arrayIndexType | Recupera l'identificatore di simbolo del tipo di indice della matrice. |
IDiaSymbol::get_arrayIndexTypeId | Recupera l'identificatore del tipo di indice della matrice del simbolo. |
IDiaSymbol::get_backEndMajor | Recupera il numero di versione principale del back-end. |
IDiaSymbol::get_backEndMinor | Recupera il numero di versione secondaria del back-end. |
IDiaSymbol::get_backEndBuild | Recupera il numero di build back-end. |
IDiaSymbol::get_baseDataOffset | Recupera l'offset dei dati di base. |
IDiaSymbol::get_baseDataSlot | Recupera lo slot di dati di base. |
IDiaSymbol::get_baseSymbol | Recupera il simbolo da cui si basa il puntatore. |
IDiaSymbol::get_baseSymbolId | Recupera l'ID simbolo da cui si basa il puntatore. |
IDiaSymbol::get_baseType | Recupera il tag di tipo di un tipo semplice. |
IDiaSymbol::get_bitPosition | Recupera la posizione di bit di una posizione. |
IDiaSymbol::get_builtInKind | Recupera un tipo predefinito del tipo HLSL. |
IDiaSymbol::get_callingConvention | Restituisce un indicatore della convenzione di chiamata di un metodo. |
IDiaSymbol::get_classParent | Recupera un riferimento all'elemento padre della classe del simbolo. |
IDiaSymbol::get_classParentId | Recupera l'identificatore padre della classe del simbolo. |
IDiaSymbol::get_code | Recupera un flag che indica se il simbolo fa riferimento a un indirizzo di codice. |
IDiaSymbol::get_compilerGenerated | Recupera un flag che indica se il simbolo è stato generato dal compilatore. |
IDiaSymbol::get_compilerName | Recupera il nome del compilatore utilizzato per creare l'oggetto Compiland. |
IDiaSymbol::get_constructor | Recupera un flag che indica se il tipo di dati definito dall'utente dispone di un costruttore. |
IDiaSymbol::get_container | Recupera il simbolo contenitore di questo simbolo. |
IDiaSymbol::get_constType | Recupera un flag che indica se il tipo di dati definito dall'utente è costante. |
IDiaSymbol::get_count | Recupera il numero di elementi in un elenco o in una matrice. |
IDiaSymbol::get_countLiveRanges | Recupera il numero di intervalli di indirizzi validi associati al simbolo locale. |
IDiaSymbol::get_customCallingConvention | Recupera un flag che indica se la funzione utilizza una convenzione di chiamata personalizzata. |
IDiaSymbol::get_dataBytes | Recupera i byte di dati di un simbolo OEM. |
IDiaSymbol::get_dataKind | Recupera la classificazione delle variabili di un simbolo di dati. |
IDiaSymbol::get_editAndContinueEnabled | Recupera il flag che descrive le funzionalità Di modifica e continuazione del programma o dell'unità compilata. |
IDiaSymbol::get_farReturn | Recupera un flag che indica se la funzione utilizza un ritorno lontano. |
IDiaSymbol::get_frontEndMajor | Recupera il numero di versione principale del front-end. |
IDiaSymbol::get_frontEndMinor | Recupera il numero di versione secondaria front-end. |
IDiaSymbol::get_frontEndBuild | Recupera il numero di build front-end. |
IDiaSymbol::get_function | Recupera un flag che indica se il simbolo pubblico fa riferimento a una funzione. |
IDiaSymbol::get_guid | Recupera il GUID del simbolo. |
IDiaSymbol::get_hasAlloca | Recupera un flag che indica se la funzione contiene una chiamata a alloca . |
IDiaSymbol::get_hasAssignmentOperator | Recupera un flag che indica se il tipo di dati definito dall'utente dispone di operatori di assegnazione definiti. |
IDiaSymbol::get_hasCastOperator | Recupera un flag che indica se il tipo di dati definito dall'utente dispone di operatori cast definiti. |
IDiaSymbol::get_hasDebugInfo | Recupera un flag che indica se il compiland contiene informazioni di debug. |
IDiaSymbol::get_hasEH | Recupera un flag che indica se la funzione dispone di un gestore eccezioni in stile C++. |
IDiaSymbol::get_hasEHa | Recupera un flag che indica se la funzione dispone di un gestore eccezioni asincrono. |
IDiaSymbol::get_hasInlAsm | Recupera un flag che indica se la funzione dispone di assembly inline. |
IDiaSymbol::get_hasLongJump | Recupera un flag che indica se la funzione contiene un comando longjmp (parte della gestione delle eccezioni in stile C). |
IDiaSymbol::get_hasManagedCode | Recupera un flag che indica se il modulo contiene codice gestito. |
IDiaSymbol::get_hasNestedTypes | Recupera un flag che indica se il tipo di dati definito dall'utente dispone di definizioni di tipo annidate. |
IDiaSymbol::get_hasSecurityChecks | Recupera un flag che indica se la funzione o il compiland dispone di controlli di sicurezza compilati (tramite l'opzione del compilatore /GS (Controllo sicurezza buffer). |
IDiaSymbol::get_hasSEH | Recupera un flag che indica se la funzione dispone di gestione delle eccezioni strutturata in stile Win32. |
IDiaSymbol::get_hasSetJump | Recupera un flag che indica se la funzione contiene un comando setjmp. |
IDiaSymbol::get_indirectVirtualBaseClass | Recupera un flag che indica se il tipo di dati definito dall'utente è una classe di base virtuale indiretta. |
IDiaSymbol::get_InlSpec | Recupera un flag che indica se la funzione è stata contrassegnata con l'attributo inline. |
IDiaSymbol::get_interruptReturn | Recupera un flag che indica se la funzione ha un restituito dall'istruzione interrupt. |
IDiaSymbol::get_intro | Recupera un flag che indica se la funzione è la funzione virtuale della classe di base. |
IDiaSymbol::get_isAcceleratorGroupSharedLocal | Recupera un flag che indica se il simbolo corrisponde a una variabile locale condivisa di gruppo nel codice compilato per un acceleratore AMP C++. |
IDiaSymbol::get_isAcceleratorPointerTagLiveRange | Recupera un flag che indica se il simbolo corrisponde al simbolo dell'intervallo di definizioni per il componente tag di una variabile puntatore nel codice compilato per un acceleratore AMP C++. Il simbolo dell'intervallo di definizioni è la posizione di una variabile per un intervallo di indirizzi. |
IDiaSymbol::get_isAcceleratorStubFunction | Indica se il simbolo corrisponde a un simbolo di funzione di primo livello per uno shader compilato per un acceleratore che corrisponde a una parallel_for_each chiamata. |
IDiaSymbol::get_isAggregated | Recupera un flag che indica se i dati fanno parte di un'aggregazione di molti simboli. |
IDiaSymbol::get_isCTypes | Recupera un flag che indica se il file di simboli contiene tipi C. |
IDiaSymbol::get_isCVTCIL | Recupera un flag che indica se il modulo è stato convertito da Common Intermediate Language (CIL) a codice nativo. |
IDiaSymbol::get_isDataAligned | Recupera un flag che indica se gli elementi di un tipo di dati definito dall'utente sono allineati a un limite specifico. |
IDiaSymbol::get_isHLSLData | Specifica se questo simbolo rappresenta i dati HLSL (High Level Shader Language). |
IDiaSymbol::get_isHotpatchable | Recupera un flag che indica se il modulo è stato compilato con l'opzione del compilatore /hotpatch (Create Hotpatchable Image). |
IDiaSymbol::get_isLTCG | Recupera un flag che indica se il compiland gestito è stato collegato al LTCG del linker. |
IDiaSymbol::get_isMatrixRowMajor | Specifica se la matrice è principale della riga. |
IDiaSymbol::get_isMSILNetmodule | Recupera un flag che indica se il compiland gestito è un file .netmodule (contenente solo i metadati). |
IDiaSymbol::get_isMultipleInheritance | Specifica se il this puntatore punta a un membro dati con più ereditarietà. |
IDiaSymbol::get_isNaked | Recupera un flag che indica se la funzione ha l'attributo naked . |
IDiaSymbol::get_isOptimizedAway | Specifica se la variabile è ottimizzata. |
IDiaSymbol::get_isPointerBasedOnSymbolValue | Specifica se il this puntatore è basato su un valore di simbolo. |
IDiaSymbol::get_isPointerToDataMember | Specifica se questo simbolo è un puntatore a un membro dati. |
IDiaSymbol::get_isPointerToMemberFunction | Specifica se questo simbolo è un puntatore a una funzione membro. |
IDiaSymbol::get_isReturnValue | Specifica se la variabile contiene un valore restituito. |
IDiaSymbol::get_isSdl | Specifica se il modulo viene compilato con l'opzione /SDL. |
IDiaSymbol::get_isSingleInheritance | Specifica se il this puntatore punta a un membro dati con ereditarietà singola. |
IDiaSymbol::get_isSplitted | Recupera un flag che indica se i dati sono stati suddivisi in un'aggregazione di simboli separati. |
IDiaSymbol::get_isStatic | Recupera un flag che indica se un livello di funzione o di quello del framework è statico. |
IDiaSymbol::get_isStripped | Recupera un flag che indica se i simboli privati sono stati rimossi dal file di simboli. |
IDiaSymbol::get_isVirtualInheritance | Specifica se il this puntatore punta a un membro dati con ereditarietà virtuale. |
IDiaSymbol::get_language | Recupera la lingua dell'origine. |
IDiaSymbol::get_length | Recupera il numero di byte di memoria utilizzato dall'oggetto rappresentato da questo simbolo. |
IDiaSymbol::get_lexicalParent | Recupera un riferimento all'elemento padre lessicale del simbolo. |
IDiaSymbol::get_lexicalParentId | Recupera l'identificatore lessicale padre del simbolo. |
IDiaSymbol::get_libraryName | Recupera il nome file della libreria o del file oggetto da cui è stato caricato l'oggetto. |
IDiaSymbol::get_liveRangeLength | Restituisce la lunghezza dell'intervallo di indirizzi in cui il simbolo locale è valido. |
IDiaSymbol::get_liveRangeStartAddressSection | Restituisce la parte della sezione dell'intervallo di indirizzi iniziale in cui il simbolo locale è valido. |
IDiaSymbol::get_liveRangeStartAddressOffset | Restituisce la parte di offset dell'intervallo di indirizzi iniziale in cui il simbolo locale è valido. |
IDiaSymbol::get_liveRangeStartRelativeVirtualAddress | Restituisce l'inizio dell'intervallo di indirizzi in cui il simbolo locale è valido. |
IDiaSymbol::get_locationType | Recupera il tipo di posizione di un simbolo di dati. |
IDiaSymbol::get_lowerBound | Recupera il limite inferiore di una dimensione di matrice FORTRAN. |
IDiaSymbol::get_lowerBoundId | Recupera l'identificatore di simbolo del limite inferiore di una dimensione di matrice FORTRAN. |
IDiaSymbol::get_machineType | Recupera il tipo della CPU di destinazione. |
IDiaSymbol::get_managed | Recupera un flag che indica se il simbolo fa riferimento al codice gestito. |
IDiaSymbol::get_memorySpaceKind | Recupera il tipo di spazio di memoria. |
IDiaSymbol::get_msil | Recupera un flag che indica se il simbolo fa riferimento al codice MSIL (Microsoft Intermediate Language). |
IDiaSymbol::get_name | Recupera il nome del simbolo. |
IDiaSymbol::get_nested | Recupera un flag che indica se il tipo di dati definito dall'utente è annidato. |
IDiaSymbol::get_noInline | Recupera un flag che indica se la funzione è contrassegnata con l'attributo noinline . |
IDiaSymbol::get_noReturn | Recupera un flag che indica se la funzione è stata dichiarata con l'attributo noreturn . |
IDiaSymbol::get_noStackOrdering | Recupera un flag che indica se non è possibile eseguire l'ordinamento dello stack come parte del controllo del buffer dello stack. |
IDiaSymbol::get_notReached | Recupera un flag che indica se la funzione o l'etichetta non viene mai raggiunta. |
IDiaSymbol::get_numberOfAcceleratorPointerTags | Restituisce il numero di tag del puntatore dell'acceleratore in una funzione stub AMP C++. |
IDiaSymbol::get_numberOfModifiers | Recupera il numero di modificatori applicati al tipo originale. |
IDiaSymbol::get_numberOfRegisterIndices | Recupera il numero di indici di registro. |
IDiaSymbol::get_numberOfRows | Recupera il numero di righe nella matrice. |
IDiaSymbol::get_numberOfColumns | Recupera il numero di colonne nella matrice. |
IDiaSymbol::get_objectFileName | Recupera il nome del file dell'oggetto. |
IDiaSymbol::get_objectPointerType | Recupera il tipo del puntatore all'oggetto per un metodo di classe. |
IDiaSymbol::get_oemId | Recupera il valore del oemId simbolo. |
IDiaSymbol::get_oemSymbolId | Recupera il valore del oemSymbolId simbolo. |
IDiaSymbol::get_offset | Recupera l'offset della posizione del simbolo. |
IDiaSymbol::get_optimizedCodeDebugInfo | Recupera un flag che indica se la funzione o l'etichetta contiene codice ottimizzato e informazioni di debug. |
IDiaSymbol::get_overloadedOperator | Recupera un flag che indica se il tipo di dati definito dall'utente dispone di operatori di overload. |
IDiaSymbol::get_packed | Recupera un flag che indica se il tipo di dati definito dall'utente è compresso. |
IDiaSymbol::get_platform | Recupera il tipo di piattaforma per cui è stato compilato il programma o il compiland. |
IDiaSymbol::get_pure | Recupera un flag che indica se la funzione è virtuale pura. |
IDiaSymbol::get_rank | Recupera il rango di una matrice multidimensionale FORTRAN. |
IDiaSymbol::get_reference | Recupera un flag che indica se un tipo di puntatore è un riferimento. |
IDiaSymbol::get_registerId | Recupera il designatore del registro della posizione. |
IDiaSymbol::get_registerType | Recupera il tipo di registro. |
IDiaSymbol::get_relativeVirtualAddress | Recupera l'indirizzo virtuale relativo (RVA) della posizione. |
IDiaSymbol::get_restrictedType | Specifica se il this puntatore viene contrassegnato come limitato. |
IDiaSymbol::get_samplerSlot | Recupera lo slot sampler. |
IDiaSymbol::get_scoped | Recupera un flag che indica se il tipo di dati definito dall'utente viene visualizzato in un ambito lessicale non globale. |
IDiaSymbol::get_signature | Recupera il valore della firma del simbolo. |
IDiaSymbol::get_sizeInUdt | Recupera le dimensioni di un membro di un tipo definito dall'utente. |
IDiaSymbol::get_slot | Recupera il numero di slot della posizione. |
IDiaSymbol::get_sourceFileName | Recupera il nome file del file di origine. |
IDiaSymbol::getSrcLineOnTypeDefn | Recupera il file di origine e il numero di riga che indicano dove è definito un tipo definito dall'utente specificato. |
IDiaSymbol::get_stride | Recupera lo stride della matrice o della matrice strided. |
IDiaSymbol::get_subType | Recupera il sottotipo. |
IDiaSymbol::get_subTypeId | Recupera l'ID del sottotipo. |
IDiaSymbol::get_symbolsFileName | Recupera il nome del file da cui sono stati caricati i simboli. |
IDiaSymbol::get_symIndexId | Recupera l'identificatore di simbolo univoco. |
IDiaSymbol::get_symTag | Recupera il classificatore del tipo di simbolo. |
IDiaSymbol::get_targetOffset | Recupera la sezione offset di una destinazione del thunk. |
IDiaSymbol::get_targetRelativeVirtualAddress | Recupera l'indirizzo virtuale relativo (RVA) di unadestinazionea. |
IDiaSymbol::get_targetSection | Recupera la sezione relativa all'indirizzo di una destinazione di thunk. |
IDiaSymbol::get_targetVirtualAddress | Recupera l'indirizzo virtuale (VA) di una destinazione del cluster. |
IDiaSymbol::get_textureSlot | Recupera lo slot di trama. |
IDiaSymbol::get_thisAdjust | Recupera il regolatore logico this per il metodo . |
IDiaSymbol::get_thunkOrdinal | Recupera il tipo di thunk di una funzione. |
IDiaSymbol::get_timeStamp | Recupera il timestamp del file eseguibile sottostante. |
IDiaSymbol::get_token | Recupera il token di metadati di una funzione o di una variabile gestita. |
IDiaSymbol::get_type | Recupera un riferimento alla firma della funzione. |
IDiaSymbol::get_typeId | Recupera l'identificatore del tipo del simbolo. |
IDiaSymbol::get_types | Recupera una matrice di valori di tipo specifici del compilatore per questo simbolo. |
IDiaSymbol::get_typeIds | Recupera una matrice di valori di identificatore di tipo specifici del compilatore per questo simbolo. |
IDiaSymbol::get_uavSlot | Recupera lo slot uav. |
IDiaSymbol::get_udtKind | Recupera l'ampia gamma di un tipo definito dall'utente (UDT). |
IDiaSymbol::get_unalignedType | Recupera un flag che indica se il tipo di dati definito dall'utente non è idoneo. |
IDiaSymbol::get_undecoratedName | Recupera il nome non dichiarato per un nome decorato in C++ o un collegamento. |
IDiaSymbol::get_undecoratedNameEx | Estensione del get_undecoratedName metodo che recupera il nome non dichiarato in base al valore di un campo di estensione. |
IDiaSymbol::get_unmodifiedTypeId | Recupera l'ID del tipo originale (non modificato). |
IDiaSymbol::get_upperBound | Recupera il limite superiore di una dimensione di matrice FORTRAN. |
IDiaSymbol::get_upperBoundId | Recupera l'identificatore di simbolo del limite superiore di una dimensione di matrice FORTRAN. |
IDiaSymbol::get_value | Recupera il valore di una costante. |
IDiaSymbol::get_virtual | Recupera un flag che indica se la funzione è virtuale. |
IDiaSymbol::get_virtualAddress | Recupera l'indirizzo virtuale (VA) della posizione. |
IDiaSymbol::get_virtualBaseClass | Recupera un flag che indica se il tipo di dati definito dall'utente è una classe di base virtuale. |
IDiaSymbol::get_virtualBaseDispIndex | Recupera l'indice nella tabella di spostamento di base virtuale. |
IDiaSymbol::get_virtualBaseOffset | Recupera l'offset nella tabella delle funzioni virtuali di una funzione virtuale. |
IDiaSymbol::get_virtualBasePointerOffset | Recupera l'offset del puntatore di base virtuale. |
IDiaSymbol::get_virtualBaseTableType | Recupera il tipo di un puntatore alla tabella di base virtuale. |
IDiaSymbol::get_virtualTableShape | Recupera l'interfaccia simbolo del tipo della tabella virtuale per un tipo definito dall'utente. |
IDiaSymbol::get_virtualTableShapeId | Recupera l'identificatore della forma della tabella virtuale del simbolo. |
IDiaSymbol::get_volatileType | Recupera un flag che indica se il tipo di dati definito dall'utente è volatile. |
Osservazioni:
Note per i chiamanti
Ottenere questa interfaccia chiamando uno dei metodi seguenti:
Esempio
In questo esempio viene illustrato come visualizzare le variabili locali per una funzione in un determinato indirizzo virtuale relativo. Mostra anche come i simboli di tipi diversi sono correlati l'uno all'altro.
Nota
CDiaBSTR
è una classe che esegue il wrapping di un BSTR
oggetto e gestisce automaticamente la liberazione della stringa quando l'istanza esce dall'ambito.
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." );
}
};
}
Requisiti
Header:
Dia2.h
Libreria: diaguids.lib
DLL: msdia80.dll