IDiaSession
Stellt einen Abfragekontext für Debugsymbole bereit.
Syntax
IDiaSession : IUnknown
Methodik
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 Positionen ab. |
IDiaSession::findChildren |
Ruft alle untergeordneten Elemente eines angegebenen übergeordneten Bezeichners ab, der dem Namen und dem Symboltyp entspricht. |
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 am nächsten ist. |
IDiaSession::findSymbolByRVA |
Ruft einen angegebenen Symboltyp ab, der eine angegebene relative virtuelle Adresse (RVA) enthält oder am nächsten ist. |
IDiaSession::findSymbolByVA |
Ruft einen angegebenen Symboltyp ab, der eine angegebene virtuelle Adresse (VA) enthält oder am nächsten ist. |
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 am nächsten ist. |
IDiaSession::findSymbolByVAEx |
Ruft einen angegebenen Symboltyp ab, der eine angegebene virtuelle Adresse und einen Offset enthält oder am nächsten ist. |
IDiaSession::findFile |
Ruft eine Quelldatei anhand von Compiland und Name ab. |
IDiaSession::findFileById |
Ruft eine Quelldatei anhand des Quelldateibezeichners ab. |
IDiaSession::findLines |
Ruft Zeilennummern innerhalb eines angegebenen Compiland- und Quelldateibezeichners ab. |
IDiaSession::findLinesByAddr |
Ruft die Zeilen in einem angegebenen Kompiland ab, das eine angegebene Adresse enthält. |
IDiaSession::findLinesByRVA |
Ruft die Zeilen in einem angegebenen Kompiland ab, das eine angegebene relative virtuelle Adresse enthält. |
IDiaSession::findLinesByVA |
Sucht die Zeilennummerninformationen für Zeilen, die in einem angegebenen Adressbereich enthalten sind. |
IDiaSession::findLinesByLinenum |
Ruft die Zeilen in einem angegebenen Kompiland nach Quelldatei und Zeilennummer ab. |
IDiaSession::findInjectedSource |
Ruft eine Quelle ab, die von Attributanbietern oder anderen Komponenten des Kompilierungsprozesses in den Symbolspeicher eingefügt wurde. |
IDiaSession::getEnumDebugStreams |
Ruft eine aufgezählte Sequenz von Debugdatenströmen ab. |
IDiaSession::findInlineFramesByAddr |
Ruft eine Aufzählung ab, mit der ein Client alle Inlineframes einer bestimmten Adresse durchlaufen kann. |
IDiaSession::findInlineFramesByRVA |
Ruft eine Aufzählung ab, mit der ein Client alle Inlineframes einer angegebenen relativen virtuellen Adresse (RVA) durchlaufen kann. |
IDiaSession::findInlineFramesByVA |
Ruft eine Aufzählung ab, mit der ein Client alle Inlineframes für eine angegebene virtuelle Adresse (VA) durchlaufen kann. |
IDiaSession::findInlineeLines |
Ruft eine Aufzählung ab, mit der ein Client die Zeilennummerinformationen aller Funktionen durchlaufen kann, die direkt oder indirekt durch das angegebene übergeordnete Symbol inlineiert sind. |
IDiaSession::findInlineeLinesByAddr |
Ruft eine Aufzählung ab, mit der ein Client die Zeilennummerinformationen aller Funktionen durchlaufen kann, die direkt oder indirekt durch das angegebene übergeordnete Symbol inlineiert sind und innerhalb des angegebenen Adressbereichs enthalten sind. |
IDiaSession::findInlineeLinesByRVA |
Ruft eine Aufzählung ab, mit der ein Client die Zeilennummerinformationen aller Funktionen durchlaufen kann, die direkt oder indirekt durch das angegebene übergeordnete Symbol inlineiert sind und in der angegebenen relativen virtuellen Adresse (RVA) enthalten sind. |
IDiaSession::findInlineeLinesByVA |
Ruft eine Aufzählung ab, mit der ein Client die Zeilennummerinformationen aller Funktionen durchlaufen kann, die direkt oder indirekt durch das angegebene übergeordnete Symbol inlineiert sind und in der angegebenen virtuellen Adresse (VA) enthalten sind. |
IDiaSession::findInlineeLinesByLinenum |
Ruft eine Aufzählung ab, mit der ein Client die Zeilennummerinformationen aller Funktionen durchlaufen kann, die direkt oder indirekt in der angegebenen Quelldatei und Zeilennummer inlineiert sind. |
IDiaSession::findInlineesByName |
Ruft eine Aufzählung ab, mit der ein Client die Zeilennummerinformationen aller inlineierten Funktionen durchlaufen kann, die einem angegebenen Namen entsprechen. |
IDiaSession::findAcceleratorInlineesByLinenum |
Gibt eine Aufzählung von Symbolen für Inlineframes zurück, die dem angegebenen Quellspeicherort entsprechen. |
IDiaSession::findSymbolsForAcceleratorPointerTag |
Gibt eine Aufzählung von Symbolen für die Variable zurück, der der angegebene Tagwert in der übergeordneten Accelerator-Stubfunktion entspricht. |
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag |
Aufgrund eines entsprechenden Tagwerts gibt diese Methode eine Aufzählung von Symbolen zurück, die in einer angegebenen übergeordneten Accelerator-Stubfunktion an einer angegebenen relativen virtuellen Adresse enthalten sind. |
IDiaSession::findAcceleratorInlineesByName |
Gibt eine Aufzählung von Symbolen für Inlineframes zurück, die dem angegebenen Inlinefunktionsnamen 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. |
Bemerkungen
Es ist wichtig, die IDiaSession::put_loadAddress
-Methode nach dem 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 gedebuggt wird. Sie können beispielsweise die Win32-Funktion GetModuleInformation
aufrufen, um die Ladeadresse für die ausführbare Datei abzurufen, wenn ein Handle für die ausführbare Datei angegeben ist.
Beispiel
In diesem Beispiel wird gezeigt, wie Sie die IDiaSession
Schnittstelle als Teil einer allgemeinen Initialisierung des DEBUG Interface Access (DIA) SDK 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
Kopfzeile: Dia2.h
Bibliothek: diaguids.lib
DLL: msdia80.dll