Sdílet prostřednictvím


IDiaSession

Poskytuje kontextu dotazu pro symboly ladění.

IDiaSession : IUnknown

Metody

Následující tabulka obsahuje metody IDiaSession.

Metoda

Description

IDiaSession::get_loadAddress

Načte adresu načtení spustitelného souboru, který odpovídá symboly v tomto úložišti symbol.Jedná se o stejnou hodnotu, který byl předán put_loadAddress metoda.

IDiaSession::put_loadAddress

Nastaví adresu načtení spustitelného souboru, který odpovídá symboly v tomto úložišti symbol.

PoznámkaPoznámka
Je důležité volání této metody dostanete IDiaSession objektu a před zahájením pomocí objektu.

IDiaSession::get_globalScope

Získá referenci na globální rozsah.

IDiaSession::getEnumTables

Čítač výčtu všech tabulek obsažených v úložišti symbol načte.

IDiaSession::getSymbolsByAddr

Načte čítač výčtu všech pojmenovaných symbolů statické místech.

IDiaSession::findChildren

Načte všechny děti zadaný nadřazený identifikátor typu název a symbol s.

IDiaSession::findSymbolByAddr

Načte typu určeného symbolu, který obsahuje nebo je nejblíže zadané adresy.

IDiaSession::findSymbolByRVA

Načte typu určeného symbolu, který obsahuje nebo je nejblíže zadanou relativní virtuální adresu (RVA).

IDiaSession::findSymbolByVA

Načte typu určeného symbolu, který obsahuje nebo je nejblíže zadané virtuální adresy (VA).

IDiaSession::findSymbolByToken

Načte symbol, který obsahuje token Zadaná metadata.

IDiaSession::symsAreEquiv

Zkontroluje, zda dva symboly jsou rovnocenné.

IDiaSession::symbolById

Načte symbol podle jeho jedinečný identifikátor.

IDiaSession::findSymbolByRVAEx

Načte typu určeného symbolu, který obsahuje nebo nejblíže k zadanou relativní virtuální adresu a posun.

IDiaSession::findSymbolByVAEx

Načte typu určeného symbolu, který obsahuje nebo nejblíže k zadanou virtuální adresu a posun.

IDiaSession::findFile

Načte compiland a název zdrojového souboru.

IDiaSession::findFileById

Načte zdrojového souboru pomocí identifikátoru zdrojového souboru.

IDiaSession::findLines

Načte čísla řádků v rámci zadaný identifikátor souboru compiland a zdroj.

IDiaSession::findLinesByAddr

Obnoví řádky v zadaném compiland, které obsahují zadanou adresu.

IDiaSession::findLinesByRVA

Obnoví řádky v zadané compiland, které obsahuje zadanou virtuální adresu relativní.

IDiaSession::findLinesByVA

Vyhledá informace číslo řádku pro řádky obsažené v zadaného rozsahu adres.

IDiaSession::findLinesByLinenum

Obnoví řádky v zadané compiland podle zdrojového souboru a číslem řádku.

IDiaSession::findInjectedSource

Vyhledá zdroj, který byl umístěn do úložiště symbol poskytovatelé atributu nebo jiných součástí procesu kompilace.

IDiaSession::getEnumDebugStreams

Načte výčtu sekvence ladění datových proudů.

IDiaSession::findInlineFramesByAddr

Načte výčtu, který umožňuje iterovat všechny vložené rámce na danou adresu klientovi.

IDiaSession::findInlineFramesByRVA

Načte výčtu, který umožňuje klientovi iterovat všechny vložené rámce na zadanou relativní virtuální adresu (RVA).

IDiaSession::findInlineFramesByVA

Načte výčtu, který umožňuje klientovi iterovat všechny vložené rámce na zadanou virtuální adresu (VA).

IDiaSession::findInlineeLines

Načte výčtu, který umožňuje klientovi iterovat informace číslo řádku všech funkcí, které jsou inlined, přímo nebo nepřímo symbol zadaný nadřazený.

IDiaSession::findInlineeLinesByAddr

Načte výčtu, který umožňuje klientovi iterovat informace číslo řádku všech funkcí, které jsou inlined, přímo nebo nepřímo symbol zadaný nadřazený a obsahuje zadaný rozsah adres.

IDiaSession::findInlineeLinesByRVA

Načte výčtu, který umožňuje klientovi iterovat informace číslo řádku všech funkcí, které jsou inlined, přímo nebo nepřímo symbol zadaný nadřazený a jsou obsaženy v zadanou relativní virtuální adresu (RVA).

IDiaSession::findInlineeLinesByVA

Načte výčtu, který umožňuje klientovi iterovat informace číslo řádku všech funkcí, které jsou inlined, přímo nebo nepřímo symbol zadaný nadřazený a obsahuje zadanou virtuální adresu (VA).

IDiaSession::findInlineeLinesByLinenum

Načte výčtu, který umožňuje klientovi iterovat informace číslo řádku všech funkcí, které jsou inlined, přímo nebo nepřímo v zadaný zdrojový soubor a řádek číslo.

IDiaSession::findInlineesByName

Načte výčtu, který umožňuje klientovi iterovat informace číslo řádku všech inlined funkcí, které odpovídají zadaným názvem.

IDiaSession::findSymbolsForAcceleratorPointerTag

Vrátí výčet symboly pro zadaný příznak hodnota odpovídající proměnné v nadřazené funkce akcelerátor se zakázaným inzerováním.

IDiaSession::findSymbolsByRVAForAcceleratorPointerTag

Uvedena odpovídající hodnota značky, tato metoda vrátí výčet symboly, které jsou obsaženy funkce určené nadřazené akcelerátor se zakázaným inzerováním na zadanou relativní virtuální adresu.

IDiaSession::findAcceleratorInlineesByName

Vrátí hodnotu výčtu symboly pro vložené rámce odpovídající název zadaný vložené funkce.

IDiaSession::findAcceleratorInlineesByLinenum

Výčet symboly pro vložené rámce, které odpovídají vrátí do umístění zadaného zdroje.

Poznámky

Je důležité pro volání IDiaSession::put_loadAddress metoda po vytvoření IDiaSession objektu – a hodnota předaná put_loadAddress metoda musí být nenulový – pro všechny virtuální adresy (VA) vlastnosti symbolů přístupné.Zatížení adresa pochází z jakéhokoli programu načten spustitelný soubor laděn.Například můžete volat funkci Win32 GetModuleInformation načíst adresu načtení spustitelného souboru, do spustitelného souboru dané popisovač.

Příklad

Tento příklad ukazuje, jak získat IDiaSession rozhraní jako součást obecného inicializace 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" );
    }
}

Požadavky

Záhlaví: Dia2.h

Knihovny: diaguids.lib

Knihovna DLL: msdia80.dll

Viz také

Úkoly

Dotazování.Soubor PDB

Referenční dokumentace

Exe

IDiaAddressMap

IDiaDataSource

IDiaDataSource::openSession

IDiaSymbol::findChildren

Další zdroje

Rozhraní (ladění přístupu k rozhraní SDK)

Přehled (přístup rozhraní pro ladění SDK)