IDiaSessionIDiaSession

Stellt einen Abfrage Kontext für Debugsymbole bereit.Provides a query context for debug symbols.

SyntaxSyntax

IDiaSession : IUnknown

MethodenMethods

In der folgenden Tabelle sind die Methoden von IDiaSession aufgeführt.The following table shows the methods of IDiaSession.

MethodeMethod BeschreibungDescription
IDiaSession::get_loadAddressIDiaSession::get_loadAddress Ruft die Lade Adresse für die ausführbare Datei ab, die den Symbolen in diesem Symbol Speicher entspricht.Retrieves the load address for the executable file that corresponds to the symbols in this symbol store. Dabei handelt es sich um denselben Wert, der an die put_loadAddress-Methode übermittelt wurde.This is the same value that was passed to the put_loadAddress method.
IDiaSession::put_loadAddressIDiaSession::put_loadAddress Legt die Lade Adresse für die ausführbare Datei fest, die den Symbolen in diesem Symbol Speicher entspricht.Sets the load address for the executable file that corresponds to the symbols in this symbol store. Hinweis: Es ist wichtig, diese Methode aufzurufen, wenn Sie ein IDiaSession Objekt erhalten und bevor Sie mit der Verwendung des-Objekts beginnen.Note: It is important to call this method when you get an IDiaSession object and before you start using the object.
IDiaSession::get_globalScopeIDiaSession::get_globalScope Ruft einen Verweis auf den globalen Gültigkeitsbereich ab.Retrieves a reference to the global scope.
IDiaSession::getEnumTablesIDiaSession::getEnumTables Ruft einen Enumerator für alle Tabellen ab, die im Symbol Speicher enthalten sind.Retrieves an enumerator for all tables contained in the symbol store.
IDiaSession::getSymbolsByAddrIDiaSession::getSymbolsByAddr Ruft einen Enumerator für alle benannten Symbole an statischen Speicherorten ab.Retrieves an enumerator for all named symbols at static locations.
IDiaSession::findChildrenIDiaSession::findChildren Ruft alle untergeordneten Elemente eines angegebenen übergeordneten Bezeichners ab, die dem Namen und dem Symboltyp entsprechen.Retrieves all children of a specified parent identifier that match the name and symbol type.
IDiaSession::findSymbolByAddrIDiaSession::findSymbolByAddr Ruft einen angegebenen Symboltyp ab, der eine angegebene Adresse enthält bzw. am nächsten liegt.Retrieves a specified symbol type that contains, or is closest to, a specified address.
IDiaSession::findSymbolByRVAIDiaSession::findSymbolByRVA Ruft einen angegebenen Symboltyp ab, der eine angegebene relative virtuelle Adresse (RVA) enthält oder der am nächsten liegt.Retrieves a specified symbol type that contains, or is closest to, a specified relative virtual address (RVA).
IDiaSession::findSymbolByVAIDiaSession::findSymbolByVA Ruft einen angegebenen Symboltyp ab, der eine angegebene virtuelle Adresse (VA) enthält bzw. am nächsten liegt.Retrieves a specified symbol type that contains, or is closest to, a specified virtual address (VA).
IDiaSession::findSymbolByTokenIDiaSession::findSymbolByToken Ruft das Symbol ab, das ein angegebenes Metadatentoken enthält.Retrieves the symbol that contains a specified metadata token.
IDiaSession::symsAreEquivIDiaSession::symsAreEquiv Prüft, ob zwei Symbole äquivalent sind.Checks to see if two symbols are equivalent.
IDiaSession::symbolByIdIDiaSession::symbolById Ruft ein Symbol anhand seines eindeutigen Bezeichners ab.Retrieves a symbol by its unique identifier.
IDiaSession::findSymbolByRVAExIDiaSession::findSymbolByRVAEx Ruft einen angegebenen Symboltyp ab, der eine angegebene relative virtuelle Adresse und einen angegebenen Offset enthält bzw. am nächsten liegt.Retrieves a specified symbol type that contains, or is closest to, a specified relative virtual address and offset.
IDiaSession::findSymbolByVAExIDiaSession::findSymbolByVAEx Ruft einen angegebenen Symboltyp ab, der eine angegebene virtuelle Adresse und einen angegebenen Offset enthält bzw. am nächsten liegt.Retrieves a specified symbol type that contains, or is closest to, a specified virtual address and offset.
IDiaSession::findFileIDiaSession::findFile Ruft eine Quelldatei nach dem Kompilieren und dem Namen ab.Retrieves a source file by compiland and name.
IDiaSession::findFileByIdIDiaSession::findFileById Ruft eine Quelldatei nach dem Quelldatei Bezeichner ab.Retrieves a source file by source file identifier.
IDiaSession::findLinesIDiaSession::findLines Ruft Zeilennummern innerhalb eines angegebenen Kompilierungen und Quelldatei Bezeichners ab.Retrieves line numbers within a specified compiland and source file identifier.
IDiaSession::findLinesByAddrIDiaSession::findLinesByAddr Ruft die Zeilen in einer angegebenen Kompilierungen ab, die eine angegebene Adresse enthalten.Retrieves the lines in a specified compiland that contain a specified address.
IDiaSession::findLinesByRVAIDiaSession::findLinesByRVA Ruft die Zeilen in einer angegebenen Kompilierungen ab, die eine angegebene relative virtuelle Adresse enthalten.Retrieves the lines in a specified compiland that contain a specified relative virtual address.
IDiaSession::findLinesByVAIDiaSession::findLinesByVA Sucht die Zeilennummern Informationen für Zeilen, die in einem angegebenen Adressbereich enthalten sind.Finds the line number information for lines contained in a specified address range.
IDiaSession::findLinesByLinenumIDiaSession::findLinesByLinenum Ruft die Zeilen in einer angegebenen Kompilierungen nach Quelldatei und Zeilennummer ab.Retrieves the lines in a specified compiland by source file and line number.
IDiaSession::findInjectedSourceIDiaSession::findInjectedSource Ruft eine Quelle ab, die von Attribut Anbietern oder anderen Komponenten des Kompilierungsprozesses im Symbol Speicher abgelegt wurde.Retrieves a source that has been placed into the symbol store by attribute providers or other components of the compilation process.
IDiaSession::getEnumDebugStreamsIDiaSession::getEnumDebugStreams Ruft eine aufgelistete Sequenz von Debug-Datenströmen ab.Retrieves an enumerated sequence of debug data streams.
IDiaSession::findInlineFramesByAddrIDiaSession::findInlineFramesByAddr Ruft eine Enumeration ab, mit der ein Client alle Inline Rahmen einer bestimmten Adresse durchlaufen kann.Retrieves an enumeration that allows a client to iterate through all of the inline frames on a given address.
IDiaSession::findInlineFramesByRVAIDiaSession::findInlineFramesByRVA Ruft eine Enumeration ab, mit der ein Client alle Inline Rahmen einer angegebenen relativen virtuellen Adresse (RVA) durchlaufen kann.Retrieves an enumeration that allows a client to iterate through all of the inline frames on a specified relative virtual address (RVA).
IDiaSession::findInlineFramesByVAIDiaSession::findInlineFramesByVA Ruft eine Enumeration ab, mit der ein Client alle Inline Rahmen einer angegebenen virtuellen Adresse (VA) durchlaufen kann.Retrieves an enumeration that allows a client to iterate through all of the inline frames on a specified virtual address (VA).
IDiaSession::findInlineeLinesIDiaSession::findInlineeLines Ruft eine Enumeration ab, die es einem Client ermöglicht, die Zeilennummern Informationen aller Funktionen zu durchlaufen, die direkt oder indirekt durch das angegebene übergeordnete Symbol Inline sind.Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, by the specified parent symbol.
IDiaSession::findInlineeLinesByAddrIDiaSession::findInlineeLinesByAddr Ruft eine Enumeration ab, die es einem Client ermöglicht, die Zeilennummerinformationen aller Funktionen, die direkt oder indirekt durch das angegebene übergeordnete Symbol eingebunden sind, zu durchlaufen und innerhalb des angegebenen Adress Bereichs enthalten sind.Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, by the specified parent symbol and are contained within the specified address range.
IDiaSession::findInlineeLinesByRVAIDiaSession::findInlineeLinesByRVA Ruft eine Enumeration ab, mit der ein Client die Zeilennummerinformationen aller Funktionen durchlaufen kann, die direkt oder indirekt durch das angegebene übergeordnete Symbol Inline sind und in der angegebenen relativen virtuellen Adresse (RVA) enthalten sind.Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, by the specified parent symbol and are contained within the specified relative virtual address (RVA).
IDiaSession::findInlineeLinesByVAIDiaSession::findInlineeLinesByVA Ruft eine Enumeration ab, mit der ein Client die Zeilennummerinformationen aller Funktionen, die direkt oder indirekt durch das angegebene übergeordnete Symbol eingebunden sind und in der angegebenen virtuellen Adresse (VA) enthalten sind, durchlaufen kann.Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, by the specified parent symbol and are contained within the specified virtual address (VA).
IDiaSession::findInlineeLinesByLinenumIDiaSession::findInlineeLinesByLinenum Ruft eine Enumeration ab, mit der ein Client die Zeilennummern Informationen aller Funktionen, die direkt oder indirekt in der angegebenen Quelldatei und Zeilennummer Inline sind, durchlaufen kann.Retrieves an enumeration that allows a client to iterate through the line number information of all functions that are inlined, directly or indirectly, in the specified source file and line number.
IDiaSession::findInlineesByNameIDiaSession::findInlineesByName Ruft eine Enumeration ab, die es einem Client ermöglicht, die Zeilennummern Informationen aller Inline Funktionen zu durchlaufen, die mit einem angegebenen Namen übereinstimmen.Retrieves an enumeration that allows a client to iterate through the line number information of all inlined functions that match a specified name.
IDiaSession::findSymbolsForAcceleratorPointerTagIDiaSession::findSymbolsForAcceleratorPointerTag Gibt eine Enumeration von Symbolen für die Variable zurück, der der angegebene Tagwert in der übergeordneten Accelerator-stubfunktion entspricht.Returns an enumeration of symbols for the variable that the specified tag value corresponds to in the parent Accelerator stub function.
IDiaSession::findSymbolsByRVAForAcceleratorPointerTagIDiaSession::findSymbolsByRVAForAcceleratorPointerTag Wenn ein entsprechender Tagwert angegeben ist, gibt diese Methode eine Enumeration von Symbolen zurück, die in einer angegebenen relativen virtuellen Adresse enthalten sind.Given a corresponding tag value, this method returns an enumeration of symbols that are contained in a specified parent Accelerator stub function at a specified relative virtual address.
IDiaSession::findAcceleratorInlineesByNameIDiaSession::findAcceleratorInlineesByName Gibt eine Enumeration von Symbolen für Inline Frames zurück, die dem angegebenen Inline Funktionsnamen entsprechen.Returns an enumeration of symbols for inline frames corresponding to the specified inline function name.
IDiaSession::findAcceleratorInlineesByLinenumIDiaSession::findAcceleratorInlineesByLinenum Gibt eine Enumeration von Symbolen für Inline Frames zurück, die dem angegebenen Quell Speicherort entsprechen.Returns an enumeration of symbols for inline frames that correspond to the specified source location.

HinweiseRemarks

Es ist wichtig, dass die IDiaSession::p ut_loadaddress -Methode aufgerufen wird, nachdem das IDiaSession-Objekt erstellt wurde – und der an die put_loadAddress-Methode weiter gegebene Wert muss – für alle Eigenschaften der virtuellen Adresse (VA), auf die zugegriffen werden kann, nicht NULL sein.It is important to call the IDiaSession::put_loadAddress method after creating the IDiaSession object — and the value passed to the put_loadAddress method must be non-zero — for any virtual address (VA) properties of symbols to be accessible. Die Lade Adresse stammt von dem Programm, das die zu debuggenden ausführbare Datei geladen hat.The load address comes from whatever program loaded the executable being debugged. Beispielsweise können Sie die Win32-Funktion GetModuleInformation aufrufen, um die Lade Adresse für die ausführbare Datei abzurufen, wenn ein Handle für die ausführbare Datei angegeben wird.For example, you can call the Win32 function GetModuleInformation to retrieve the load address for the executable, given a handle to the executable.

BeispielExample

Dieses Beispiel zeigt, wie Sie die IDiaSession-Schnittstelle im Rahmen einer allgemeinen Initialisierung der DIA SDK abrufen.This example shows how to obtain the IDiaSession interface as part of a general initialization of the DIA SDK.

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" );
    }
}

AnforderungenRequirements

Header: Dia2.hHeader: Dia2.h

Bibliothek: diaguids. libLibrary: diaguids.lib

DLL: msdia80.dllDLL: msdia80.dll

Siehe auchSee also