Freigeben über


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

Weitere Informationen