Udostępnij za pośrednictwem


IDiaSession

Zawiera symbole debugowania kontekście kwerendy.

IDiaSession : IUnknown

Metody

W poniższej tabeli przedstawiono metody IDiaSession.

Metoda

Opis

IDiaSession::get_loadAddress

Pobiera adres obciążenia dla pliku wykonywalnego, który odpowiada symboli w tym magazynie symbol.Jest to tę samą wartość, która została przekazana do put_loadAddress metody.

IDiaSession::put_loadAddress

Ustawia adres ładowania pliku wykonywalnego, który odpowiada symbole w tym magazynie symbol.

UwagaUwaga
Wywołanie tej metody po otrzymaniu ważne jest IDiaSession obiektu i przed rozpoczęciem korzystania z obiektu.

IDiaSession::get_globalScope

Pobiera odwołanie do zakresu globalnego.

IDiaSession::getEnumTables

Pobiera moduł wyliczający wszystkich tabel zawartych w magazynie symbol.

IDiaSession::getSymbolsByAddr

Pobiera moduł wyliczający wszystkie symbole nazwane w miejscach statyczne.

IDiaSession::findChildren

Pobiera wszystkie dzieci identyfikator określony obiekt nadrzędny, odpowiadające typowi nazwy i symbol.

IDiaSession::findSymbolByAddr

Pobiera typ określonego symbolu, który zawiera lub jest najbliżej do określonego adresu.

IDiaSession::findSymbolByRVA

Pobiera typ określonego symbolu, który zawiera lub najbliżej określonego względny adres wirtualny (RVA).

IDiaSession::findSymbolByVA

Pobiera typ określonego symbolu, który zawiera lub najbliżej określony adres wirtualny (VA).

IDiaSession::findSymbolByToken

Pobiera symbol, który zawiera token określonych metadanych.

IDiaSession::symsAreEquiv

Sprawdza, czy dwa symbole są równoważne.

IDiaSession::symbolById

Pobiera symbolu przez jego identyfikator unikatowy.

IDiaSession::findSymbolByRVAEx

Pobiera typ określonego symbolu, który zawiera lub jest najbliżej do określonego adresu wirtualnego względne i przesunięcie.

IDiaSession::findSymbolByVAEx

Pobiera typ określonego symbolu, który zawiera lub jest najbliżej do określonego adresu wirtualnego i przesunięcie.

IDiaSession::findFile

Pobiera compiland i nazwę pliku źródłowego.

IDiaSession::findFileById

Pobiera plik źródłowy przez identyfikator pliku źródłowego.

IDiaSession::findLines

Pobiera numery linii w ramach określonego identyfikatora pliku compiland i źródła.

IDiaSession::findLinesByAddr

Pobiera wiersze w określonym compiland, zawierające określony adres.

IDiaSession::findLinesByRVA

Pobiera wierszy w określonym compiland, które zawierają określony adres wirtualny względne.

IDiaSession::findLinesByVA

Wyszukuje informacje numer wiersza dla wierszy znajdujących się w zakresie określonego adresu.

IDiaSession::findLinesByLinenum

Pobiera wiersze w określonym compiland przez źródło pliku i numer wiersza.

IDiaSession::findInjectedSource

Pobiera źródła, który został umieszczony w magazynie symbol przez atrybut dostawców lub innych składników procesu kompilacji.

IDiaSession::getEnumDebugStreams

Pobiera wyliczanych sekwencji strumieni danych debugowania.

IDiaSession::findInlineFramesByAddr

Pobiera wyliczenia, który umożliwia klientowi iterację wszystkich ramek na dany adres.

IDiaSession::findInlineFramesByRVA

Pobiera wyliczenia, który umożliwia klientowi iterację wszystkich ramek na określony względny adres wirtualny (RVA).

IDiaSession::findInlineFramesByVA

Pobiera wyliczenia, który umożliwia klientowi iterację wszystkich ramek na określony adres wirtualny (VA).

IDiaSession::findInlineeLines

Pobiera wyliczenia, który umożliwia iteracyjne przeglądanie informacji numer wiersza wszystkie funkcje, które są inlined, bezpośrednio lub pośrednio, przez symbol nadrzędnego określonego klienta.

IDiaSession::findInlineeLinesByAddr

Pobiera wyliczenia, który umożliwia iteracyjne przeglądanie informacji numer wiersza wszystkie funkcje, które są inlined, bezpośrednio lub pośrednio, przez symbol nadrzędnego określonego klienta i są zawarte w określony zakres adresów.

IDiaSession::findInlineeLinesByRVA

Pobiera wyliczenia, który umożliwia iteracyjne przeglądanie informacji numer wiersza wszystkie funkcje, które są inlined, bezpośrednio lub pośrednio, przez symbol nadrzędnego określonego klienta i są zawarte w określonym względny adres wirtualny (RVA).

IDiaSession::findInlineeLinesByVA

Pobiera wyliczenia, który umożliwia iteracyjne przeglądanie informacji numer wiersza wszystkie funkcje, które są inlined, bezpośrednio lub pośrednio, przez symbol nadrzędnego określonego klienta i są zawarte w określony adres wirtualny (VA).

IDiaSession::findInlineeLinesByLinenum

Pobiera wyliczenia, który umożliwia iteracyjne przeglądanie informacji numer wiersza wszystkie funkcje, które są inlined, bezpośrednio lub pośrednio w określone źródło pliku i wiersza numer klienta.

IDiaSession::findInlineesByName

Pobiera wyliczenia, który umożliwia klientowi iteracyjne przeglądanie informacji numer wiersza wszystkich funkcji inlined, które odpowiadają określonej nazwie.

IDiaSession::findSymbolsForAcceleratorPointerTag

Zwraca wyliczenie symbole odpowiadające określonym tag wartość zmiennej Accelerator skrótowej funkcji nadrzędnej.

IDiaSession::findSymbolsByRVAForAcceleratorPointerTag

Biorąc pod uwagę odpowiednie wartości znacznika, metoda zwraca wyliczenie symboli, które są zawarte w funkcji skrótowej Accelerator określony obiekt nadrzędny na określony adres wirtualny względne.

IDiaSession::findAcceleratorInlineesByName

Zwraca wyliczenie symbole dla ramek wbudowanych odpowiadającej nazwie funkcji wbudowanej określony.

IDiaSession::findAcceleratorInlineesByLinenum

Zwraca wyliczenie symbole dla ramek, które odpowiadają lokalizacji określonego źródła.

Uwagi

Ważne wywołanie jest IDiaSession::put_loadAddress metody po utworzeniu IDiaSession obiektu — oraz wartości przekazywane do put_loadAddress metoda musi być niezerowa — wszystkie symbole dostępne właściwości adres wirtualny (VA).Adres obciążenia pochodzi z programu załadowany debugowanego pliku wykonywalnego.Na przykład, można wywołać funkcji Win32 GetModuleInformation do pobierania adresu obciążenia dla pliku wykonywalnego, biorąc pod uwagę dojście do pliku wykonywalnego.

Przykład

Ten przykład pokazuje sposób uzyskiwania IDiaSession interfejsu jako część ogólnego inicjowania zestawu SDK 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" );
    }
}

Wymagania

Nagłówek: Dia2.h

Biblioteki: diaguids.lib

Biblioteka DLL: msdia80.dll

Zobacz też

Zadania

Podczas badania.Plik PDB

Informacje

Exe

IDiaAddressMap

IDiaDataSource

IDiaDataSource::openSession

IDiaSymbol::findChildren

Inne zasoby

Interfejsy (dostęp do interfejsu SDK debugowanie)

Omówienie (dostęp do interfejsu debugowania SDK)