Sdílet prostřednictvím


IDiaSession

Poskytuje kontext dotazu pro symboly ladění.

Syntaxe

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 při získání objektu IDiaSession 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 SymTagHeapAllocationSite symboly.
IDiaSession::findInputAssemblyFile Načte vstupní soubor sestavení .NET Native, který je nadřazený zadaný symbol.

Poznámky

Je důležité volat metodu IDiaSession::put_loadAddress po vytvoření objektu IDiaSession a hodnota předaná put_loadAddress metodě musí být nenulová, aby všechny vlastnosti virtuální adresy (VA) symbolů byly přístupné. 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 GetModuleInformation Win32, která načte adresu načtení spustitelného souboru vzhledem ke popisovači spustitelného souboru.

Příklad

Tento příklad ukazuje, jak získat IDiaSession rozhraní 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é