IDiaSession
Stellt einen Abfragekontext für Debugsymbole bereit.
Syntax
IDiaSession : IUnknown
Methoden
In der folgenden Tabelle sind die Methoden von IDiaSession
aufgeführt.
Methode | Beschreibung |
---|---|
IDiaSession::get_loadAddress |
Ruft die Ladeadresse für die ausführbare Datei ab, die den Symbolen in diesem Symbolspeicher entspricht. Dies ist derselbe Wert, der an die put_loadAddress -Methode übergeben wurde. |
IDiaSession::put_loadAddress |
Legt die Ladeadresse für die ausführbare Datei fest, die den Symbolen in diesem Symbolspeicher entspricht. Hinweis: Es ist wichtig, diese Methode aufzurufen, wenn Sie ein IDiaSession -Objekt abrufen und bevor Sie mit der Verwendung des Objekts beginnen. |
IDiaSession::get_globalScope |
Ruft einen Verweis auf den globalen Bereich ab. |
IDiaSession::getEnumTables |
Ruft einen Enumerator für alle Tabellen ab, die im Symbolspeicher enthalten sind. |
IDiaSession::getSymbolsByAddr |
Ruft einen Enumerator für alle benannten Symbole an statischen Speicherorten ab. |
IDiaSession::findChildren |
Ruft alle untergeordneten Elemente eines angegebenen übergeordneten Bezeichners ab, die mit dem Namen und Symboltyp übereinstimmen. |
IDiaSession::findChildrenEx |
Ruft alle untergeordneten Elemente eines angegebenen übergeordneten Bezeichners ab, der dem Namen und dem Symboltyp entspricht, einschließlich optimierter Lokaler. |
IDiaSession::findChildrenExByAddr |
Ruft alle untergeordneten Elemente eines angegebenen übergeordneten Bezeichners ab, der dem Namen und Symboltyp entspricht, einschließlich optimierter Lokaler, die eine angegebene Adresse enthält oder am nächsten ist. |
IDiaSession::findChildrenExByVA |
Ruft alle untergeordneten Elemente eines angegebenen übergeordneten Bezeichners ab, der dem Namen und Symboltyp entspricht, einschließlich optimierter Lokaler, die eine angegebene virtuelle Adresse (VA) enthält oder am nächsten ist. |
IDiaSession::findChildrenExByRVA |
Ruft alle untergeordneten Elemente eines angegebenen übergeordneten Bezeichners ab, der dem Namen und Symboltyp entspricht, einschließlich optimierter Lokaler, die eine angegebene relative virtuelle Adresse (RVA) enthält oder am nächsten ist. |
IDiaSession::findSymbolByAddr |
Ruft einen angegebenen Symboltyp ab, der eine angegebene Adresse enthält oder dieser am nächsten kommt. |
IDiaSession::findSymbolByRVA |
Ruft einen angegebenen Symboltyp ab, der eine angegebene relative virtuelle Adresse (RVA) enthält oder dieser am nächsten kommt. |
IDiaSession::findSymbolByVA |
Ruft einen angegebenen Symboltyp ab, der eine angegebene virtuelle Adresse (VA) enthält oder dieser am nächsten kommt. |
IDiaSession::findSymbolByToken |
Ruft das Symbol ab, das ein angegebenes Metadatentoken enthält. |
IDiaSession::symsAreEquiv |
Überprüft, ob zwei Symbole gleichwertig sind. |
IDiaSession::symbolById |
Ruft ein Symbol anhand seines eindeutigen Bezeichners ab. |
IDiaSession::findSymbolByRVAEx |
Ruft einen angegebenen Symboltyp ab, der eine angegebene relative virtuelle Adresse und einen Offset enthält oder dieser/m am nächsten kommt. |
IDiaSession::findSymbolByVAEx |
Ruft einen angegebenen Symboltyp ab, der eine angegebene virtuelle Adresse und einen Offset enthält oder dieser/m am nächsten kommt. |
IDiaSession::findFile |
Ruft eine Quelldatei anhand der Kompiliereinheit und des Namens ab. |
IDiaSession::findFileById |
Ruft eine Quelldatei anhand des Quelldateibezeichners ab. |
IDiaSession::findLines |
Ruft Zeilennummern innerhalb einer angegebenen Kompiliereinheit und eines Quelldateibezeichners ab. |
IDiaSession::findLinesByAddr |
Ruft die Zeilen in einer angegebenen Kompiliereinheit ab, die eine angegebene Adresse enthalten. |
IDiaSession::findLinesByRVA |
Ruft die Zeilen in einer angegebenen Kompiliereinheit ab, die eine angegebene relative virtuelle Adresse enthalten. |
IDiaSession::findLinesByVA |
Sucht die Zeilennummerninformationen für Zeilen, die in einem angegebenen Adressbereich enthalten sind. |
IDiaSession::findLinesByLinenum |
Ruft die Zeilen in einer angegebenen Kompiliereinheit anhand der Quelldatei und Zeilennummer ab. |
IDiaSession::findInjectedSource |
Ruft eine im Symbolspeicher abgelegte Quelle anhand der Attributanbieter oder anderer Komponenten des Kompilierungsprozesses ab. |
IDiaSession::getEnumDebugStreams |
Ruft eine Aufzählungssequenz von Debugdatenströmen ab. |
IDiaSession::findInlineFramesByAddr |
Ruft eine Enumeration ab, mit der ein Client alle Inline-Frames an einer angegebenen Adresse durchlaufen kann. |
IDiaSession::findInlineFramesByRVA |
Ruft eine Enumeration ab, mit der ein Client alle Inlineframes an einer angegebenen relativen virtuellen Adresse (RVA) durchlaufen kann. |
IDiaSession::findInlineFramesByVA |
Ruft eine Enumeration ab, mit der ein Client alle Inline-Frames an einer angegebenen virtuellen Adresse durchlaufen kann. |
IDiaSession::findInlineeLines |
Ruft eine Enumeration ab, mit der ein Client die Zeilennummerninformationen aller Funktionen durchlaufen kann, die direkt oder indirekt inline in dem übergeordneten Symbol vorhanden sind. |
IDiaSession::findInlineeLinesByAddr |
Ruft eine Enumeration ab, mit der ein Client die Zeilennummerninformationen aller Funktionen durchlaufen kann, die direkt oder indirekt inline in diesem übergeordneten Symbol und innerhalb des angegebenen Adressbereichs vorhanden sind. |
IDiaSession::findInlineeLinesByRVA |
Ruft eine Enumeration ab, mit der ein Client die Zeilennummerninformationen aller Funktionen durchlaufen kann, die direkt oder indirekt inline in diesem übergeordneten Symbol und innerhalb der angegebenen relativen virtuellen Adresse (RVA) vorhanden sind. |
IDiaSession::findInlineeLinesByVA |
Ruft eine Enumeration ab, mit der ein Client die Zeilennummerninformationen aller Funktionen durchlaufen kann, die direkt oder indirekt inline in diesem übergeordneten Symbol und innerhalb der angegebenen virtuellen Adresse (VA) vorhanden sind. |
IDiaSession::findInlineeLinesByLinenum |
Ruft eine Enumeration ab, mit der ein Client die Zeilennummerninformationen aller Funktionen durchlaufen kann, die direkt oder indirekt inline in der angegebenen Quelldatei und Zeilennummer vorhanden sind. |
IDiaSession::findInlineesByName |
Ruft eine Enumeration ab, die es einem Client ermöglicht, die Zeilennummerninformationen aller Inline-Funktionen zu durchlaufen, die einem angegebenen Namen entsprechen. |
IDiaSession::findAcceleratorInlineesByLinenum |
Gibt eine Enumeration von Symbolen für Inline-Frames zurück, die dem angegebenen Quellspeicherort entsprechen. |
IDiaSession::findSymbolsForAcceleratorPointerTag |
Gibt eine Enumeration von Symbolen für die Variable zurück, der der angegebene Tagwert in der übergeordneten Beschleuniger-Stubfunktion entspricht. |
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag |
Bei einem entsprechenden Tagwert gibt diese Methode eine Enumeration von Symbolen zurück, die in einer angegebenen übergeordneten Beschleuniger-Stubfunktion an einer angegebenen relativen virtuellen Adresse enthalten sind. |
IDiaSession::findAcceleratorInlineesByName |
Gibt eine Enumeration von Symbolen für Inline-Frames zurück, die dem angegebenen Inline-Funktionsnamen entsprechen. |
IDiaSession::addressForVA |
Gibt die entsprechende Adresse für die angegebene virtuelle Adresse (VA) zurück. |
IDiaSession::addressForRVA |
Gibt die entsprechende Adresse für die angegebene relative virtuelle Adresse (RVA) zurück. |
IDiaSession::findILOffsetsByAddr |
Ruft eine Aufzählung ab, mit der ein Client die MSIL-Offsets innerhalb eines angegebenen Adressbereichs durchlaufen kann. |
IDiaSession::findILOffsetsByRVA |
Ruft eine Aufzählung ab, mit der ein Client die MSIL-Offsets innerhalb eines angegebenen relativen virtuellen Adressbereichs (RVA) durchlaufen kann. |
IDiaSession::findILOffsetsByVA |
Ruft eine Aufzählung ab, mit der ein Client die MSIL-Offsets innerhalb eines angegebenen virtuellen Adressbereichs (VA) durchlaufen kann. |
IDiaSession::findInputAssemblyFiles |
Ruft eine Aufzählung ab, mit der ein Client die .NET Native-Eingabeassemblydateien durchlaufen kann. |
IDiaSession::findInputAssembly |
Ruft eine .NET Native-Eingabeassemblydatei nach Index ab. |
IDiaSession::findInputAssemblyById |
Ruft die .NET Native-Eingabeassemblydatei anhand eines eindeutigen Bezeichners ab. |
IDiaSession::getFuncMDTokenMapSize |
Ruft die Größe des .NET Native-Metadatenfunktionstokens in Bytes ab. |
IDiaSession::getFuncMDTokenMap |
Ruft den Inhalt der .NET Native-Metadatenfunktionstokenzuordnung ab. |
IDiaSession::getTypeMDTokenMapSize |
Ruft die Größe des .NET Native-Metadatentyptokens in Bytes ab. |
IDiaSession::getTypeMDTokenMap |
Ruft den Inhalt der .NET Native-Metadatentyptokenzuordnung ab. |
IDiaSession::getNumberOfFunctionFragments_VA |
Ruft die Anzahl nicht zusammenhängender Fragmente für die Funktion an der angegebenen virtuellen Adresse (VA) ab. |
IDiaSession::getNumberOfFunctionFragments_RVA |
Ruft die Anzahl nicht zusammenhängender Fragmente für die Funktion an der angegebenen relativen virtuellen Adresse (RVA) ab. |
IDiaSession::getFunctionFragments_VA |
Ruft die Adressen und Längen nicht zusammenhängender Fragmente für die Funktion an der angegebenen virtuellen Adresse (VA) ab. |
IDiaSession::getFunctionFragments_RVA |
Ruft die Adressen und Längen nicht zusammenhängender Fragmente für die Funktion an der angegebenen relativen virtuellen Adresse (RVA) ab. |
IDiaSession::getExports |
Ruft einen Enumerator für alle exportierten Symbole ab. |
IDiaSession::getHeapAllocationSites |
Ruft einen Enumerator für alle SymTagHeapAllocationSite Symbole ab. |
IDiaSession::findInputAssemblyFile |
Ruft die .NET Native-Eingabeassemblydatei ab, die das übergeordnete Element des angegebenen Symbols ist. |
Hinweise
Es ist wichtig, die Methode nach dem IDiaSession::put_loadAddress
Erstellen des IDiaSession
Objekts aufzurufen, und der an die put_loadAddress
Methode übergebene Wert muss ungleich Null sein, damit auf alle virtuellen Adresseigenschaften (VA) von Symbolen zugegriffen werden kann. Die Ladeadresse stammt aus dem Programm, das die ausführbare Datei geladen hat, die debuggt wird. Beispielsweise können Sie die Win32-Funktion GetModuleInformation
aufrufen, um die Ladeadresse für die ausführbare Datei abzurufen, wobei ein Handle für die ausführbare Datei angegeben wird.
Beispiel
In diesem Beispiel wird gezeigt, wie Sie die IDiaSession
Schnittstelle als Teil einer allgemeinen Initialisierung des DEBUG Interface Access (DIA)-SDKs abrufen.
CComPtr<IDiaDataSource> pSource;
ComPtr<IDiaSession> psession;
void InitializeDIA(const char *szFilename)
{
HRESULT hr = CoCreateInstance( CLSID_DiaSource,
NULL,
CLSCTX_INPROC_SERVER,
__uuidof( IDiaDataSource ),
(void **) &pSource);
if (FAILED(hr))
{
Fatal("Could not CoCreate CLSID_DiaSource. Register msdia80.dll." );
}
wchar_t wszFilename[ _MAX_PATH ];
mbstowcs( wszFilename,
szFilename,
sizeof( wszFilename )/sizeof( wszFilename[0] ) );
if ( FAILED( pSource->loadDataFromPdb( wszFilename ) ) )
{
if ( FAILED( pSource->loadDataForExe( wszFilename, NULL, NULL ) ) )
{
Fatal( "loadDataFromPdb/Exe" );
}
}
if ( FAILED( pSource->openSession( &psession ) ) )
{
Fatal( "openSession" );
}
}
Anforderungen
Header: Dia2.h
Bibliothek: diaguids.lib
DLL: msdia80.dll