Freigeben über


IDiaSymbol

Beschreibt die Eigenschaften einer Symbolinstanz.

IDiaSymbol : IUnknown

Methoden in alphabetischer Reihenfolge

Die folgende Tabelle zeigt die IDiaSymbol-Methoden.

HinweisHinweis

Symbole geben sinnvolle Daten nur für einige dieser Methoden zurück, je nach Art des Symbols.Wenn eine Methode S_OK zurückgibt, dann hat diese Methode aussagekräftige Daten zurückgegeben.

Methode

Description

IDiaSymbol::findChildren

Ruft alle untergeordneten Elemente des Symbols ab.

IDiaSymbol::findChildrenEx

Ruft die untergeordneten Elemente des Symbols ab.Diese Methode ist die erweiterte Version von IDiaSymbol::findChildren.

IDiaSymbol::findChildrenExByAddr

Ruft die untergeordneten Elemente des Symbols ab, die an einer angegebenen Adresse gültig sind.

IDiaSymbol::findChildrenExByRVA

Ruft die untergeordneten Elemente des Symbols ab, die an einer angegebenen relativen virtuellen Adresse gültig sind.

IDiaSymbol::findChildrenExByVA

Ruft die untergeordneten Elemente des Symbols ab, die an einer angegebenen virtuellen Adresse gültig sind.

IDiaSymbol::findInlineFramesByAddr

Ruft eine Enumeration ab, die einem Client ermöglicht, um alle inline Frames auf einer angegebenen Adresse zu durchlaufen.

IDiaSymbol::findInlineFramesByRVA

Ruft eine Enumeration ab, die einem Client ermöglicht, um alle inline Frames auf einer angegebenen relativen virtuellen Adresse RVA () zu durchlaufen.

IDiaSymbol::findInlineFramesByVA

Ruft eine Enumeration ab, die einem Client ermöglicht, um alle inline Frames auf einer angegebenen virtuellen Adresse (VA) zu durchlaufen.

IDiaSymbol::findInlineeLines

Ruft eine Enumeration ab, die einem Client ermöglicht, durch die Zeilennummerninformationen aller Funktionen direkt oder indirekt zu durchlaufen, die inline sind, in diesem Symbol.

IDiaSymbol::findInlineeLinesByAddr

Ruft eine Enumeration ab, die einem Client ermöglicht, durch die Zeilennummerninformationen aller Funktionen direkt oder indirekt zu durchlaufen, die inline sind, in diesem Symbol im angegebenen Adressbereichs.

IDiaSymbol::findInlineeLinesByRVA

Ruft eine Enumeration ab, die einem Client ermöglicht, durch die Zeilennummerninformationen aller Funktionen direkt oder indirekt zu durchlaufen, die inline sind, in diesem Symbol in der angegebenen relativen virtuellen Adresse RVA ().

IDiaSymbol::findInlineeLinesByVA

Ruft eine Enumeration ab, die einem Client ermöglicht, durch die Zeilennummerninformationen aller Funktionen direkt oder indirekt zu durchlaufen, die inline sind, in diesem Symbol in der angegebenen virtuellen Adresse (VA).

IDiaSymbol::findSymbolsByRVAForAcceleratorPointerTag

Erstellen eines entsprechenden Tagwert angegeben, gibt diese Methode eine Enumeration von Symbolen zurück, die in dieser Stubfunktion an einer angegebenen relativen virtuellen Adresse enthalten sind.

IDiaSymbol::findSymbolsForAcceleratorPointerTag

Gibt die Anzahl der Zugriffstastenzeigertags in der AMP-Stubfunktion einer C++-Datei zurück.

IDiaSymbol::get_acceleratorPointerTags

Gibt alle Zugriffstastenzeigertagwerte zurück, die zur AMPzugriffstasten-Stubfunktion einer C++-Datei entsprechen.

IDiaSymbol::get_access

Ruft den Zugriffsmodifizierer eines Klassenmembers ab.

IDiaSymbol::get_addressOffset

Ruft den Offsetteil einer Adresse ab.

IDiaSymbol::get_addressSection

Ruft den Abschnittsteil einer Adresse ab.

IDiaSymbol::get_addressTaken

Ruft ein Flag ab, das angibt, ob ein anderes Symbol diese Adresse referenziert.

IDiaSymbol::get_age

Ruft den Wert des Alters einer Programmdatenbank ab.

IDiaSymbol::get_arrayIndexType

Ruft den Symbolbezeichner des Arrayindextyps ab.

IDiaSymbol::get_arrayIndexTypeId

Ruft den Bezeichner des Arrayindextyps für das Symbol ab.

IDiaSymbol::get_backEndMajor

Ruft die Back-End-Hauptversionsnummer ab.

IDiaSymbol::get_backEndMinor

Ruft die Back-End-Nebenversionsnummer ab.

IDiaSymbol::get_backEndBuild

Ruft die Back-End-Buildnummer ab.

IDiaSymbol::get_baseDataOffset

Ruft den Datenoffset ab.

IDiaSymbol::get_baseDataSlot

Ruft den grundlegenden Datenslot ab.

IDiaSymbol::get_baseSymbol

Ruft das Symbol ab, von dem der Zeiger basiert.

IDiaSymbol::get_baseSymbolId

Ruft die Symbol ID ab, von der der Zeiger basiert.

IDiaSymbol::get_baseType

Ruft das Typtag eines einfachen Typs ab.

IDiaSymbol::get_bitPosition

Ruft die Bitposition eines Speicherorts ab.

IDiaSymbol::get_builtInKind

Ruft eine integrierte Art HLSL-Typ ab.

IDiaSymbol::get_callingConvention

Gibt einen Indikator einer Methodenaufrufkonvention zurück.

IDiaSymbol::get_classParent

Ruft einen Verweis auf die dem Symbol übergeordnete Klasse ab.

IDiaSymbol::get_classParentId

Ruft den übergeordneten Klassenbezeichner des Symbols ab.

IDiaSymbol::get_code

Ruft ein Flag ab, das angibt, ob das Symbol auf eine Codeadresse verweist.

IDiaSymbol::get_compilerGenerated

Ruft ein Flag ab, das angibt, ob das Symbol vom Compiler generiert wurde.

IDiaSymbol::get_compilerName

Ruft den Namen des Compilers ab, der verwendet wird, um Compiland zu erstellen.

IDiaSymbol::get_constructor

Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp über einen Konstruktor verfügt.

IDiaSymbol::get_container

Ruft das enthaltende Symbol dieses Symbols ab.

IDiaSymbol::get_constType

Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp konstant ist.

IDiaSymbol::get_count

Ruft die Anzahl der Elemente in einer Liste oder einem Array ab.

IDiaSymbol::get_countLiveRanges

Ruft die Anzahl der gültigen Adressbereiche ab, die dem lokalen Symbol zugeordnet sind.

IDiaSymbol::get_customCallingConvention

Ruft ein Flag ab, ob die Funktion eine benutzerdefinierte Aufrufkonvention verwendet.

IDiaSymbol::get_dataBytes

Ruft die Datenbytes eines OEM-Symbols ab.

IDiaSymbol::get_dataKind

Ruft die variable Klassifizierung eines Datensymbols ab.

IDiaSymbol::get_editAndContinueEnabled

Ruft das Flag ab, das die Funktionen zum Bearbeiten und Fortfahren für das kompilierte Programm bzw. die kompilierte Einheit beschreibt.

IDiaSymbol::get_farReturn

Ruft ein Flag ab, ob die Funktion ein weit beendet werden verwendet.

IDiaSymbol::get_frontEndMajor

Ruft die Front-End-Hauptversionsnummer ab.

IDiaSymbol::get_frontEndMinor

Ruft die Front-End-Nebenversionsnummer ab.

IDiaSymbol::get_frontEndBuild

Ruft die Front-End-Buildnummer ab.

IDiaSymbol::get_function

Ruft ein Flag ab, das angibt, ob das öffentliche Symbol auf eine Funktion verweist.

IDiaSymbol::get_guid

Ruft die GUID des Symbols ab.

IDiaSymbol::get_hasAlloca

Ruft ein Flag ab, ob die Funktion einen Aufruf alloca enthält.

IDiaSymbol::get_hasAssignmentOperator

Ruft ein Flag ab, das angibt, ob für den benutzerdefinierten Datentyp Zuweisungsoperatoren definiert sind.

IDiaSymbol::get_hasCastOperator

Ruft ein Flag ab, das angibt, ob für den benutzerdefinierten Datentyp Umwandlungsoperatoren definiert sind.

IDiaSymbol::get_hasDebugInfo

Ruft ein Flag ab, ob die Kompiliereinheit alle Debuginformationen enthält.

IDiaSymbol::get_hasEH

Ruft ein Flag ab, ob die Funktion Ausnahmehandler eine ++-style verfügt.

IDiaSymbol::get_hasEHa

Ruft ein Flag ab, ob die Funktion einen asynchronen Ausnahmehandler enthält.

IDiaSymbol::get_hasInlAsm

Ruft ein Flag ab, ob die Funktion Inlineassembly verfügt.

IDiaSymbol::get_hasLongJump

Ruft ein Flag ab, ob die Funktion einen longjmp Befehl enthält (Teil Ausnahmebehandlung im C-Format).

IDiaSymbol::get_hasManagedCode

Ruft ein Flag ab, das angibt, ob das Modul verwalteten Code enthält.

IDiaSymbol::get_hasNestedTypes

Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp Definitionen des geschachtelten Typs enthält.

IDiaSymbol::get_hasSecurityChecks

Ruft ein Flag ab, das angibt, ob die Funktion oder die Kompiliereinheit die Sicherheitsüberprüfungen verfügt, die in kompiliert (über den /GS (Puffer-Sicherheitsüberprüfung) Compilerschalter).

IDiaSymbol::get_hasSEH

Ruft ein Flag ab, ob die Funktion Win32-Anwendungsmanifest strukturierte Ausnahmebehandlung verfügt.

IDiaSymbol::get_hasSetJump

Ruft ein Flag ab, ob die Funktion einen setjmp Befehl enthält.

IDiaSymbol::get_indirectVirtualBaseClass

Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp eine indirekte virtuelle Basisklasse ist.

IDiaSymbol::get_InlSpec

Ruft ein Flag ab, ob die Funktion inline mit dem Attribut markiert wurde.

IDiaSymbol::get_interruptReturn

Ruft ein Flag ab, ob die Funktion eine Rückgabe von der Unterbrechungsanweisung verfügt.

IDiaSymbol::get_intro

Ruft ein Flag ab, das angibt, ob die Funktion die virtuelle Funktion der Basisklasse ist.

IDiaSymbol::get_isAcceleratorGroupSharedLocal

Ruft ein Flag ab, das angibt, ob das Symbol zu einer Gruppe freigegebenen lokalen Variable im Code entspricht, der Zugriffstaste für AMP in C++ kompiliert wird.

IDiaSymbol::get_isAcceleratorPointerTagLiveRange

Ruft ein Flag ab, das angibt, ob das Symbol zum Definitionsbereichssymbol für die Tagkomponente einer Zeigervariable im Code entspricht, der Zugriffstaste für AMP in C++ kompiliert wird.Das Definitionsbereichssymbol Speicherort einer Variable für eine Spanne von Adressen.

IDiaSymbol::get_isAcceleratorStubFunction

Gibt an, ob das Symbol in einen Funktionssymbol der obersten Ebene für einen Shader entspricht, der für eine Zugriffstaste kompiliert wird, die einem parallel_for_each Aufruf entspricht.

IDiaSymbol::get_isAggregated

Ruft ein Flag ab, ob die Daten Teil eines Aggregats vieler Symbole sind.

IDiaSymbol::get_isCTypes

Ruft ein Flag ab, ob die Symboldatei C enthält.

IDiaSymbol::get_isCVTCIL

Ruft ein Flag ab, ob das Modul von der allgemeinen Intermediate Language (CIL) in systemeigenen Code konvertiert wurde.

IDiaSymbol::get_isDataAligned

Ruft ein Flag ab, ob die Elemente eines benutzerdefinierten Datentyps zu einer bestimmten Begrenzung ausgerichtet sind.

IDiaSymbol::get_isHLSLData

Gibt an, ob dieses Symbol Daten High-Level Shader Languages (HLSL) darstellt.

IDiaSymbol::get_isHotpatchable

Ruft ein Flag ab, das angibt, ob das Modul mit dem /hotpatch (Erstellen eines Hotpatch-fähigen Abbildes)-Compilerschalter kompiliert wurde.

IDiaSymbol::get_isLTCG

Ruft ein Flag ab, ob die verwaltete Kompiliereinheit mit dem LTCG des Linkers verknüpft wurde.

IDiaSymbol::get_isMatrixRowMajor

Gibt an, ob die Matrix Zeilenmajor ist.

IDiaSymbol::get_isMSILNetmodule

Ruft ein Flag ab, ob die verwaltete Kompiliereinheit A. ist.netmodule (nur Metadaten enthalten).

IDiaSymbol::get_isMultipleInheritance

Gibt an, ob der this Zeiger auf einen Datenmember mit Mehrfachvererbung zeigt.

IDiaSymbol::get_isNaked

Ruft ein Flag ab, ob die Funktion nackt (C++) das Attribut verfügt.

IDiaSymbol::get_isOptimizedAway

Gibt an, ob die Variable weg optimiert ist.

IDiaSymbol::get_isPointerBasedOnSymbolValue

Gibt an, ob der this Zeiger auf Grundlage eines Symbolwert ist.

IDiaSymbol::get_isPointerToDataMember

Gibt an, ob dieses Symbol ein Zeiger auf einen Datenmember ist.

IDiaSymbol::get_isPointerToMemberFunction

Gibt an, ob dieses Symbol ein Zeiger auf eine Memberfunktion ist.

IDiaSymbol::get_isReturnValue

Gibt an, ob die Variable einen Rückgabewert enthält.

IDiaSymbol::get_isSdl

Gibt an, ob das Modul mit der Option /SDL- kompiliert wird.

IDiaSymbol::get_isSingleInheritance

Gibt an, ob der this Zeiger auf einen Datenmember mit einzelner Vererbung zeigt.

IDiaSymbol::get_isSplitted

Ruft ein Flag ab, ob die Daten in ein Aggregat von separaten Symbolen geteilt wurden.

IDiaSymbol::get_isStatic

Ruft ein Flag ab, das angibt, ob eine Funktion- oder eine Thunkebene statisch ist.

IDiaSymbol::get_isStripped

Ruft ein Flag ab, ob private Symbole aus der Symboldatei entfernt wurden.

IDiaSymbol::get_isVirtualInheritance

Gibt an, ob der this Zeiger auf einen Datenmember mit virtueller Vererbung zeigt.

IDiaSymbol::get_language

Ruft die Sprache der Quelle ab.

IDiaSymbol::get_length

Ruft die Anzahl der Bytes des Arbeitsspeichers ab, die von dem Objekt verwendet werden, das durch dieses Symbol dargestellt wird.

IDiaSymbol::get_lexicalParent

Ruft einen Verweis auf das dem Symbol übergeordnete lexikalische Element ab.

IDiaSymbol::get_lexicalParentId

Ruft den übergeordneten lexikalischen Bezeichner des Symbols ab.

IDiaSymbol::get_libraryName

Ruft den Dateinamen der Bibliothek oder Objektdatei ab, aus der das Objekt geladen wurde.

IDiaSymbol::get_liveRangeLength

Gibt die Länge des Adressbereichs zurück, in dem das lokale Symbol gültig ist.

IDiaSymbol::get_liveRangeStartAddressSection

Gibt den Abschnittsteil des Startadressenbereichs zurück, in dem das lokale Symbol gültig ist.

IDiaSymbol::get_liveRangeStartAddressOffset

Gibt den Offsetteil des Startadressenbereichs zurück, in dem das lokale Symbol gültig ist.

IDiaSymbol::get_liveRangeStartRelativeVirtualAddress

Gibt den Anfang des Adressbereichs zurück, in dem das lokale Symbol gültig ist.

IDiaSymbol::get_locationType

Ruft den Positionstyp eines Datensymbols ab.

IDiaSymbol::get_lowerBound

Ruft die untere Grenze einer FORTRAN-Arraydimension ab.

IDiaSymbol::get_lowerBoundId

Ruft den Symbolbezeichner der unteren Grenze einer FORTRAN-Arraydimension ab.

IDiaSymbol::get_machineType

Ruft den Typ des CPU-Ziels ab.

IDiaSymbol::get_managed

Ruft ein Flag ab, das angibt, ob sich das Symbol auf verwalteten Code bezieht.

IDiaSymbol::get_memorySpaceKind

Ruft die Speicherbereichsart ab.

IDiaSymbol::get_msil

Ruft ein Flag ab, das angibt, ob das Symbol auf MSIL-Code (Microsoft Intermediate Language) verweist.

IDiaSymbol::get_name

Ruft den Namen des Symbols ab.

IDiaSymbol::get_nested

Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp geschachtelt ist.

IDiaSymbol::get_noInline

Ruft ein Flag ab, ob die Funktion mit dem noinline-Attribut markiert ist.

IDiaSymbol::get_noReturn

Ruft ein Flag ab, ob die Funktion mit dem noreturn-Attribut deklariert wurde.

IDiaSymbol::get_noStackOrdering

Ruft ein Flag ab, dass keine Stapelreihenfolge als Teil der Stapelpufferüberprüfung durchgeführt werden kann.

IDiaSymbol::get_notReached

Ruft ein Flag ab, ob die Funktion oder die Bezeichnung nie erreicht wird.

IDiaSymbol::get_numberOfAcceleratorPointerTags

Gibt die Anzahl der Zugriffstastenzeigertags in der AMP-Stubfunktion einer C++-Datei zurück.

IDiaSymbol::get_numberOfModifiers

Ruft die Anzahl der Modifizierern ab, die dem ursprünglichen Typ angewendet werden.

IDiaSymbol::get_numberOfRegisterIndices

Ruft die Anzahl der Registerindizes ab.

IDiaSymbol::get_numberOfRows

Ruft die Anzahl der Zeilen in der Matrix ab.

IDiaSymbol::get_numberOfColumns

Ruft die Anzahl der Spalten in der Matrix ab.

IDiaSymbol::get_objectFileName

Ruft den Objektdateinamen ab.

IDiaSymbol::get_objectPointerType

Ruft den Typ des Objektzeigers für eine Klassenmethode ab.

IDiaSymbol::get_oemId

Ruft den oemId-Wert des Symbols ab.

IDiaSymbol::get_oemSymbolId

Ruft den oemSymbolId-Wert des Symbols ab.

IDiaSymbol::get_offset

Ruft den Offset des Symbolspeicherorts ab.

IDiaSymbol::get_optimizedCodeDebugInfo

Ruft ein Flag ab, ob die Funktion oder die Bezeichnung optimierten Code sowie Debuginformationen enthält.

IDiaSymbol::get_overloadedOperator

Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp über überladene Konstruktoren verfügt.

IDiaSymbol::get_packed

Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp gepackt ist.

IDiaSymbol::get_platform

Ruft den Typ der Plattform ab, für die das Programm oder die Kompiliereinheit kompiliert wurde.

IDiaSymbol::get_pure

Ruft ein Flag ab, das angibt, ob die Funktion rein virtuell ist.

IDiaSymbol::get_rank

Ruft den Rang eines mehrdimensionalen FORTRAN-Arrays ab.

IDiaSymbol::get_reference

Ruft ein Flag ab, das angibt, ob ein Zeigertyp ein Verweis ist.

IDiaSymbol::get_registerId

Ruft den Registerkennzeichner des Speicherorts ab.

IDiaSymbol::get_registerType

Ruft das Register ab.

IDiaSymbol::get_relativeVirtualAddress

Ruft die relative virtuelle Adresse (RVA) des Speicherorts ab.

IDiaSymbol::get_restrictedType

Gibt an, ob der this Zeiger bezeichnet wird, wie beschränkt.

IDiaSymbol::get_samplerSlot

Ruft den Samplerslot ab.

IDiaSymbol::get_scoped

Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp in einem nichtglobalen lexikalischen Gültigkeitsbereich angezeigt wird.

IDiaSymbol::get_signature

Ruft den Signaturwert des Symbols ab.

IDiaSymbol::get_sizeInUdt

Ruft die Größe eines Members eines benutzerdefinierten Typs ab.

IDiaSymbol::get_slot

Ruft die Slotnummer der Position ab.

IDiaSymbol::get_sourceFileName

Ruft den Dateinamen der Quelldatei ab.

IDiaSymbol::getSrcLineOnTypeDefn

Ruft die Quelldatei und die Zeilennummer ab, die angeben, wo ein angegebener benutzerdefinierter Typ definiert ist.

IDiaSymbol::get_stride

Ruft den Schritt der Matrix oder des strided Arrays ab.

IDiaSymbol::get_subType

Ruft den Vortyp ab.

IDiaSymbol::get_subTypeId

Ruft die ID ab Vortyp

IDiaSymbol::get_symbolsFileName

Ruft den Namen der Datei ab, aus der die Symbole geladen wurden.

IDiaSymbol::get_symIndexId

Ruft den eindeutigen Bezeichner des Symbols ab.

IDiaSymbol::get_symTag

Ruft den Symboltypklassifizierer ab.

IDiaSymbol::get_targetOffset

Ruft den Offsetteil eines Thunkziels ab.

IDiaSymbol::get_targetRelativeVirtualAddress

Ruft die relative virtuelle Adresse eines Thunkziels ab.

IDiaSymbol::get_targetSection

Ruft den Adressteil eines Thunkziels ab.

IDiaSymbol::get_targetVirtualAddress

Ruft die virtuelle Adresse eines Thunkziels ab.

IDiaSymbol::get_textureSlot

Ruft den Beschaffenheitsslot ab.

IDiaSymbol::get_thisAdjust

Ruft das logische this-Anpassungselement für die Methode ab.

IDiaSymbol::get_thunkOrdinal

Ruft den Thunktyp einer Funktion ab.

IDiaSymbol::get_timeStamp

Ruft den Zeitstempel der zugrunde liegenden ausführbaren Datei ab.

IDiaSymbol::get_token

Ruft das Metadatentoken für eine verwaltete Funktion oder Variable ab.

IDiaSymbol::get_type

Ruft einen Verweis auf die Funktionssignatur ab.

IDiaSymbol::get_typeId

Ruft den Typenbezeichner des Symbols ab.

IDiaSymbol::get_types

Ruft ein Array von compilerspezifischen Typwerten für dieses Symbol ab.

IDiaSymbol::get_typeIds

Ruft ein Array von compilerspezifischen Typbezeichnerwerten für dieses Symbol ab.

IDiaSymbol::get_uavSlot

Ruft den uav-Slot ab.

IDiaSymbol::get_udtKind

Ruft die Auswahl für einen benutzerdefinierten Typ ab.

IDiaSymbol::get_unalignedType

Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp nicht ausgerichtet ist.

IDiaSymbol::get_undecoratedName

Ruft den nicht ergänzten Namen für einen ergänzten C++-Namen (oder Bindungsnamen) ab.

IDiaSymbol::get_undecoratedNameEx

Erweiterung der get_undecoratedName-Methode, die den nicht ergänzten Namen auf Grundlage des Werts eines Erweiterungsfeldes abruft.

IDiaSymbol::get_unmodifiedTypeId

Ruft die ID des ursprünglichen (unveränderten) Typ ab.

IDiaSymbol::get_upperBound

Ruft die obere Grenze einer FORTRAN-Arraydimension ab.

IDiaSymbol::get_upperBoundId

Ruft den Symbolbezeichner der oberen Grenze einer FORTRAN-Arraydimension ab.

IDiaSymbol::get_value

Ruft den Wert einer Konstanten ab.

IDiaSymbol::get_virtual

Ruft ein Flag ab, das angibt, ob die Funktion virtuell ist.

IDiaSymbol::get_virtualAddress

Ruft die virtuelle Adresse des Speicherorts ab.

IDiaSymbol::get_virtualBaseClass

Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp eine virtuelle Basisklasse ist.

IDiaSymbol::get_virtualBaseDispIndex

Ruft den Index für die virtuelle Basisverschiebungstabelle ab.

IDiaSymbol::get_virtualBaseOffset

Ruft den Offset in der virtuellen Funktionstabelle einer virtuellen Funktion ab.

IDiaSymbol::get_virtualBasePointerOffset

Ruft den Offset des virtuellen Basiszeigers ab.

IDiaSymbol::get_virtualBaseTableType

Ruft den Typ eines virtuellen Basistabellenzeigers ab.

IDiaSymbol::get_virtualTableShape

Ruft die Symboloberfläche des Typs der virtuellen Tabelle für einen benutzerdefinierten Typ ab.

IDiaSymbol::get_virtualTableShapeId

Ruft den Formbezeichner der virtuellen Tabelle für das Symbol ab.

IDiaSymbol::get_volatileType

Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp veränderlich ist.

Hinweise

Hinweise für Aufrufer

Rufen Sie diese Schnittstelle ab, indem Sie eine der folgenden Methoden aufrufen:

Beispiel

Dieses Beispiel zeigt, wie die lokalen Variablen für eine Funktion an der angegebenen relativen virtuellen Adresse angezeigt werden.Darüber hinaus wird gezeigt, wie Symbole verschiedener Typen miteinander verknüpft sind.

HinweisHinweis

CDiaBSTR ist eine Klasse, die ein BSTR umbricht und automatisch die Freigabe der Zeichenfolge behandelt, wenn die Instanziierung den Gültigkeitsbereich verlässt.

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

Anforderungen

Header: Dia2.h

Bibliothek: diaguids.lib

DLL: msdia80.dll

Siehe auch

Referenz

IDiaEnumSymbolsByAddr

IDiaEnumSymbols

IDiaSession

Klassenhierarchie der Symboltypen

Compiland

Weitere Ressourcen

Schnittstellen (Debug Interface Access SDK)

Symbole und Symboltags