Freigeben über


IDiaSession

Stellt einen Abfragekontext für Debugsymbole bereit.

Syntax

IDiaSession : IUnknown

Methodik

In der folgenden Tabelle sind die Methoden von IDiaSessionaufgefü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

Siehe auch