Sdílet prostřednictvím


IDiaSession

Poskytuje kontext dotazu pro symboly ladění.

Syntax

IDiaSession : IUnknown

Metody

Následující tabulka ukazuje metody IDiaSession.

Metoda Popis
IDiaSession::get_loadAddress Načte adresu načtení spustitelného souboru, který odpovídá symbolům v tomto úložišti symbolů. Jedná se o stejnou hodnotu, která byla předána metodě put_loadAddress.
IDiaSession::put_loadAddress Nastaví adresu načtení spustitelného souboru, který odpovídá symbolům v tomto úložišti symbolů. Poznámka: Je důležité volat tuto metodu, když získáte IDiaSession objekt a před zahájením používání objektu.
IDiaSession::get_globalScope Načte odkaz na globální obor.
IDiaSession::getEnumTables Načte enumerátor pro všechny tabulky obsažené v úložišti symbolů.
IDiaSession::getSymbolsByAddr Načte enumerátor pro všechny pojmenované symboly ve statických umístěních.
IDiaSession::findChildren Načte všechny podřízené položky zadaného nadřazeného identifikátoru, které odpovídají názvu a typu symbolu.
IDiaSession::findChildrenEx Načte všechny podřízené položky zadaného nadřazeného identifikátoru, které odpovídají názvu a typu symbolu, včetně optimalizovaných místních hodnot.
IDiaSession::findChildrenExByAddr Načte všechny podřízené položky zadaného nadřazeného identifikátoru, které odpovídají typu názvu a symbolu, včetně optimalizovaných místních hodnot, které obsahují nebo jsou nejblíže zadané adrese.
IDiaSession::findChildrenExByVA Načte všechny podřízené položky zadaného nadřazeného identifikátoru, které odpovídají názvu a typu symbolu, včetně optimalizovaných místních hodnot, které obsahují nebo jsou nejblíže zadané virtuální adrese (VA).
IDiaSession::findChildrenExByRVA Načte všechny podřízené položky zadaného nadřazeného identifikátoru, které odpovídají názvu a typu symbolu, včetně optimalizovaných místních hodnot, které obsahují nebo jsou nejblíže zadané relativní virtuální adrese (RVA).
IDiaSession::findSymbolByAddr Načte zadaný typ symbolu, který obsahuje zadanou adresu nebo je k ho nejblíže.
IDiaSession::findSymbolByRVA Načte zadaný typ symbolu, který obsahuje zadanou relativní virtuální adresu (RVA) nebo je k ho nejblíže.
IDiaSession::findSymbolByVA Načte zadaný typ symbolu, který obsahuje zadanou virtuální adresu (VA) nebo je k ho nejblíže.
IDiaSession::findSymbolByToken Načte symbol, který obsahuje zadaný token metadat.
IDiaSession::symsAreEquiv Zkontroluje, jestli jsou ekvivalentní dva symboly.
IDiaSession::symbolById Načte symbol podle jeho jedinečného identifikátoru.
IDiaSession::findSymbolByRVAEx Načte zadaný typ symbolu, který obsahuje nebo je nejblíže zadané relativní virtuální adrese a posunu.
IDiaSession::findSymbolByVAEx Načte zadaný typ symbolu, který obsahuje nebo je nejblíže zadané virtuální adrese a posunu.
IDiaSession::findFile Načte zdrojový soubor podle compilandu a názvu.
IDiaSession::findFileById Načte zdrojový soubor podle identifikátoru zdrojového souboru.
IDiaSession::findLines Načte čísla řádků v zadaném identifikátoru compilandu a zdrojového souboru.
IDiaSession::findLinesByAddr Načte řádky v zadaném compilandu, které obsahují zadanou adresu.
IDiaSession::findLinesByRVA Načte řádky v zadaném compilandu, které obsahují zadanou relativní virtuální adresu.
IDiaSession::findLinesByVA Vyhledá informace o čísle řádku pro řádky obsažené v zadaném rozsahu adres.
IDiaSession::findLinesByLinenum Načte řádky v zadaném compilandu podle zdrojového souboru a čísla řádku.
IDiaSession::findInjectedSource Načte zdroj, který byl umístěn do úložiště symbolů zprostředkovateli atributů nebo jinými komponentami procesu kompilace.
IDiaSession::getEnumDebugStreams Načte výčtovou sekvenci datových proudů ladění.
IDiaSession::findInlineFramesByAddr Načte výčet, který umožňuje klientovi iterovat všechny vložené rámce na dané adrese.
IDiaSession::findInlineFramesByRVA Načte výčet, který umožňuje klientovi iterovat všechny vložené rámce na zadané relativní virtuální adrese (RVA).
IDiaSession::findInlineFramesByVA Načte výčet, který umožňuje klientovi iterovat všechny vložené rámce na zadané virtuální adrese (VA).
IDiaSession::findInlineeLines Načte výčet, který klientovi umožňuje iterovat informace o čísle řádku všech funkcí, které jsou vloženy přímo nebo nepřímo zadaným nadřazeným symbolem.
IDiaSession::findInlineeLinesByAddr Načte výčet, který umožňuje klientovi iterovat informace o čísle řádku všech funkcí, které jsou vloženy přímo nebo nepřímo zadaným nadřazeným symbolem a jsou obsaženy v zadaném rozsahu adres.
IDiaSession::findInlineeLinesByRVA Načte výčet, který umožňuje klientovi iterovat informace o čísle řádku všech funkcí, které jsou vloženy přímo nebo nepřímo zadaným nadřazeným symbolem a jsou obsaženy v zadané relativní virtuální adrese (RVA).
IDiaSession::findInlineeLinesByVA Načte výčet, který umožňuje klientovi iterovat informace o čísle řádku všech funkcí, které jsou vloženy přímo nebo nepřímo zadaným nadřazeným symbolem a jsou obsaženy v zadané virtuální adrese (VA).
IDiaSession::findInlineeLinesByLinenum Načte výčet, který umožňuje klientovi iterovat informace o čísle řádku všech funkcí, které jsou vloženy přímo nebo nepřímo, v zadaném zdrojovém souboru a čísle řádku.
IDiaSession::findInlineesByName Načte výčet, který umožňuje klientovi iterovat informace o čísle řádku všech vložených funkcí, které odpovídají zadanému názvu.
IDiaSession::findAcceleratorInlineesByLinenum Vrátí výčet symbolů pro vložené rámce, které odpovídají zadanému zdrojovému umístění.
IDiaSession::findSymbolsForAcceleratorPointerTag Vrátí výčet symbolů pro proměnnou, kterou zadaná hodnota značky odpovídá ve funkci zástupných procedur nadřazeného akcelerátoru.
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag Vzhledem k odpovídající hodnotě značky tato metoda vrátí výčet symbolů obsažených v zadané nadřazené funkci zástupných procedur akcelerátoru na zadané relativní virtuální adrese.
IDiaSession::findAcceleratorInlineesByName Vrátí výčet symbolů pro vložené rámce odpovídající zadanému názvu vložené funkce.
IDiaSession::addressForVA Vrátí ekvivalentní adresu pro zadanou virtuální adresu (VA).
IDiaSession::addressForRVA Vrátí ekvivalentní adresu pro zadanou relativní virtuální adresu (RVA).
IDiaSession::findILOffsetsByAddr Načte výčet, který umožňuje klientovi iterovat přes posuny jazyka MSIL v zadaném rozsahu adres.
IDiaSession::findILOffsetsByRVA Načte výčet, který umožňuje klientovi iterovat přes posuny jazyka MSIL v zadaném rozsahu relativní virtuální adresy (RVA).
IDiaSession::findILOffsetsByVA Načte výčet, který umožňuje klientovi iterovat přes posuny jazyka MSIL v zadaném rozsahu virtuálních adres (VA).
IDiaSession::findInputAssemblyFiles Načte výčet, který umožňuje klientovi iterovat prostřednictvím vstupních souborů sestavení .NET Native.
IDiaSession::findInputAssembly Načte vstupní soubor sestavení .NET Native podle indexu.
IDiaSession::findInputAssemblyById Načte vstupní soubor sestavení .NET Native jedinečným identifikátorem.
IDiaSession::getFuncMDTokenMapSize Načte velikost v bajtech mapy tokenů funkce metadat .NET Native.
IDiaSession::getFuncMDTokenMap Načte obsah mapy tokenů funkce .NET Native.
IDiaSession::getTypeMDTokenMapSize Načte velikost mapování tokenů typu metadat .NET Native v bajtech.
IDiaSession::getTypeMDTokenMap Načte obsah mapování tokenů typu metadat .NET Native.
IDiaSession::getNumberOfFunctionFragments_VA Načte počet nesouvislých fragmentů funkce na zadané virtuální adrese (VA).
IDiaSession::getNumberOfFunctionFragments_RVA Načte počet nesouvislých fragmentů funkce na zadané relativní virtuální adrese (RVA).
IDiaSession::getFunctionFragments_VA Načte adresy a délky nesouvislých fragmentů funkce na zadané virtuální adrese (VA).
IDiaSession::getFunctionFragments_RVA Načte adresy a délky nesouvislých fragmentů funkce na zadané relativní virtuální adrese (RVA).
IDiaSession::getExports Načte enumerátor pro všechny exportované symboly.
IDiaSession::getHeapAllocationSites Načte enumerátor pro všechny symboly SymTagHeapAllocationSite.
IDiaSession::findInputAssemblyFile Načte vstupní soubor sestavení .NET Native, který je nadřazený zadaný symbol.

Poznámky

Po vytvoření objektu IDiaSession je důležité volat metodu IDiaSession::put_loadAddress a hodnota předaná metodě put_loadAddress musí být nenulová, aby byly přístupné všechny vlastnosti virtuální adresy (VA). Načítá adresa pochází z libovolného programu načteného spustitelného souboru, který je laděný. Můžete například volat funkci Win32 GetModuleInformation načtení adresy pro načtení spustitelného souboru, a to z důvodu popisovače spustitelného souboru.

Příklad

Tento příklad ukazuje, jak získat rozhraní IDiaSession jako součást obecné inicializace sady SDK pro přístup k rozhraní ladění (DIA).

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

Hlavička: Dia2.h

Knihovna: diaguids.lib

DLL: msdia80.dll

Viz také