IDiaSymbol
Beschreibt die Eigenschaften einer Symbolinstanz.
IDiaSymbol : IUnknown
Methoden in alphabetischer Reihenfolge
Die folgende Tabelle zeigt die IDiaSymbol-Methoden.
Hinweis |
---|
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 |
---|---|
Ruft alle untergeordneten Elemente des Symbols ab. |
|
Ruft die untergeordneten Elemente des Symbols ab.Diese Methode ist die erweiterte Version von IDiaSymbol::findChildren. |
|
Ruft die untergeordneten Elemente des Symbols ab, die an einer angegebenen Adresse gültig sind. |
|
Ruft die untergeordneten Elemente des Symbols ab, die an einer angegebenen relativen virtuellen Adresse gültig sind. |
|
Ruft die untergeordneten Elemente des Symbols ab, die an einer angegebenen virtuellen Adresse gültig sind. |
|
Ruft eine Enumeration ab, die einem Client ermöglicht, um alle inline Frames auf einer angegebenen Adresse zu durchlaufen. |
|
Ruft eine Enumeration ab, die einem Client ermöglicht, um alle inline Frames auf einer angegebenen relativen virtuellen Adresse RVA () zu durchlaufen. |
|
Ruft eine Enumeration ab, die einem Client ermöglicht, um alle inline Frames auf einer angegebenen virtuellen Adresse (VA) zu durchlaufen. |
|
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. |
|
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. |
|
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 (). |
|
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). |
|
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. |
|
Gibt die Anzahl der Zugriffstastenzeigertags in der AMP-Stubfunktion einer C++-Datei zurück. |
|
Gibt alle Zugriffstastenzeigertagwerte zurück, die zur AMPzugriffstasten-Stubfunktion einer C++-Datei entsprechen. |
|
Ruft den Zugriffsmodifizierer eines Klassenmembers ab. |
|
Ruft den Offsetteil einer Adresse ab. |
|
Ruft den Abschnittsteil einer Adresse ab. |
|
Ruft ein Flag ab, das angibt, ob ein anderes Symbol diese Adresse referenziert. |
|
Ruft den Wert des Alters einer Programmdatenbank ab. |
|
Ruft den Symbolbezeichner des Arrayindextyps ab. |
|
Ruft den Bezeichner des Arrayindextyps für das Symbol ab. |
|
Ruft die Back-End-Hauptversionsnummer ab. |
|
Ruft die Back-End-Nebenversionsnummer ab. |
|
Ruft die Back-End-Buildnummer ab. |
|
Ruft den Datenoffset ab. |
|
Ruft den grundlegenden Datenslot ab. |
|
Ruft das Symbol ab, von dem der Zeiger basiert. |
|
Ruft die Symbol ID ab, von der der Zeiger basiert. |
|
Ruft das Typtag eines einfachen Typs ab. |
|
Ruft die Bitposition eines Speicherorts ab. |
|
Ruft eine integrierte Art HLSL-Typ ab. |
|
Gibt einen Indikator einer Methodenaufrufkonvention zurück. |
|
Ruft einen Verweis auf die dem Symbol übergeordnete Klasse ab. |
|
Ruft den übergeordneten Klassenbezeichner des Symbols ab. |
|
Ruft ein Flag ab, das angibt, ob das Symbol auf eine Codeadresse verweist. |
|
Ruft ein Flag ab, das angibt, ob das Symbol vom Compiler generiert wurde. |
|
Ruft den Namen des Compilers ab, der verwendet wird, um Compiland zu erstellen. |
|
Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp über einen Konstruktor verfügt. |
|
Ruft das enthaltende Symbol dieses Symbols ab. |
|
Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp konstant ist. |
|
Ruft die Anzahl der Elemente in einer Liste oder einem Array ab. |
|
Ruft die Anzahl der gültigen Adressbereiche ab, die dem lokalen Symbol zugeordnet sind. |
|
Ruft ein Flag ab, ob die Funktion eine benutzerdefinierte Aufrufkonvention verwendet. |
|
Ruft die Datenbytes eines OEM-Symbols ab. |
|
Ruft die variable Klassifizierung eines Datensymbols ab. |
|
Ruft das Flag ab, das die Funktionen zum Bearbeiten und Fortfahren für das kompilierte Programm bzw. die kompilierte Einheit beschreibt. |
|
Ruft ein Flag ab, ob die Funktion ein weit beendet werden verwendet. |
|
Ruft die Front-End-Hauptversionsnummer ab. |
|
Ruft die Front-End-Nebenversionsnummer ab. |
|
Ruft die Front-End-Buildnummer ab. |
|
Ruft ein Flag ab, das angibt, ob das öffentliche Symbol auf eine Funktion verweist. |
|
Ruft die GUID des Symbols ab. |
|
Ruft ein Flag ab, ob die Funktion einen Aufruf alloca enthält. |
|
Ruft ein Flag ab, das angibt, ob für den benutzerdefinierten Datentyp Zuweisungsoperatoren definiert sind. |
|
Ruft ein Flag ab, das angibt, ob für den benutzerdefinierten Datentyp Umwandlungsoperatoren definiert sind. |
|
Ruft ein Flag ab, ob die Kompiliereinheit alle Debuginformationen enthält. |
|
Ruft ein Flag ab, ob die Funktion Ausnahmehandler eine ++-style verfügt. |
|
Ruft ein Flag ab, ob die Funktion einen asynchronen Ausnahmehandler enthält. |
|
Ruft ein Flag ab, ob die Funktion Inlineassembly verfügt. |
|
Ruft ein Flag ab, ob die Funktion einen longjmp Befehl enthält (Teil Ausnahmebehandlung im C-Format). |
|
Ruft ein Flag ab, das angibt, ob das Modul verwalteten Code enthält. |
|
Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp Definitionen des geschachtelten Typs enthält. |
|
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). |
|
Ruft ein Flag ab, ob die Funktion Win32-Anwendungsmanifest strukturierte Ausnahmebehandlung verfügt. |
|
Ruft ein Flag ab, ob die Funktion einen setjmp Befehl enthält. |
|
Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp eine indirekte virtuelle Basisklasse ist. |
|
Ruft ein Flag ab, ob die Funktion inline mit dem Attribut markiert wurde. |
|
Ruft ein Flag ab, ob die Funktion eine Rückgabe von der Unterbrechungsanweisung verfügt. |
|
Ruft ein Flag ab, das angibt, ob die Funktion die virtuelle Funktion der Basisklasse ist. |
|
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. |
|
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. |
|
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. |
|
Ruft ein Flag ab, ob die Daten Teil eines Aggregats vieler Symbole sind. |
|
Ruft ein Flag ab, ob die Symboldatei C enthält. |
|
Ruft ein Flag ab, ob das Modul von der allgemeinen Intermediate Language (CIL) in systemeigenen Code konvertiert wurde. |
|
Ruft ein Flag ab, ob die Elemente eines benutzerdefinierten Datentyps zu einer bestimmten Begrenzung ausgerichtet sind. |
|
Gibt an, ob dieses Symbol Daten High-Level Shader Languages (HLSL) darstellt. |
|
Ruft ein Flag ab, das angibt, ob das Modul mit dem /hotpatch (Erstellen eines Hotpatch-fähigen Abbildes)-Compilerschalter kompiliert wurde. |
|
Ruft ein Flag ab, ob die verwaltete Kompiliereinheit mit dem LTCG des Linkers verknüpft wurde. |
|
Gibt an, ob die Matrix Zeilenmajor ist. |
|
Ruft ein Flag ab, ob die verwaltete Kompiliereinheit A. ist.netmodule (nur Metadaten enthalten). |
|
Gibt an, ob der this Zeiger auf einen Datenmember mit Mehrfachvererbung zeigt. |
|
Ruft ein Flag ab, ob die Funktion nackt (C++) das Attribut verfügt. |
|
Gibt an, ob die Variable weg optimiert ist. |
|
Gibt an, ob der this Zeiger auf Grundlage eines Symbolwert ist. |
|
Gibt an, ob dieses Symbol ein Zeiger auf einen Datenmember ist. |
|
Gibt an, ob dieses Symbol ein Zeiger auf eine Memberfunktion ist. |
|
Gibt an, ob die Variable einen Rückgabewert enthält. |
|
Gibt an, ob das Modul mit der Option /SDL- kompiliert wird. |
|
Gibt an, ob der this Zeiger auf einen Datenmember mit einzelner Vererbung zeigt. |
|
Ruft ein Flag ab, ob die Daten in ein Aggregat von separaten Symbolen geteilt wurden. |
|
Ruft ein Flag ab, das angibt, ob eine Funktion- oder eine Thunkebene statisch ist. |
|
Ruft ein Flag ab, ob private Symbole aus der Symboldatei entfernt wurden. |
|
Gibt an, ob der this Zeiger auf einen Datenmember mit virtueller Vererbung zeigt. |
|
Ruft die Sprache der Quelle ab. |
|
Ruft die Anzahl der Bytes des Arbeitsspeichers ab, die von dem Objekt verwendet werden, das durch dieses Symbol dargestellt wird. |
|
Ruft einen Verweis auf das dem Symbol übergeordnete lexikalische Element ab. |
|
Ruft den übergeordneten lexikalischen Bezeichner des Symbols ab. |
|
Ruft den Dateinamen der Bibliothek oder Objektdatei ab, aus der das Objekt geladen wurde. |
|
Gibt die Länge des Adressbereichs zurück, in dem das lokale Symbol gültig ist. |
|
Gibt den Abschnittsteil des Startadressenbereichs zurück, in dem das lokale Symbol gültig ist. |
|
Gibt den Offsetteil des Startadressenbereichs zurück, in dem das lokale Symbol gültig ist. |
|
Gibt den Anfang des Adressbereichs zurück, in dem das lokale Symbol gültig ist. |
|
Ruft den Positionstyp eines Datensymbols ab. |
|
Ruft die untere Grenze einer FORTRAN-Arraydimension ab. |
|
Ruft den Symbolbezeichner der unteren Grenze einer FORTRAN-Arraydimension ab. |
|
Ruft den Typ des CPU-Ziels ab. |
|
Ruft ein Flag ab, das angibt, ob sich das Symbol auf verwalteten Code bezieht. |
|
Ruft die Speicherbereichsart ab. |
|
Ruft ein Flag ab, das angibt, ob das Symbol auf MSIL-Code (Microsoft Intermediate Language) verweist. |
|
Ruft den Namen des Symbols ab. |
|
Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp geschachtelt ist. |
|
Ruft ein Flag ab, ob die Funktion mit dem noinline-Attribut markiert ist. |
|
Ruft ein Flag ab, ob die Funktion mit dem noreturn-Attribut deklariert wurde. |
|
Ruft ein Flag ab, dass keine Stapelreihenfolge als Teil der Stapelpufferüberprüfung durchgeführt werden kann. |
|
Ruft ein Flag ab, ob die Funktion oder die Bezeichnung nie erreicht wird. |
|
Gibt die Anzahl der Zugriffstastenzeigertags in der AMP-Stubfunktion einer C++-Datei zurück. |
|
Ruft die Anzahl der Modifizierern ab, die dem ursprünglichen Typ angewendet werden. |
|
Ruft die Anzahl der Registerindizes ab. |
|
Ruft die Anzahl der Zeilen in der Matrix ab. |
|
Ruft die Anzahl der Spalten in der Matrix ab. |
|
Ruft den Objektdateinamen ab. |
|
Ruft den Typ des Objektzeigers für eine Klassenmethode ab. |
|
Ruft den oemId-Wert des Symbols ab. |
|
Ruft den oemSymbolId-Wert des Symbols ab. |
|
Ruft den Offset des Symbolspeicherorts ab. |
|
Ruft ein Flag ab, ob die Funktion oder die Bezeichnung optimierten Code sowie Debuginformationen enthält. |
|
Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp über überladene Konstruktoren verfügt. |
|
Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp gepackt ist. |
|
Ruft den Typ der Plattform ab, für die das Programm oder die Kompiliereinheit kompiliert wurde. |
|
Ruft ein Flag ab, das angibt, ob die Funktion rein virtuell ist. |
|
Ruft den Rang eines mehrdimensionalen FORTRAN-Arrays ab. |
|
Ruft ein Flag ab, das angibt, ob ein Zeigertyp ein Verweis ist. |
|
Ruft den Registerkennzeichner des Speicherorts ab. |
|
Ruft das Register ab. |
|
Ruft die relative virtuelle Adresse (RVA) des Speicherorts ab. |
|
Gibt an, ob der this Zeiger bezeichnet wird, wie beschränkt. |
|
Ruft den Samplerslot ab. |
|
Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp in einem nichtglobalen lexikalischen Gültigkeitsbereich angezeigt wird. |
|
Ruft den Signaturwert des Symbols ab. |
|
Ruft die Größe eines Members eines benutzerdefinierten Typs ab. |
|
Ruft die Slotnummer der Position ab. |
|
Ruft den Dateinamen der Quelldatei ab. |
|
Ruft die Quelldatei und die Zeilennummer ab, die angeben, wo ein angegebener benutzerdefinierter Typ definiert ist. |
|
Ruft den Schritt der Matrix oder des strided Arrays ab. |
|
Ruft den Vortyp ab. |
|
Ruft die ID ab Vortyp |
|
Ruft den Namen der Datei ab, aus der die Symbole geladen wurden. |
|
Ruft den eindeutigen Bezeichner des Symbols ab. |
|
Ruft den Symboltypklassifizierer ab. |
|
Ruft den Offsetteil eines Thunkziels ab. |
|
Ruft die relative virtuelle Adresse eines Thunkziels ab. |
|
Ruft den Adressteil eines Thunkziels ab. |
|
Ruft die virtuelle Adresse eines Thunkziels ab. |
|
Ruft den Beschaffenheitsslot ab. |
|
Ruft das logische this-Anpassungselement für die Methode ab. |
|
Ruft den Thunktyp einer Funktion ab. |
|
Ruft den Zeitstempel der zugrunde liegenden ausführbaren Datei ab. |
|
Ruft das Metadatentoken für eine verwaltete Funktion oder Variable ab. |
|
Ruft einen Verweis auf die Funktionssignatur ab. |
|
Ruft den Typenbezeichner des Symbols ab. |
|
Ruft ein Array von compilerspezifischen Typwerten für dieses Symbol ab. |
|
Ruft ein Array von compilerspezifischen Typbezeichnerwerten für dieses Symbol ab. |
|
Ruft den uav-Slot ab. |
|
Ruft die Auswahl für einen benutzerdefinierten Typ ab. |
|
Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp nicht ausgerichtet ist. |
|
Ruft den nicht ergänzten Namen für einen ergänzten C++-Namen (oder Bindungsnamen) ab. |
|
Erweiterung der get_undecoratedName-Methode, die den nicht ergänzten Namen auf Grundlage des Werts eines Erweiterungsfeldes abruft. |
|
Ruft die ID des ursprünglichen (unveränderten) Typ ab. |
|
Ruft die obere Grenze einer FORTRAN-Arraydimension ab. |
|
Ruft den Symbolbezeichner der oberen Grenze einer FORTRAN-Arraydimension ab. |
|
Ruft den Wert einer Konstanten ab. |
|
Ruft ein Flag ab, das angibt, ob die Funktion virtuell ist. |
|
Ruft die virtuelle Adresse des Speicherorts ab. |
|
Ruft ein Flag ab, das angibt, ob der benutzerdefinierte Datentyp eine virtuelle Basisklasse ist. |
|
Ruft den Index für die virtuelle Basisverschiebungstabelle ab. |
|
Ruft den Offset in der virtuellen Funktionstabelle einer virtuellen Funktion ab. |
|
Ruft den Offset des virtuellen Basiszeigers ab. |
|
Ruft den Typ eines virtuellen Basistabellenzeigers ab. |
|
Ruft die Symboloberfläche des Typs der virtuellen Tabelle für einen benutzerdefinierten Typ ab. |
|
Ruft den Formbezeichner der virtuellen Tabelle für das Symbol ab. |
|
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.
Hinweis |
---|
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
Klassenhierarchie der Symboltypen