Udostępnij za pośrednictwem


IDiaSymbol

Opisuje właściwości instancji symbolu.

IDiaSymbol : IUnknown

Metody w kolejności alfabetycznej

W poniższej tabeli przedstawiono metody IDiaSymbol.

[!UWAGA]

Symbole zwróci danych istotnych dla tylko niektóre z tych metod, w zależności od typu symbolu.Jeśli metoda zwraca S_OK, zwracana metody ma znaczenie danych.

Metoda

Opis

IDiaSymbol::findChildren

Pobiera wszystkie dzieci symbol.

IDiaSymbol::findChildrenEx

Pobiera dzieci symbolu.Ta metoda jest rozszerzona wersja IDiaSymbol::findChildren.

IDiaSymbol::findChildrenExByAddr

Pobiera dzieci symbol, które są ważne na określony adres.

IDiaSymbol::findChildrenExByRVA

Pobiera dzieci symbol, które są ważne w określonym względny adres wirtualny (RVA).

IDiaSymbol::findChildrenExByVA

Pobiera dzieci symbol, które są ważne na określony adres wirtualny.

IDiaSymbol::findInlineFramesByAddr

Pobiera wyliczenia, który umożliwia klientowi iterację wszystkich ramek na dany adres.

IDiaSymbol::findInlineFramesByRVA

Pobiera wyliczenia, który umożliwia klientowi iterację wszystkich ramek na określony względny adres wirtualny (RVA).

IDiaSymbol::findInlineFramesByVA

Pobiera wyliczenia, który umożliwia klientowi iterację wszystkich ramek na określony adres wirtualny (VA).

IDiaSymbol::findInlineeLines

Pobiera wyliczenia, który umożliwia klientowi iteracyjne przeglądanie informacji numer wiersza wszystkie funkcje, które są inlined, bezpośrednio lub pośrednio, w tym symbolu.

IDiaSymbol::findInlineeLinesByAddr

Pobiera wyliczenia, który umożliwia iteracyjne przeglądanie informacji numer wiersza wszystkie funkcje, które są inlined, bezpośrednio lub pośrednio, w tym symbolu w zakresie określonego adresu klienta.

IDiaSymbol::findInlineeLinesByRVA

Pobiera wyliczenia, który umożliwia klientowi iteracyjne przeglądanie informacji numer wiersza wszystkie funkcje, które są inlined, bezpośrednio lub pośrednio, w tym symbolu w ramach określonego względny adres wirtualny (RVA).

IDiaSymbol::findInlineeLinesByVA

Pobiera wyliczenia, który umożliwia klientowi iteracyjne przeglądanie informacji numer wiersza wszystkie funkcje, które są inlined, bezpośrednio lub pośrednio, w tym symbolu w określony adres wirtualny (VA).

IDiaSymbol::findSymbolsByRVAForAcceleratorPointerTag

Biorąc pod uwagę odpowiednie wartości znacznika, metoda zwraca wyliczenie symboli, które są zawarte w tej funkcji skrótowej na określony adres wirtualny względne.

IDiaSymbol::findSymbolsForAcceleratorPointerTag

Zwraca liczbę tagów wskaźnik accelerator funkcji skrótowej C++ AMP.

IDiaSymbol::get_acceleratorPointerTags

Zwraca wszystkie accelerator wskaźnika tagu wartości, które odpowiadają skrótowej funkcji akceleratora C++ AMP.

IDiaSymbol::get_access

Pobiera modyfikator dostępu członka klasy.

IDiaSymbol::get_addressOffset

Pobiera przesunięcia część adresu lokalizacji.

IDiaSymbol::get_addressSection

Pobiera sekcji część adresu lokalizacji.

IDiaSymbol::get_addressTaken

Pobiera flagę wskazującą, czy inny symbol odwołuje się do tego adresu.

IDiaSymbol::get_age

Pobiera wartość wieku bazy danych programu.

IDiaSymbol::get_arrayIndexType

Pobiera identyfikator symbol typu indeksu tablicy.

IDiaSymbol::get_arrayIndexTypeId

Pobiera identyfikator typu indeksu tablicy symbolu.

IDiaSymbol::get_backEndMajor

Pobiera numer wersji głównej back-end.

IDiaSymbol::get_backEndMinor

Pobiera numer wersji pomocniczej back-end.

IDiaSymbol::get_backEndBuild

Pobiera numer kompilacji back-end.

IDiaSymbol::get_baseDataOffset

Pobiera przesunięcie danych podstawowych.

IDiaSymbol::get_baseDataSlot

Pobiera dane podstawowe gniazdo.

IDiaSymbol::get_baseSymbol

Pobiera symbol, z którym jest oparty wskaźnik.

IDiaSymbol::get_baseSymbolId

Pobiera identyfikator symbol, z którym jest oparty wskaźnik.

IDiaSymbol::get_baseType

Pobiera tag typu typu prostego.

IDiaSymbol::get_bitPosition

Pobiera pozycji bitu lokalizacji.

IDiaSymbol::get_builtInKind

Pobiera wbudowanych rodzaj typu HLSL.

IDiaSymbol::get_callingConvention

Zwraca wskaźnik konwencja wywołania metody.

IDiaSymbol::get_classParent

Pobiera odwołanie do obiektu nadrzędnego klasy symbolu.

IDiaSymbol::get_classParentId

Pobiera identyfikator klasy nadrzędnej symbolu.

IDiaSymbol::get_code

Pobiera flagę wskazującą, czy symbol odwołuje się do adresu kodu.

IDiaSymbol::get_compilerGenerated

Pobiera flagę wskazującą, czy symbol został wygenerowany przez kompilator.

IDiaSymbol::get_compilerName

Pobiera nazwę kompilator używane do tworzenia Jednostka kompilacji.

IDiaSymbol::get_constructor

Pobiera flagę wskazującą, czy typ danych zdefiniowany przez użytkownika ma konstruktora.

IDiaSymbol::get_container

Pobiera zawierających symbol ten symbol.

IDiaSymbol::get_constType

Pobiera flagę wskazującą, czy typ danych zdefiniowany przez użytkownika jest stała.

IDiaSymbol::get_count

Pobiera numer elementów na liście lub w tablicy.

IDiaSymbol::get_countLiveRanges

Pobiera numer zakresy prawidłowy adres skojarzony symbol lokalnych.

IDiaSymbol::get_customCallingConvention

Pobiera flagę wskazującą, czy funkcja używa niestandardowych konwencję wywołania.

IDiaSymbol::get_dataBytes

Pobiera bajtów danych symbolu OEM.

IDiaSymbol::get_dataKind

Pobiera zmiennej klasyfikacji symbol danych.

IDiaSymbol::get_editAndContinueEnabled

Pobiera flagę opisujący funkcje edycji i Kontynuuj skompilowany program lub jednostki.

IDiaSymbol::get_farReturn

Pobiera flagę wskazującą, czy funkcja używa zwrotu.

IDiaSymbol::get_frontEndMajor

Pobiera numer wersji głównej frontonu.

IDiaSymbol::get_frontEndMinor

Pobiera numer wersji pomocniczej frontonu.

IDiaSymbol::get_frontEndBuild

Pobiera numer kompilacji frontonu.

IDiaSymbol::get_function

Pobiera flagę wskazującą, czy symbol publicznych odwołuje się do funkcji.

IDiaSymbol::get_guid

Pobiera identyfikator GUID dla symbolu.

IDiaSymbol::get_hasAlloca

Pobiera flagę wskazującą, czy funkcja zawiera wywołanie alloca.

IDiaSymbol::get_hasAssignmentOperator

Pobiera flagę wskazującą, czy typ danych zdefiniowany przez użytkownika ma wszystkie operatory przypisania zdefiniowane.

IDiaSymbol::get_hasCastOperator

Pobiera flagę wskazującą, czy typ danych zdefiniowany przez użytkownika ma wszystkie operatory cast zdefiniowane.

IDiaSymbol::get_hasDebugInfo

Pobiera flagę wskazującą, czy compiland zawiera wszelkie informacje debugowania.

IDiaSymbol::get_hasEH

Pobiera flagę wskazującą, czy w funkcji obsługi wyjątków C++ stylu.

IDiaSymbol::get_hasEHa

Pobiera flagę wskazującą, czy w funkcji obsługi wyjątków asynchronicznego.

IDiaSymbol::get_hasInlAsm

Pobiera flagę wskazującą, czy funkcja ma wbudowany zestaw.

IDiaSymbol::get_hasLongJump

Pobiera flagę wskazującą, czy funkcja zawiera polecenia longjmp (część c styl wyjątek).

IDiaSymbol::get_hasManagedCode

Pobiera flagę wskazującą, czy moduł zawiera kod zarządzany.

IDiaSymbol::get_hasNestedTypes

Pobiera flagę wskazującą, czy typ danych zdefiniowany przez użytkownika ma zagnieżdżone definicje typów.

IDiaSymbol::get_hasSecurityChecks

Pobiera flagę wskazującą, czy funkcja lub compiland ma kontrole bezpieczeństwa w (via /GS (Sprawdzanie zabezpieczeń bufora) przełącznik kompilatora).

IDiaSymbol::get_hasSEH

Pobiera flagę wskazującą, czy funkcja ma strukturalnej obsługi wyjątków w stylu systemu Win32.

IDiaSymbol::get_hasSetJump

Pobiera flagę wskazującą, czy funkcja zawiera polecenia setjmp.

IDiaSymbol::get_indirectVirtualBaseClass

Pobiera flagę wskazującą, czy typ danych zdefiniowany przez użytkownika jest pośrednie wirtualne klasy podstawowej.

IDiaSymbol::get_InlSpec

Pobiera flagę wskazującą, czy funkcja został oznaczony atrybutem wbudowanej.

IDiaSymbol::get_interruptReturn

Pobiera flagę wskazującą, czy funkcja ma powrotu z instrukcji przerwania.

IDiaSymbol::get_intro

Pobiera flagę wskazującą, czy funkcja jest funkcja wirtualne klasy podstawowej.

IDiaSymbol::get_isAcceleratorGroupSharedLocal

Pobiera flagę wskazującą, czy symbol odpowiada udostępnionego zmiennej lokalnej grupy kod skompilowany do akceleratora AMP C++.

IDiaSymbol::get_isAcceleratorPointerTagLiveRange

Pobiera flagę wskazującą, czy symbol odpowiada definicji zakresu symbol dla składnika tag zmiennej wskaźnik kod skompilowany do akceleratora AMP C++.Symbol zakresu definicji jest lokalizację zmiennej dla zakresu adresów.

IDiaSymbol::get_isAcceleratorStubFunction

Wskazuje, czy symbol odpowiada symbol funkcji najwyższego poziomu dla modułu cieniującego sporządzanych dla skrótu, który odpowiada parallel_for_each wywołania.

IDiaSymbol::get_isAggregated

Pobiera flagę wskazującą, czy dane jest częścią agregacji wielu symboli.

IDiaSymbol::get_isCTypes

Pobiera flagę wskazującą, czy plik symbolu zawiera typy C.

IDiaSymbol::get_isCVTCIL

Pobiera flagę wskazującą, czy moduł został przekonwertowany z typowych pośrednie języka (CIL) do kodu macierzystego.

IDiaSymbol::get_isDataAligned

Pobiera flagę wskazującą, czy elementy typu danych zdefiniowanego przez użytkownika są wyrównane do granicy szczególnych.

IDiaSymbol::get_isHLSLData

Określa, czy ten symbol reprezentuje danych wysokiego poziomu modułu cieniującego języka (HLSL).

IDiaSymbol::get_isHotpatchable

Pobiera flagę wskazującą, czy moduł został skompilowany z /hotpatch (Utwórz obraz możliwy do poprawiania w trakcie działania) przełącznik kompilatora.

IDiaSymbol::get_isLTCG

Pobiera flagę wskazującą, czy compiland zarządzanych było połączone z LTCG łączącego.

IDiaSymbol::get_isMatrixRowMajor

Określa, czy macierzy głównych wiersza.

IDiaSymbol::get_isMSILNetmodule

Pobiera flagę wskazującą, czy jest zarządzany compiland.netmodule (zawierających tylko metadane).

IDiaSymbol::get_isMultipleInheritance

Określa, czy this wskaźnik wskazuje członka danych, wielokrotne dziedziczenie.

IDiaSymbol::get_isNaked

Pobiera flagę wskazującą, czy funkcja ma naked (C++) atrybut.

IDiaSymbol::get_isOptimizedAway

Określa, czy zmienna jest zoptymalizowany away.

IDiaSymbol::get_isPointerBasedOnSymbolValue

Określa, czy this wskaźnik jest oparty na wartości symboli.

IDiaSymbol::get_isPointerToDataMember

Określa, czy ten symbol jest wskaźnik do elementu danych.

IDiaSymbol::get_isPointerToMemberFunction

Określa, czy ten symbol jest wskaźnik do funkcji składowej.

IDiaSymbol::get_isReturnValue

Określa, czy zmienna prowadzi wartości zwracanej.

IDiaSymbol::get_isSdl

Określa, czy moduł jest skompilowany z opcją /SDL.

IDiaSymbol::get_isSingleInheritance

Określa, czy this wskaźnik wskazuje członek danych z pojedynczej dziedziczenia.

IDiaSymbol::get_isSplitted

Pobiera flagę wskazującą, czy dane zostały podzielone agregatu oddzielnych symboli.

IDiaSymbol::get_isStatic

Pobiera flagę wskazującą, czy funkcja lub thunk warstwy jest statyczny.

IDiaSymbol::get_isStripped

Pobiera flagę wskazującą, czy usunięto symbole prywatnego z pliku symboli.

IDiaSymbol::get_isVirtualInheritance

Określa, czy this wskaźnik wskazuje członek danych z wirtualnego dziedziczenia.

IDiaSymbol::get_language

Pobiera języka źródłowego.

IDiaSymbol::get_length

Pobiera liczbę bajtów pamięci używanej przez obiekt reprezentowany przez ten symbol.

IDiaSymbol::get_lexicalParent

Pobiera odwołanie do obiektu nadrzędnego leksykalne symbolu.

IDiaSymbol::get_lexicalParentId

Pobiera identyfikator nadrzędnego leksykalne symbolu.

IDiaSymbol::get_libraryName

Pobiera nazwę pliku biblioteki lub obiektu pliku, z którego został załadowany obiekt.

IDiaSymbol::get_liveRangeLength

Zwraca długość zakresu adresów, w której symbol lokalnego jest prawidłowy.

IDiaSymbol::get_liveRangeStartAddressSection

Zwraca część sekcji początkowy zakres adresów, w której symbol lokalnego jest prawidłowy.

IDiaSymbol::get_liveRangeStartAddressOffset

Zwraca część przesunięcia początkowy zakres adresów, w której symbol lokalnego jest prawidłowy.

IDiaSymbol::get_liveRangeStartRelativeVirtualAddress

Zwraca początek zakresu adresów, w której symbol lokalnego jest prawidłowy.

IDiaSymbol::get_locationType

Pobiera typ lokalizacji symbolu danych.

IDiaSymbol::get_lowerBound

Pobiera dolną granicą FORTRAN wymiaru tablicy.

IDiaSymbol::get_lowerBoundId

Pobiera identyfikator symbol dolną granicą FORTRAN wymiaru tablicy.

IDiaSymbol::get_machineType

Pobiera typ docelowego Procesora.

IDiaSymbol::get_managed

Pobiera flagi, że wskazująca, czy symbol odnosi się do kodu zarządzanego.

IDiaSymbol::get_memorySpaceKind

Pobiera rodzaju miejsca w pamięci.

IDiaSymbol::get_msil

Pobiera flagę wskazującą, czy symbol odnosi się do kodu Microsoft pośrednie języka MSIL ().

IDiaSymbol::get_name

Pobiera nazwę symbolu.

IDiaSymbol::get_nested

Pobiera flagę wskazującą, czy jest zagnieżdżony typ danych zdefiniowany przez użytkownika.

IDiaSymbol::get_noInline

Pobiera flagę wskazującą, czy funkcja jest oznaczone noinline atrybut.

IDiaSymbol::get_noReturn

Pobiera flagę wskazującą, czy funkcja została zadeklarowana z noreturn atrybut.

IDiaSymbol::get_noStackOrdering

Pobiera flagę wskazującą, czy kolejności stosu nie może być wykonana w ramach sprawdzania buforu stosu.

IDiaSymbol::get_notReached

Pobiera flagę wskazującą, czy funkcja lub etykiety nigdy nie zostanie osiągnięty.

IDiaSymbol::get_numberOfAcceleratorPointerTags

Zwraca liczbę tagów wskaźnik accelerator funkcji skrótowej C++ AMP.

IDiaSymbol::get_numberOfModifiers

Pobiera numer modyfikatorów, które są stosowane do oryginalnego typu.

IDiaSymbol::get_numberOfRegisterIndices

Pobiera numer rejestru indeksów.

IDiaSymbol::get_numberOfRows

Pobiera liczbę wierszy w macierzy.

IDiaSymbol::get_numberOfColumns

Pobiera numer kolumny w matrycy.

IDiaSymbol::get_objectFileName

Pobiera nazwę obiektu w pliku.

IDiaSymbol::get_objectPointerType

Pobiera typ wskaźnika obiektu dla metody klasy.

IDiaSymbol::get_oemId

Pobiera symbol oemId wartości.

IDiaSymbol::get_oemSymbolId

Pobiera symbol oemSymbolId wartości.

IDiaSymbol::get_offset

Pobiera przesunięcie położenie symbolu.

IDiaSymbol::get_optimizedCodeDebugInfo

Pobiera flagę wskazującą, czy funkcja lub etykieta zawiera zoptymalizowanego kodu również informacje jak debugowania.

IDiaSymbol::get_overloadedOperator

Pobiera flagę wskazującą, czy typ danych zdefiniowany przez użytkownika ma przeciążone operatory.

IDiaSymbol::get_packed

Pobiera flagę wskazującą, czy jest zapakowane typ danych zdefiniowany przez użytkownika.

IDiaSymbol::get_platform

Pobiera typ platformy, dla którego został skompilowany program lub compiland.

IDiaSymbol::get_pure

Pobiera flagi, że wskazująca, czy funkcja jest czysty wirtualnych.

IDiaSymbol::get_rank

Pobiera rangi FORTRAN Tablica wielowymiarowa.

IDiaSymbol::get_reference

Pobiera flagę wskazującą, czy typ wskaźnika jest odwołanie.

IDiaSymbol::get_registerId

Pobiera rejestru określenia lokalizacji.

IDiaSymbol::get_registerType

Pobiera typ rejestru.

IDiaSymbol::get_relativeVirtualAddress

Pobiera względny adres wirtualny (RVA) lokalizacji.

IDiaSymbol::get_restrictedType

Określa, czy this wskaźnik jest oflagowana jako ograniczone.

IDiaSymbol::get_samplerSlot

Pobiera gniazdo próbnika.

IDiaSymbol::get_scoped

Pobiera flagę wskazującą, czy typ danych zdefiniowany przez użytkownika ma nieglobalnego zakres leksykalne.

IDiaSymbol::get_signature

Pobiera wartość podpisu dla symbolu.

IDiaSymbol::get_sizeInUdt

Pobiera rozmiar członek typ zdefiniowany przez użytkownika.

IDiaSymbol::get_slot

Pobiera numer gniazda lokalizacji.

IDiaSymbol::get_sourceFileName

Pobiera nazwę pliku źródłowego pliku.

IDiaSymbol::getSrcLineOnTypeDefn

Pobiera numer źródłowego pliku i linii, wskazujące, gdzie zdefiniowana jest określony typ zdefiniowany przez użytkownika.

IDiaSymbol::get_stride

Pobiera stride macierzy lub tablicy strided.

IDiaSymbol::get_subType

Pobiera typu sub.

IDiaSymbol::get_subTypeId

Pobiera identyfikator typu sub

IDiaSymbol::get_symbolsFileName

Pobiera nazwę pliku, z którego zostały załadowane symbole.

IDiaSymbol::get_symIndexId

Pobiera identyfikator unikatowy symbol.

IDiaSymbol::get_symTag

Pobiera klasyfikatora typ symbolu.

IDiaSymbol::get_targetOffset

Pobiera przesunięcia sekcji docelowej thunk.

IDiaSymbol::get_targetRelativeVirtualAddress

Pobiera względny adres wirtualny (RVA) docelowej thunk.

IDiaSymbol::get_targetSection

Pobiera sekcji adresu docelowego thunk.

IDiaSymbol::get_targetVirtualAddress

Pobiera wirtualny adres docelowy thunk (VA).

IDiaSymbol::get_textureSlot

Pobiera gniazdo tekstury.

IDiaSymbol::get_thisAdjust

Pobiera logicznej this rzeczoznawcami dla metody.

IDiaSymbol::get_thunkOrdinal

Pobiera typ thunk funkcji.

IDiaSymbol::get_timeStamp

Pobiera sygnatury czasowej podstawowego pliku wykonywalnego.

IDiaSymbol::get_token

Pobiera token metadanych funkcji zarządzane lub zmiennej.

IDiaSymbol::get_type

Pobiera odwołanie do podpisu funkcji.

IDiaSymbol::get_typeId

Pobiera identyfikator typu symbolu.

IDiaSymbol::get_types

Pobiera tablicę wartości typu kompilator specyficzne dla tego symbolu.

IDiaSymbol::get_typeIds

Pobiera tablicę wartości identyfikatora typu kompilator specyficzne dla tego symbolu.

IDiaSymbol::get_uavSlot

Pobiera gniazdo uav-em.

IDiaSymbol::get_udtKind

Pobiera różnych typów zdefiniowanych przez użytkownika (UDT).

IDiaSymbol::get_unalignedType

Pobiera flagę wskazującą, czy typ danych zdefiniowany przez użytkownika jest niewyrównane.

IDiaSymbol::get_undecoratedName

Pobiera nazwę bez zdobione, C++ lub powiązania, nazwę.

IDiaSymbol::get_undecoratedNameEx

Rozszerzenie get_undecoratedName metody pobierającej bez nazwy na podstawie wartości pola rozszerzenia.

IDiaSymbol::get_unmodifiedTypeId

Pobiera identyfikator oryginalnego typu (niezmieniona).

IDiaSymbol::get_upperBound

Pobiera górne FORTRAN wymiaru tablicy.

IDiaSymbol::get_upperBoundId

Pobiera identyfikator symbol górne FORTRAN wymiaru tablicy.

IDiaSymbol::get_value

Pobiera wartość stałą.

IDiaSymbol::get_virtual

Pobiera flagę wskazującą, czy funkcja jest wirtualna.

IDiaSymbol::get_virtualAddress

Pobiera adres wirtualny (VA) lokalizacji.

IDiaSymbol::get_virtualBaseClass

Pobiera flagę wskazującą, czy typ danych zdefiniowany przez użytkownika jest wirtualny klasy podstawowej.

IDiaSymbol::get_virtualBaseDispIndex

Pobiera indeks tabeli wirtualnej przemieszczenie podstawowej.

IDiaSymbol::get_virtualBaseOffset

Pobiera przesunięcie w tabeli funkcję wirtualną funkcję wirtualną.

IDiaSymbol::get_virtualBasePointerOffset

Pobiera przesunięcie wirtualnego wskaźnik bazowy.

IDiaSymbol::get_virtualBaseTableType

Pobiera typ wskaźnika wirtualnej tabeli bazowej.

IDiaSymbol::get_virtualTableShape

Pobiera interfejsu symbol typu wirtualnej tabeli typ zdefiniowany przez użytkownika.

IDiaSymbol::get_virtualTableShapeId

Pobiera identyfikator kształtu tabeli wirtualny symbolu.

IDiaSymbol::get_volatileType

Pobiera flagę wskazującą, czy typ danych zdefiniowany przez użytkownika jest nietrwała.

Uwagi

Uwagi dla wywoływania

Ten interfejs uzyskać wywołując jedną z następujących metod:

Przykład

Ten przykład pokazuje sposób wyświetlania zmiennych lokalnych funkcji na danym względny adres wirtualny.Pokazuje również, jak symbole różnych typów są powiązane ze sobą.

[!UWAGA]

CDiaBSTRKlasa, która otacza jest BSTR i obsługuje automatyczne zwalnianie ciąg podczas wystąpienia wykracza poza zakres.

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." );
        }
    };
}

Wymagania

Header:Dia2.h

Biblioteki: diaguids.lib

Biblioteka DLL: msdia80.dll

Zobacz też

Informacje

IDiaEnumSymbolsByAddr

IDiaEnumSymbols

IDiaSession

Hierarchia klas typów symboli

Jednostka kompilacji

Inne zasoby

Interfejsy (Zestaw SDK dostępu do interfejsu debugowania)

Symbole i znaczniki symboli