IDiaSession
Stellt einen Abfragekontext für Debugsymbole bereit.
IDiaSession : IUnknown
Methoden
Die folgende Tabelle zeigt die IDiaSession-Methoden.
Methode |
Description |
---|---|
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. |
|
Legt die Ladeadresse der ausführbaren Datei fest, die den Symbolen in diesem Symbolspeicher entspricht.
Hinweis
Es ist wichtig, diese Methode aufrufen, wenn Sie ein IDiaSession-Objekt abrufen, und bevor Sie anfangen, das Objekt zu verwenden.
|
|
Ruft einen Verweis auf den globalen Bereich ab. |
|
Ruft einen Enumerator für alle Tabellen ab, die im Symbolspeicher enthalten sind. |
|
Ruft einen Enumerator für alle benannten Symbole an statischen Speicherorten ab. |
|
Ruft alle untergeordneten Elemente eines angegebenen übergeordneten Bezeichners ab, die dem Namen und Symboltyp entsprechen. |
|
Ruft einen bestimmten Symboltyp ab, der eine angegebene Adresse enthält oder dieser am nächsten kommt. |
|
Ruft einen bestimmten Symboltyp ab, der eine angegebene relative virtuelle Adresse enthält oder dieser am nächsten kommt. |
|
Ruft einen bestimmten Symboltyp ab, der eine angegebene virtuelle Adresse enthält oder dieser am nächsten kommt. |
|
Ruft das Symbol ab, das das angegebene Metadatentoken enthält. |
|
Überprüft, ob zwei Symbole übereinstimmen. |
|
Ruft ein Symbol anhand des eindeutigen Bezeichners ab. |
|
Ruft einen bestimmten Symboltyp ab, der eine angegebene relative virtuelle Adresse und einen Offset enthält oder diesen am nächsten kommt. |
|
Ruft einen bestimmten Symboltyp ab, der eine angegebene virtuelle Adresse und einen Offset enthält oder diesen am nächsten kommt. |
|
Ruft eine Quelldatei nach Kompiliereinheit und Namen ab. |
|
Ruft eine Quelldatei nach Bezeichner der Quelldatei ab. |
|
Ruft die Zeilennummern innerhalb eines angegebenen Kompiliereinheits- und Quelldateibezeichners ab. |
|
Ruft die Zeilen in einer bestimmten Kompiliereinheit ab, die eine angegebene Adresse enthalten. |
|
Ruft die Zeilen in einer bestimmten Kompiliereinheit ab, die eine angegebene relative virtuelle Adresse enthalten. |
|
Durchsucht die Zeilennummerninformationen nach Zeilen, die in einem bestimmten Adressbereich enthalten sind. |
|
Ruft die Zeilen in einer bestimmten Kompiliereinheit nach Quelldatei und Zeilennummer ab. |
|
Ruft eine Quelle ab, die im Symbolspeicher abgelegt wurde, und zwar nach Attributanbieter oder anderen Komponenten des Kompilierungsprozesses. |
|
Ruft eine aufgelistete Sequenz von Debugdatenstreams ab. |
|
Ruft eine Enumeration ab, die einem Client ermöglicht, um alle inline Frames auf einer angegebenen Adresse zu durchlaufen. |
|
Ruft eine Enumeration ab, die einem Client ermöglicht, um alle inline Frames auf einer angegebenen relativen virtuellen Adresse RVA () zu durchlaufen. |
|
Ruft eine Enumeration ab, die einem Client ermöglicht, um alle inline Frames auf einer angegebenen virtuellen Adresse (VA) zu durchlaufen. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
Ruft eine Enumeration ab, die einem Client ermöglicht, durch die Zeilennummerninformationen aller Inlinefunktionen zu durchlaufen, die einen angegebenen Namen übereinstimmen. |
|
Gibt eine Enumeration von Symbolen für die Variablen zurückgegeben, dass der angegebene Tagwert in der übergeordneten Zugriffstastenstubfunktion entspricht. |
|
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. |
|
Gibt eine Enumeration von Symbolen für inline Frames gemäß dem angegebenen Inlinefunktionsnamen zurück. |
|
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