IDiaSession
Tillhandahåller en frågekontext för felsökningssymboler.
Syntax
IDiaSession : IUnknown
Metoder
I följande tabell visas metoderna för IDiaSession
.
Metod | Beskrivning |
---|---|
IDiaSession::get_loadAddress |
Hämtar inläsningsadressen för den körbara filen som motsvarar symbolerna i det här symbolarkivet. Det här är samma värde som skickades till metoden put_loadAddress . |
IDiaSession::put_loadAddress |
Anger inläsningsadressen för den körbara filen som motsvarar symbolerna i det här symbolarkivet.
Obs! Det är viktigt att anropa den här metoden när du får ett IDiaSession -objekt och innan du börjar använda objektet. |
IDiaSession::get_globalScope |
Hämtar en referens till det globala omfånget. |
IDiaSession::getEnumTables |
Hämtar en uppräknare för alla tabeller som finns i symbolarkivet. |
IDiaSession::getSymbolsByAddr |
Hämtar en uppräknare för alla namngivna symboler på statiska platser. |
IDiaSession::findChildren |
Hämtar alla underordnade till en angiven överordnad identifierare som matchar namn- och symboltypen. |
IDiaSession::findChildrenEx |
Hämtar alla underordnade till en angiven överordnad identifierare som matchar namn- och symboltypen, inklusive optimerade lokala objekt. |
IDiaSession::findChildrenExByAddr |
Hämtar alla underordnade till en angiven överordnad identifierare som matchar namn- och symboltypen, inklusive optimerade lokalbefolkningen, som innehåller eller är närmast en angiven adress. |
IDiaSession::findChildrenExByVA |
Hämtar alla underordnade till en angiven överordnad identifierare som matchar namn- och symboltypen, inklusive optimerade lokalbefolkningen, som innehåller, eller är närmast, en angiven virtuell adress (VA). |
IDiaSession::findChildrenExByRVA |
Hämtar alla underordnade till en angiven överordnad identifierare som matchar namn- och symboltypen, inklusive optimerade lokalbefolkningen, som innehåller, eller är närmast, en angiven relativ virtuell adress (RVA). |
IDiaSession::findSymbolByAddr |
Hämtar en angiven symboltyp som innehåller, eller är närmast, en angiven adress. |
IDiaSession::findSymbolByRVA |
Hämtar en angiven symboltyp som innehåller, eller är närmast, en angiven relativ virtuell adress (RVA). |
IDiaSession::findSymbolByVA |
Hämtar en angiven symboltyp som innehåller, eller är närmast, en angiven virtuell adress (VA). |
IDiaSession::findSymbolByToken |
Hämtar symbolen som innehåller en angiven metadatatoken. |
IDiaSession::symsAreEquiv |
Kontrollerar om två symboler är likvärdiga. |
IDiaSession::symbolById |
Hämtar en symbol med sin unika identifierare. |
IDiaSession::findSymbolByRVAEx |
Hämtar en angiven symboltyp som innehåller, eller är närmast, en angiven relativ virtuell adress och förskjutning. |
IDiaSession::findSymbolByVAEx |
Hämtar en angiven symboltyp som innehåller, eller är närmast, en angiven virtuell adress och förskjutning. |
IDiaSession::findFile |
Hämtar en källfil efter kompilering och namn. |
IDiaSession::findFileById |
Hämtar en källfil efter källfilidentifierare. |
IDiaSession::findLines |
Hämtar radnummer inom en angiven kompilerings- och källfilidentifierare. |
IDiaSession::findLinesByAddr |
Hämtar raderna i en angiven kompilator och som innehåller en angiven adress. |
IDiaSession::findLinesByRVA |
Hämtar raderna i en angiven kompilatoroch som innehåller en angiven relativ virtuell adress. |
IDiaSession::findLinesByVA |
Hittar radnummerinformationen för rader som finns i ett angivet adressintervall. |
IDiaSession::findLinesByLinenum |
Hämtar raderna i en angiven kompileringoch efter källfil och radnummer. |
IDiaSession::findInjectedSource |
Hämtar en källa som har placerats i symbolarkivet av attributprovidrar eller andra komponenter i kompileringsprocessen. |
IDiaSession::getEnumDebugStreams |
Hämtar en uppräknad sekvens med felsökningsdataströmmar. |
IDiaSession::findInlineFramesByAddr |
Hämtar en uppräkning som gör att en klient kan iterera genom alla infogade ramar på en viss adress. |
IDiaSession::findInlineFramesByRVA |
Hämtar en uppräkning som gör att en klient kan iterera genom alla infogade ramar på en angiven relativ virtuell adress (RVA). |
IDiaSession::findInlineFramesByVA |
Hämtar en uppräkning som gör att en klient kan iterera genom alla infogade ramar på en angiven virtuell adress (VA). |
IDiaSession::findInlineeLines |
Hämtar en uppräkning som gör att en klient kan iterera genom radnummerinformationen för alla funktioner som är inlindade, direkt eller indirekt, av den angivna överordnade symbolen. |
IDiaSession::findInlineeLinesByAddr |
Hämtar en uppräkning som gör att en klient kan iterera genom radnummerinformationen för alla funktioner som är inlindade, direkt eller indirekt, av den angivna överordnade symbolen och som finns inom det angivna adressintervallet. |
IDiaSession::findInlineeLinesByRVA |
Hämtar en uppräkning som gör att en klient kan iterera genom radnummerinformationen för alla funktioner som är inlindade, direkt eller indirekt, av den angivna överordnade symbolen och som finns inom den angivna relativa virtuella adressen (RVA). |
IDiaSession::findInlineeLinesByVA |
Hämtar en uppräkning som gör att en klient kan iterera genom radnummerinformationen för alla funktioner som är inlindade, direkt eller indirekt, av den angivna överordnade symbolen och som finns i den angivna virtuella adressen (VA). |
IDiaSession::findInlineeLinesByLinenum |
Hämtar en uppräkning som gör att en klient kan iterera genom radnummerinformationen för alla funktioner som är inlindade, direkt eller indirekt, i den angivna källfilen och radnumret. |
IDiaSession::findInlineesByName |
Hämtar en uppräkning som gör att en klient kan iterera genom radnummerinformationen för alla infogade funktioner som matchar ett angivet namn. |
IDiaSession::findAcceleratorInlineesByLinenum |
Returnerar en uppräkning av symboler för infogade ramar som motsvarar den angivna källplatsen. |
IDiaSession::findSymbolsForAcceleratorPointerTag |
Returnerar en uppräkning av symboler för variabeln som det angivna taggvärdet motsvarar i den överordnade funktionen Accelerator stub. |
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag |
Med ett motsvarande taggvärde returnerar den här metoden en uppräkning av symboler som finns i en angiven överordnad accelerator stub-funktion på en angiven relativ virtuell adress. |
IDiaSession::findAcceleratorInlineesByName |
Returnerar en uppräkning av symboler för infogade ramar som motsvarar det angivna infogade funktionsnamnet. |
IDiaSession::addressForVA |
Returnerar motsvarande adress för den angivna virtuella adressen (VA). |
IDiaSession::addressForRVA |
Returnerar motsvarande adress för den angivna relativa virtuella adressen (RVA). |
IDiaSession::findILOffsetsByAddr |
Hämtar en uppräkning som gör att en klient kan iterera via MSIL-förskjutningar inom ett angivet adressintervall. |
IDiaSession::findILOffsetsByRVA |
Hämtar en uppräkning som gör att en klient kan iterera via MSIL-förskjutningar inom ett angivet intervall för relativ virtuell adress (RVA). |
IDiaSession::findILOffsetsByVA |
Hämtar en uppräkning som gör att en klient kan iterera via MSIL-förskjutningar inom ett angivet intervall för virtuell adress (VA). |
IDiaSession::findInputAssemblyFiles |
Hämtar en uppräkning som gör att en klient kan iterera via .NET Native-indatasammansättningsfilerna. |
IDiaSession::findInputAssembly |
Hämtar en .NET Native-indatasammansättningsfil efter index. |
IDiaSession::findInputAssemblyById |
Hämtar .NET Native-indatasammansättningsfilen med unik identifierare. |
IDiaSession::getFuncMDTokenMapSize |
Hämtar storleken, i byte, på den inbyggda .NET-metadatafunktionens tokenkarta. |
IDiaSession::getFuncMDTokenMap |
Hämtar innehållet i den inbyggda .NET-metadatafunktionens tokenkarta. |
IDiaSession::getTypeMDTokenMapSize |
Hämtar storleken, i byte, på tokenkartan för .NET-inbyggda metadatatyper. |
IDiaSession::getTypeMDTokenMap |
Hämtar innehållet i tokenkartan för .NET-inbyggda metadatatyper. |
IDiaSession::getNumberOfFunctionFragments_VA |
Hämtar antalet sammanhängande fragment för funktionen vid den angivna virtuella adressen (VA). |
IDiaSession::getNumberOfFunctionFragments_RVA |
Hämtar antalet sammanhängande fragment för funktionen vid den angivna relativa virtuella adressen (RVA). |
IDiaSession::getFunctionFragments_VA |
Hämtar adresserna och längden på sammanhängande fragment för funktionen vid den angivna virtuella adressen (VA). |
IDiaSession::getFunctionFragments_RVA |
Hämtar adresserna och längden på sammanhängande fragment för funktionen vid den angivna relativa virtuella adressen (RVA). |
IDiaSession::getExports |
Hämtar en uppräknare för alla exporterade symboler. |
IDiaSession::getHeapAllocationSites |
Hämtar en uppräknare för alla SymTagHeapAllocationSite symboler. |
IDiaSession::findInputAssemblyFile |
Hämtar den interna .NET-indatasammansättningsfilen som är överordnad för den angivna symbolen. |
Anmärkningar
Det är viktigt att anropa metoden IDiaSession::put_loadAddress
när du har skapat IDiaSession
-objektet – och värdet som skickas till put_loadAddress
-metoden måste vara icke-noll – för att alla egenskaper för virtuella adresser (VA) för symboler ska vara tillgängliga. Belastningsadressen kommer från det program som lästes in den körbara filen som debugged. Du kan till exempel anropa funktionen Win32 GetModuleInformation
för att hämta belastningsadressen för den körbara filen, med ett handtag till den körbara filen.
Exempel
Det här exemplet visar hur du hämtar IDiaSession
-gränssnittet som en del av en allmän initiering av DIA-SDK (Debug Interface Access).
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" );
}
}
Krav
Rubrik: Dia2.h
Bibliotek: diaguids.lib
DLL: msdia80.dll