Delen via


IDiaSession

Biedt een querycontext voor foutopsporingssymbolen.

Syntaxis

IDiaSession : IUnknown

Methoden

In de volgende tabel ziet u de methoden van IDiaSession.

Methode Beschrijving
IDiaSession::get_loadAddress Hiermee wordt het laadadres opgehaald voor het uitvoerbare bestand dat overeenkomt met de symbolen in dit symboolarchief. Dit is dezelfde waarde die is doorgegeven aan de methode put_loadAddress.
IDiaSession::put_loadAddress Hiermee stelt u het laadadres in voor het uitvoerbare bestand dat overeenkomt met de symbolen in dit symboolarchief. Opmerking: Het is belangrijk om deze methode aan te roepen wanneer u een IDiaSession-object krijgt en voordat u het object gaat gebruiken.
IDiaSession::get_globalScope Haalt een verwijzing naar het globale bereik op.
IDiaSession::getEnumTables Haalt een opsomming op voor alle tabellen in het symboolarchief.
IDiaSession::getSymbolsByAddr Hiermee wordt een enumerator opgehaald voor alle benoemde symbolen op statische locaties.
IDiaSession::findChildren Hiermee worden alle onderliggende elementen van een opgegeven bovenliggende id opgehaald die overeenkomen met de naam en het symbooltype.
IDiaSession::findChildrenEx Haalt alle kinderen van een opgegeven bovenliggende id op die overeenkomen met de naam en het symbooltype, inclusief geoptimaliseerde lokale bevolking.
IDiaSession::findChildrenExByAddr Haalt alle onderliggende elementen van een opgegeven bovenliggende id op die overeenkomen met de naam en het symbooltype, inclusief geoptimaliseerde lokale bevolking, die het dichtst bij een opgegeven adres staan of zich het dichtst bij een opgegeven adres bevindt.
IDiaSession::findChildrenExByVA Hiermee worden alle onderliggende elementen van een opgegeven bovenliggende id opgehaald die overeenkomen met de naam en het symbooltype, inclusief geoptimaliseerde lokale bevolking, die het dichtst bij een opgegeven virtueel adres (VA) staat.
IDiaSession::findChildrenExByRVA Haalt alle kinderen van een opgegeven bovenliggende id op die overeenkomen met de naam en het symbooltype, inclusief geoptimaliseerde lokale bevolking, die het dichtst bij een opgegeven relatieve virtuele adres (RVA) bevat of zich het dichtst bij bevindt.
IDiaSession::findSymbolByAddr Hiermee wordt een opgegeven symbooltype opgehaald dat een opgegeven adres bevat of zich het dichtst bij een opgegeven adres bevindt.
IDiaSession::findSymbolByRVA Hiermee haalt u een opgegeven symbooltype op dat een opgegeven relatief virtueel adres (RVA) bevat of het dichtst bij ligt.
IDiaSession::findSymbolByVA Hiermee haalt u een opgegeven symbooltype op dat een opgegeven virtueel adres (VA) bevat of het dichtst bij zich heeft.
IDiaSession::findSymbolByToken Hiermee wordt het symbool opgehaald dat een opgegeven metagegevenstoken bevat.
IDiaSession::symsAreEquiv Hiermee wordt gecontroleerd of twee symbolen gelijkwaardig zijn.
IDiaSession::symbolById Hiermee wordt een symbool opgehaald op basis van de unieke id.
IDiaSession::findSymbolByRVAEx Hiermee wordt een opgegeven symbooltype opgehaald dat het dichtst bij een opgegeven relatief virtueel adres en een opgegeven offset bevat of zich het dichtst bij bevindt.
IDiaSession::findSymbolByVAEx Hiermee wordt een opgegeven symbooltype opgehaald dat het dichtst bij een opgegeven virtueel adres en een opgegeven offset bevat of zich het dichtst bij bevindt.
IDiaSession::findFile Hiermee wordt een bronbestand opgehaald op basis van compiland en naam.
IDiaSession::findFileById Hiermee wordt een bronbestand opgehaald op basis van de bronbestands-id.
IDiaSession::findLines Haalt regelnummers op binnen een opgegeven compiland- en bronbestands-id.
IDiaSession::findLinesByAddr Haalt de regels op in een opgegeven compiland die een opgegeven adres bevatten.
IDiaSession::findLinesByRVA Haalt de regels op in een opgegeven compiland die een opgegeven relatief virtueel adres bevatten.
IDiaSession::findLinesByVA Hiermee vindt u de informatie over het regelnummer voor regels in een opgegeven adresbereik.
IDiaSession::findLinesByLinenum Haalt de regels op in een opgegeven compiland op basis van bronbestand en regelnummer.
IDiaSession::findInjectedSource Haalt een bron op die is geplaatst in het symboolarchief door kenmerkproviders of andere onderdelen van het compilatieproces.
IDiaSession::getEnumDebugStreams Haalt een opgesomde reeks foutopsporingsgegevensstromen op.
IDiaSession::findInlineFramesByAddr Hiermee haalt u een opsomming op waarmee een client alle inlineframes op een bepaald adres kan doorlopen.
IDiaSession::findInlineFramesByRVA Haalt een opsomming op waarmee een client alle inlineframes op een opgegeven relatief virtueel adres (RVA) kan doorlopen.
IDiaSession::findInlineFramesByVA Hiermee haalt u een opsomming op waarmee een client alle inlineframes op een opgegeven virtueel adres (VA) kan doorlopen.
IDiaSession::findInlineeLines Haalt een opsomming op waarmee een client de regelnummergegevens kan doorlopen van alle functies die direct of indirect zijn inlined door het opgegeven bovenliggende symbool.
IDiaSession::findInlineeLinesByAddr Haalt een opsomming op waarmee een client de regelnummergegevens kan doorlopen van alle functies die direct of indirect zijn inlined door het opgegeven bovenliggende symbool en zich in het opgegeven adresbereik bevinden.
IDiaSession::findInlineeLinesByRVA Haalt een opsomming op waarmee een client de regelnummergegevens kan doorlopen van alle functies die direct of indirect zijn inlined door het opgegeven bovenliggende symbool en zich in het opgegeven relatieve virtuele adres (RVA) bevinden.
IDiaSession::findInlineeLinesByVA Haalt een opsomming op waarmee een client de regelnummergegevens kan doorlopen van alle functies die direct of indirect zijn inlined door het opgegeven bovenliggende symbool en zich in het opgegeven virtuele adres (VA) bevinden.
IDiaSession::findInlineeLinesByLinenum Haalt een opsomming op waarmee een client de regelnummergegevens kan doorlopen van alle functies die direct of indirect zijn inlined in het opgegeven bronbestand en regelnummer.
IDiaSession::findInlineesByName Haalt een opsomming op waarmee een client de regelnummergegevens kan doorlopen van alle inlined functies die overeenkomen met een opgegeven naam.
IDiaSession::findAcceleratorInlineesByLinenum Retourneert een opsomming van symbolen voor inlineframes die overeenkomen met de opgegeven bronlocatie.
IDiaSession::findSymbolsForAcceleratorPointerTag Retourneert een opsomming van symbolen voor de variabele waaraan de opgegeven tagwaarde overeenkomt in de stubfunctie van de bovenliggende accelerator.
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag Op basis van een bijbehorende tagwaarde retourneert deze methode een opsomming van symbolen die zijn opgenomen in een opgegeven bovenliggende stub-functie van accelerator op een opgegeven relatief virtueel adres.
IDiaSession::findAcceleratorInlineesByName Retourneert een opsomming van symbolen voor inlineframes die overeenkomen met de opgegeven inlinefunctienaam.
IDiaSession::addressForVA Retourneert het equivalente adres voor het opgegeven virtuele adres (VA).
IDiaSession::addressForRVA Retourneert het equivalente adres voor het opgegeven relatieve virtuele adres (RVA).
IDiaSession::findILOffsetsByAddr Haalt een opsomming op waarmee een client de MSIL-offsets binnen een opgegeven adresbereik kan doorlopen.
IDiaSession::findILOffsetsByRVA Haalt een opsomming op waarmee een client de MSIL-offsets binnen een opgegeven relatief virtueel adresbereik (RVA) kan doorlopen.
IDiaSession::findILOffsetsByVA Haalt een opsomming op waarmee een client de MSIL-offsets binnen een opgegeven VA-bereik (virtual address) kan doorlopen.
IDiaSession::findInputAssemblyFiles Haalt een opsomming op waarmee een client de .NET Native invoerassemblybestanden kan doorlopen.
IDiaSession::findInputAssembly Hiermee wordt een systeemeigen .NET-invoerassemblybestand opgehaald per index.
IDiaSession::findInputAssemblyById Haalt het .NET Native invoerassemblybestand op op unieke id.
IDiaSession::getFuncMDTokenMapSize Haalt de grootte, in bytes, van de tokentoewijzing van de .NET Native metagegevensfunctie op.
IDiaSession::getFuncMDTokenMap Haalt de inhoud van het tokenoverzicht van de .NET Native metagegevensfunctie op.
IDiaSession::getTypeMDTokenMapSize Hiermee haalt u de grootte, in bytes, van de tokentoewijzing van het type .NET Native metagegevens op.
IDiaSession::getTypeMDTokenMap Hiermee wordt de inhoud van de tokentoewijzing van het type .NET Native metagegevens opgehaald.
IDiaSession::getNumberOfFunctionFragments_VA Hiermee haalt u het aantal niet-aaneengesloten fragmenten voor de functie op het opgegeven virtuele adres (VA) op.
IDiaSession::getNumberOfFunctionFragments_RVA Hiermee wordt het aantal discntiguous fragmenten voor de functie opgehaald op het opgegeven relatieve virtuele adres (RVA).
IDiaSession::getFunctionFragments_VA Haalt de adressen en lengten van discontiguous fragmenten voor de functie op het opgegeven virtuele adres (VA) op.
IDiaSession::getFunctionFragments_RVA Haalt de adressen en lengten van discueuze fragmenten voor de functie op het opgegeven relatieve virtuele adres (RVA) op.
IDiaSession::getExports Hiermee haalt u een enumerator op voor alle geƫxporteerde symbolen.
IDiaSession::getHeapAllocationSites Hiermee haalt u een enumerator op voor alle SymTagHeapAllocationSite symbolen.
IDiaSession::findInputAssemblyFile Haalt het .NET Native invoerassemblybestand op dat het bovenliggende symbool is.

Opmerkingen

Het is belangrijk om de methode IDiaSession::put_loadAddress aan te roepen nadat u het IDiaSession-object hebt gemaakt, en de waarde die aan de methode put_loadAddress is doorgegeven, moet niet nul zijn, zodat alle eigenschappen van virtuele adressen (VA) van symbolen toegankelijk zijn. Het laadadres is afkomstig van het programma dat het uitvoerbare bestand heeft geladen dat wordt opgespoord. U kunt bijvoorbeeld de Win32-functie aanroepen GetModuleInformation om het laadadres voor het uitvoerbare bestand op te halen, met een ingang naar het uitvoerbare bestand.

Voorbeeld

In dit voorbeeld ziet u hoe u de IDiaSession-interface kunt verkrijgen als onderdeel van een algemene initialisatie van de 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" );
    }
}

Eisen

Koptekst: Dia2.h

Bibliotheek: diaguids.lib

DLL: msdia80.dll

Zie ook