IDiaSession
Udostępnia kontekst zapytania dla symboli debugowania.
Składnia
IDiaSession : IUnknown
Metody
W poniższej tabeli przedstawiono metody .IDiaSession
Metoda | opis |
---|---|
IDiaSession::get_loadAddress |
Pobiera adres ładowania pliku wykonywalnego odpowiadającego symbolom w tym magazynie symboli. Jest to ta sama wartość, która została przekazana put_loadAddress do metody . |
IDiaSession::put_loadAddress |
Ustawia adres ładowania pliku wykonywalnego, który odpowiada symbolom w tym magazynie symboli. Uwaga: ważne jest, aby wywołać tę metodę podczas uzyskiwania IDiaSession obiektu i przed rozpoczęciem korzystania z obiektu. |
IDiaSession::get_globalScope |
Pobiera odwołanie do zakresu globalnego. |
IDiaSession::getEnumTables |
Pobiera moduł wyliczający dla wszystkich tabel zawartych w magazynie symboli. |
IDiaSession::getSymbolsByAddr |
Pobiera moduł wyliczający dla wszystkich nazwanych symboli w statycznych lokalizacjach. |
IDiaSession::findChildren |
Pobiera wszystkie elementy podrzędne określonego identyfikatora nadrzędnego zgodnego z nazwą i typem symbolu. |
IDiaSession::findChildrenEx |
Pobiera wszystkie elementy podrzędne określonego identyfikatora nadrzędnego, które są zgodne z nazwą i typem symboli, w tym zoptymalizowanymi ustawieniami lokalnymi. |
IDiaSession::findChildrenExByAddr |
Pobiera wszystkie elementy podrzędne określonego identyfikatora nadrzędnego, które są zgodne z nazwą i typem symboli, w tym zoptymalizowanymi ustawieniami lokalnymi, które zawierają lub znajdują się najbliżej określonego adresu. |
IDiaSession::findChildrenExByVA |
Pobiera wszystkie elementy podrzędne określonego identyfikatora nadrzędnego, które są zgodne z nazwą i typem symboli, w tym zoptymalizowanymi ustawieniami lokalnymi, które zawierają określony adres wirtualny (VA, virtual address). |
IDiaSession::findChildrenExByRVA |
Pobiera wszystkie elementy podrzędne określonego identyfikatora nadrzędnego, które są zgodne z nazwą i typem symbolu, w tym zoptymalizowanymi ustawieniami lokalnymi, które zawierają lub znajdują się najbliżej określonego względnego adresu wirtualnego (RVA). |
IDiaSession::findSymbolByAddr |
Pobiera określony typ symbolu, który zawiera lub znajduje się najbliżej określonego adresu. |
IDiaSession::findSymbolByRVA |
Pobiera określony typ symbolu, który zawiera lub znajduje się najbliżej określonego względnego adresu wirtualnego (RVA). |
IDiaSession::findSymbolByVA |
Pobiera określony typ symbolu, który zawiera lub znajduje się najbliżej określonego adresu wirtualnego (VA). |
IDiaSession::findSymbolByToken |
Pobiera symbol zawierający określony token metadanych. |
IDiaSession::symsAreEquiv |
Sprawdza, czy dwa symbole są równoważne. |
IDiaSession::symbolById |
Pobiera symbol według jego unikatowego identyfikatora. |
IDiaSession::findSymbolByRVAEx |
Pobiera określony typ symbolu, który zawiera lub znajduje się najbliżej określonego względnego adresu wirtualnego i przesunięcia. |
IDiaSession::findSymbolByVAEx |
Pobiera określony typ symbolu, który zawiera lub znajduje się najbliżej określonego adresu wirtualnego i przesunięcia. |
IDiaSession::findFile |
Pobiera plik źródłowy przez compiland i nazwę. |
IDiaSession::findFileById |
Pobiera plik źródłowy według identyfikatora pliku źródłowego. |
IDiaSession::findLines |
Pobiera numery wierszy w określonym pliku compiland i identyfikatorze pliku źródłowego. |
IDiaSession::findLinesByAddr |
Pobiera wiersze w określonym compiland, który zawiera określony adres. |
IDiaSession::findLinesByRVA |
Pobiera wiersze w określonym współzadziale zawierającym określony względny adres wirtualny. |
IDiaSession::findLinesByVA |
Znajduje informacje o numerze wiersza dla wierszy zawartych w określonym zakresie adresów. |
IDiaSession::findLinesByLinenum |
Pobiera wiersze w określonym współzadziale według pliku źródłowego i numeru wiersza. |
IDiaSession::findInjectedSource |
Pobiera źródło, które zostało umieszczone w magazynie symboli przez dostawców atrybutów lub innych składników procesu kompilacji. |
IDiaSession::getEnumDebugStreams |
Pobiera wyliczona sekwencję strumieni danych debugowania. |
IDiaSession::findInlineFramesByAddr |
Pobiera wyliczenie, które umożliwia klientowi iterowanie wszystkich wbudowanych ramek na danym adresie. |
IDiaSession::findInlineFramesByRVA |
Pobiera wyliczenie, które umożliwia klientowi iterowanie wszystkich ramek wbudowanych na określonym względnym adresie wirtualnym (RVA). |
IDiaSession::findInlineFramesByVA |
Pobiera wyliczenie, które umożliwia klientowi iterowanie wszystkich ramek wbudowanych na określonym adresie wirtualnym. |
IDiaSession::findInlineeLines |
Pobiera wyliczenie, które umożliwia klientowi iterowanie przez informacje o numerze wiersza wszystkich funkcji, które są podkreślone, bezpośrednio lub pośrednio przez określony symbol nadrzędny. |
IDiaSession::findInlineeLinesByAddr |
Pobiera wyliczenie, które umożliwia klientowi iterowanie przez informacje o numerze wiersza wszystkich funkcji wbudowanych, bezpośrednio lub pośrednio, przez określony symbol nadrzędny i są zawarte w określonym zakresie adresów. |
IDiaSession::findInlineeLinesByRVA |
Pobiera wyliczenie, które umożliwia klientowi iterowanie za pośrednictwem informacji o numerze wiersza wszystkich funkcji, które są wbudowane, bezpośrednio lub pośrednio, przez określony symbol nadrzędny i są zawarte w określonym względnym adresie wirtualnym (RVA). |
IDiaSession::findInlineeLinesByVA |
Pobiera wyliczenie, które umożliwia klientowi iterowanie za pośrednictwem informacji o numerze wiersza wszystkich funkcji, które są podkreślone, bezpośrednio lub pośrednio przez określony symbol nadrzędny i znajdują się w określonym adresie wirtualnym (VA). |
IDiaSession::findInlineeLinesByLinenum |
Pobiera wyliczenie, które umożliwia klientowi iterowanie za pośrednictwem informacji o numerze wiersza wszystkich funkcji, które są wbudowane, bezpośrednio lub pośrednio, w określonym pliku źródłowym i numerze wiersza. |
IDiaSession::findInlineesByName |
Pobiera wyliczenie, które umożliwia klientowi iterowanie przez informacje o numerze wiersza wszystkich wbudowanych funkcji, które są zgodne z określoną nazwą. |
IDiaSession::findAcceleratorInlineesByLinenum |
Zwraca wyliczenie symboli dla ramek wbudowanych odpowiadających określonej lokalizacji źródłowej. |
IDiaSession::findSymbolsForAcceleratorPointerTag |
Zwraca wyliczenie symboli dla zmiennej, która określona wartość tagu odpowiada funkcji wycinka akceleratora nadrzędnego. |
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag |
Biorąc pod uwagę odpowiadającą wartość tagu, ta metoda zwraca wyliczenie symboli zawartych w określonej funkcji wycinka akceleratora nadrzędnego w określonym względnym adresie wirtualnym. |
IDiaSession::findAcceleratorInlineesByName |
Zwraca wyliczenie symboli dla ramek wbudowanych odpowiadających określonej wbudowanej nazwie funkcji. |
IDiaSession::addressForVA |
Zwraca równoważny adres dla określonego adresu wirtualnego (VA). |
IDiaSession::addressForRVA |
Zwraca równoważny adres dla określonego względnego adresu wirtualnego (RVA). |
IDiaSession::findILOffsetsByAddr |
Pobiera wyliczenie, które umożliwia klientowi iterowanie po przesunięciach MSIL w określonym zakresie adresów. |
IDiaSession::findILOffsetsByRVA |
Pobiera wyliczenie, które umożliwia klientowi iterowanie po przesunięciach MSIL w określonym zakresie względnego adresu wirtualnego (RVA). |
IDiaSession::findILOffsetsByVA |
Pobiera wyliczenie, które umożliwia klientowi iterowanie po przesunięciach MSIL w określonym zakresie adresów wirtualnych. |
IDiaSession::findInputAssemblyFiles |
Pobiera wyliczenie, które umożliwia klientowi iterowanie za pośrednictwem plików zestawu wejściowego platformy .NET Native. |
IDiaSession::findInputAssembly |
Pobiera plik zestawu wejściowego platformy .NET Native według indeksu. |
IDiaSession::findInputAssemblyById |
Pobiera plik zestawu wejściowego platformy .NET Native według unikatowego identyfikatora. |
IDiaSession::getFuncMDTokenMapSize |
Pobiera rozmiar w bajtach mapy tokenu funkcji metadanych platformy .NET Native. |
IDiaSession::getFuncMDTokenMap |
Pobiera zawartość mapy tokenów funkcji metadanych platformy .NET Native. |
IDiaSession::getTypeMDTokenMapSize |
Pobiera rozmiar w bajtach mapy tokenu typu metadanych platformy .NET Native. |
IDiaSession::getTypeMDTokenMap |
Pobiera zawartość mapy tokenów typu metadanych platformy .NET Native. |
IDiaSession::getNumberOfFunctionFragments_VA |
Pobiera liczbę nieciągliwych fragmentów funkcji pod określonym adresem wirtualnym (VA). |
IDiaSession::getNumberOfFunctionFragments_RVA |
Pobiera liczbę nieciągłych fragmentów funkcji pod określonym względnym adresem wirtualnym (RVA). |
IDiaSession::getFunctionFragments_VA |
Pobiera adresy i długości nieciągliwych fragmentów funkcji pod określonym adresem wirtualnym (VA). |
IDiaSession::getFunctionFragments_RVA |
Pobiera adresy i długości rozciągliwych fragmentów funkcji pod określonym względnym adresem wirtualnym (RVA). |
IDiaSession::getExports |
Pobiera moduł wyliczający dla wszystkich wyeksportowanych symboli. |
IDiaSession::getHeapAllocationSites |
Pobiera moduł wyliczający dla wszystkich SymTagHeapAllocationSite symboli. |
IDiaSession::findInputAssemblyFile |
Pobiera plik zestawu wejściowego .NET Native, który jest elementem nadrzędnym określonego symbolu. |
Uwagi
Należy wywołać metodę po utworzeniu IDiaSession::put_loadAddress
IDiaSession
obiektu — a wartość przekazana do put_loadAddress
metody musi być inna niż zero — aby wszystkie właściwości wirtualnego adresu (VA) były dostępne. Adres ładowania pochodzi z dowolnego programu załadowanego pliku wykonywalnego debugowanego. Można na przykład wywołać funkcję GetModuleInformation
Win32, aby pobrać adres ładowania pliku wykonywalnego, biorąc pod uwagę uchwyt pliku wykonywalnego.
Przykład
W tym przykładzie pokazano, jak uzyskać IDiaSession
interfejs w ramach ogólnej inicjalizacji zestawu SDK dostępu do interfejsu debugowania (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
Biblioteka: diaguids.lib
BIBLIOTEKA DLL: msdia80.dll