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::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::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::findAcceleratorInlineesByLinenum | Zwraca wyliczenie symboli dla ramek wbudowanych odpowiadających określonej lokalizacji źródłowej. |
Uwagi
Należy wywołać metodę IDiaSession::p ut_loadAddress po utworzeniu IDiaSession
obiektu — a wartość przekazana do put_loadAddress
metody musi być inna niż zero — aby wszystkie właściwości symboli wirtualnych 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 inicjowania zestawu DIA SDK.
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
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla