Dela via


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

Se även