Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 do metody put_loadAddress. |
IDiaSession::put_loadAddress |
Ustawia adres ładowania pliku wykonywalnego, który odpowiada symbolom w tym magazynie symboli.
Uwaga: Należy wywołać tę metodę po otrzymaniu obiektu IDiaSession 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 symboli SymTagHeapAllocationSite. |
IDiaSession::findInputAssemblyFile |
Pobiera plik zestawu wejściowego .NET Native, który jest elementem nadrzędnym określonego symbolu. |
Uwagi
Należy wywołać metodę IDiaSession::put_loadAddress po utworzeniu obiektu IDiaSession — a wartość przekazana do metody put_loadAddress 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. Na przykład można wywołać funkcję Win32 GetModuleInformation, aby pobrać adres ładowania pliku wykonywalnego, biorąc pod uwagę uchwyt pliku wykonywalnego.
Przykład
W tym przykładzie pokazano, jak uzyskać interfejs IDiaSession 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