Freigeben über


IDiaSession

Stellt einen Abfragekontext für Debugsymbole bereit.

IDiaSession : IUnknown

Methoden

Die folgende Tabelle zeigt die IDiaSession-Methoden.

Methode

Description

IDiaSession::get_loadAddress

Ruft die Ladeadresse der ausführbaren Datei ab, die den Symbolen in diesem Symbolspeicher entspricht.Dies ist der gleiche Wert, der an die put_loadAddress-Methode übergeben wurde.

IDiaSession::put_loadAddress

Legt die Ladeadresse der ausführbaren Datei fest, die den Symbolen in diesem Symbolspeicher entspricht.

HinweisHinweis
Es ist wichtig, diese Methode aufrufen, wenn Sie ein IDiaSession-Objekt abrufen, und bevor Sie anfangen, das Objekt zu verwenden.

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 dem Namen und Symboltyp entsprechen.

IDiaSession::findSymbolByAddr

Ruft einen bestimmten Symboltyp ab, der eine angegebene Adresse enthält oder dieser am nächsten kommt.

IDiaSession::findSymbolByRVA

Ruft einen bestimmten Symboltyp ab, der eine angegebene relative virtuelle Adresse enthält oder dieser am nächsten kommt.

IDiaSession::findSymbolByVA

Ruft einen bestimmten Symboltyp ab, der eine angegebene virtuelle Adresse enthält oder dieser am nächsten kommt.

IDiaSession::findSymbolByToken

Ruft das Symbol ab, das das angegebene Metadatentoken enthält.

IDiaSession::symsAreEquiv

Überprüft, ob zwei Symbole übereinstimmen.

IDiaSession::symbolById

Ruft ein Symbol anhand des eindeutigen Bezeichners ab.

IDiaSession::findSymbolByRVAEx

Ruft einen bestimmten Symboltyp ab, der eine angegebene relative virtuelle Adresse und einen Offset enthält oder diesen am nächsten kommt.

IDiaSession::findSymbolByVAEx

Ruft einen bestimmten Symboltyp ab, der eine angegebene virtuelle Adresse und einen Offset enthält oder diesen am nächsten kommt.

IDiaSession::findFile

Ruft eine Quelldatei nach Kompiliereinheit und Namen ab.

IDiaSession::findFileById

Ruft eine Quelldatei nach Bezeichner der Quelldatei ab.

IDiaSession::findLines

Ruft die Zeilennummern innerhalb eines angegebenen Kompiliereinheits- und Quelldateibezeichners ab.

IDiaSession::findLinesByAddr

Ruft die Zeilen in einer bestimmten Kompiliereinheit ab, die eine angegebene Adresse enthalten.

IDiaSession::findLinesByRVA

Ruft die Zeilen in einer bestimmten Kompiliereinheit ab, die eine angegebene relative virtuelle Adresse enthalten.

IDiaSession::findLinesByVA

Durchsucht die Zeilennummerninformationen nach Zeilen, die in einem bestimmten Adressbereich enthalten sind.

IDiaSession::findLinesByLinenum

Ruft die Zeilen in einer bestimmten Kompiliereinheit nach Quelldatei und Zeilennummer ab.

IDiaSession::findInjectedSource

Ruft eine Quelle ab, die im Symbolspeicher abgelegt wurde, und zwar nach Attributanbieter oder anderen Komponenten des Kompilierungsprozesses.

IDiaSession::getEnumDebugStreams

Ruft eine aufgelistete Sequenz von Debugdatenstreams ab.

IDiaSession::findInlineFramesByAddr

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

IDiaSession::findInlineFramesByRVA

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

IDiaSession::findInlineFramesByVA

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

IDiaSession::findInlineeLines

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

IDiaSession::findInlineeLinesByAddr

Ruft eine Enumeration ab, die einem Client ermöglicht, durch die Zeilennummerninformationen aller Funktionen direkt oder indirekt zu durchlaufen, die inline sind, durch das angegebene Symbol und Elemente innerhalb des angegebenen Adressbereichs enthalten ist.

IDiaSession::findInlineeLinesByRVA

Ruft eine Enumeration ab, die einem Client ermöglicht, durch die Zeilennummerninformationen aller Funktionen direkt oder indirekt zu durchlaufen, die inline sind, durch das angegebene Symbol und Elemente innerhalb der angegebenen relativen virtuellen Adresse RVA () enthalten ist.

IDiaSession::findInlineeLinesByVA

Ruft eine Enumeration ab, die einem Client ermöglicht, durch die Zeilennummerninformationen aller Funktionen direkt oder indirekt zu durchlaufen, die inline sind, durch das angegebene Symbol und Elemente innerhalb der angegebenen virtuellen Adresse (VA) enthalten ist.

IDiaSession::findInlineeLinesByLinenum

Ruft eine Enumeration ab, die einem Client ermöglicht, durch die Zeilennummerninformationen aller Funktionen direkt oder indirekt zu durchlaufen, die inline sind, in der Quelldatei angegebenen und der Zeilennummer.

IDiaSession::findInlineesByName

Ruft eine Enumeration ab, die einem Client ermöglicht, durch die Zeilennummerninformationen aller Inlinefunktionen zu durchlaufen, die einen angegebenen Namen übereinstimmen.

IDiaSession::findSymbolsForAcceleratorPointerTag

Gibt eine Enumeration von Symbolen für die Variablen zurückgegeben, dass der angegebene Tagwert in der übergeordneten Zugriffstastenstubfunktion entspricht.

IDiaSession::findSymbolsByRVAForAcceleratorPointerTag

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

IDiaSession::findAcceleratorInlineesByName

Gibt eine Enumeration von Symbolen für inline Frames gemäß dem angegebenen Inlinefunktionsnamen zurück.

IDiaSession::findAcceleratorInlineesByLinenum

Gibt eine Enumeration von Symbolen für inline Frames zurück, die dem angegebenen Quellspeicherort entsprechen.

Hinweise

Es ist wichtig, die IDiaSession::put_loadAddress-Methode aufrufen, nachdem das IDiaSession-Objekt erstellt wurde — und der Wert, der der put_loadAddress-Methode übergeben wird, muss ungleich NULL sein — damit alle Eigenschaften der virtuellen Adresse (VA) von Symbolen zugreifbar sind.Die Ladeadresse stammt von dem Programm, das die zum Debugging vorgesehene, ausführbare Datei geladen hat.Beispielsweise können Sie die Win32-Funktion GetModuleInformation aufrufen, um die Ladeadresse für die ausführbare Datei abzurufen, wenn ein Handle zur ausführbaren Datei gegeben ist.

Beispiel

Dieses Beispiel veranschaulicht, wie die IDiaSession-Schnittstelle als Teil einer allgemeinen Initialisierung des DIAS SDK abgerufen wird.

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

Siehe auch

Aufgaben

Abfragen der PDB-Datei

Referenz

Exe

IDiaAddressMap

IDiaDataSource

IDiaDataSource::openSession

IDiaSymbol::findChildren

Weitere Ressourcen

Schnittstellen (Debug Interface Access SDK)

Übersicht (Debug Interface Access SDK)